上一篇文章.net基础学java系列(一)视野

废话:

“视野”这篇文章,管理员说它比较空洞!也许初学者看不懂表格中的大部分内容!多年的neter估计也有很多不知道的!

有.net的基础再学java,其实并不难,只不过要有更多的付出而已,但是懂多一门技术多一条出路,你说呢?

小公司一直在模仿大厂,

  • 华为 DevOps 转型之旅
  • 微软 DevOps 转型之旅

从未得要领,却要求有狼性效应!DevOps,在各个公司的转型过程中表现不同,所获得的成果不同 —— “全栈工程师”,“全能员工” 是目前大环境下企业所急迫需要的,但也是最容易动了别人奶酪的一类人!

工欲善其事,必先厉其器

要知道,现在(2019-03-17)很多neter,都没有使用最新版本的Visual Studio!为什么呢?因为Out!因为累!因为不思进取!一部分老的neter,特别是做上位机的neter,他们居然不懂.net可以做web服务!

现在neters,最熟悉的IDE莫过于Visual Studio!即Visual Studio (2003-2019)+ Visual Studio Code。

很遗憾的是,作为一名老的neter,本人习惯了Visual Studio(2013-2017),习惯了他们的主题!Visual Studio Code我一般只用来写MarkDown!辗转java,如何选择IDE是一件值得纠结的事情!

比较IDE

  1. 现在Java界最火的IDE是 JetBrains 出品的 IntelliJ IDEA,所以要大势所趋!
  2. 本人最熟悉的是C# + Visual Studio(2013-2017),所以要体验下JetBrains Rider。
  3. 本人次熟悉的是Visual Studio Code,所以要体验下Language support for Java。
  4. 当然,本人也学过Android、Python、Go的基本语法,却从未入坑。后续也会用下JetBrains的Pycharm、GoLand。

深入IDEA

IDEA

  • 下载:官网上的文件永远是最新的发布版,到官网(https://www.jetbrains.com/)下载。其实,使用官网的Toolbox安装更便捷,我一次性就下了4个:IntelliJ IDEA、JetBrains Rider、GoLand、Pycharm。
  • 安装:略。
  • 注册:作为一个学习者,注册问题基本上困扰着每一个人。
  • 安装完之后的目录,我们对比下

剖析 IDEA (JetBrains Rider) 的目录结构

正常而言,一个软件安装完成之后,不需要用户去关心软件的安装目录和其中的文件才是合理的。但是深入地剖析一下 IntelliJ IDEA 安装后的文件和目录结构,给我带来了意外的收获。

整体结构

首先,我们需要知道 IntelliJ IDEA 本身就是一个 Java 应用,所以必须运用于 JRE或者JDK之上。我们看一下该软件安装后的整体目录结构,如下图:

  • binIDEA 的可执行代码目录。

  • helpIDEA 的帮助文件目录。
    • 打开ReferenceCard.pdf、ReferenceCardForMac.pdf,发现是快捷键说明文档)
    • 本人英语四级考了4次,每次都是差一点才过。可以说明,英语能力那是一般中的一般,而且还有英文密集恐惧症,那怎么办?
      • 作为开发,PDF转HTML难道不懂?自己实现?no!肯定是找线上的!比如:http://www.pdfdo.com/pdf-to-html.aspx
      • 网页翻译,百度网页翻译?省省吧!翻译最好的要找谷歌,利用最新Chrome浏览器,右键“翻译成中文”。
  • jre64IDEA 自带的 JRE 环境,故 IDEA 可在未安装 JDK 的计算机上进行 PHPPython等语言的编码。
  • libIDEA 依赖的库文件目录,里面有很多的 Jar 文件。
    • 其实之前也捣鼓过Idea,说到底是要深入了解学习,所以这个目录我进入看了!
    • 统计了下有4个文件夹,有199个Jar文件,我看到了作为一个老neter不少熟悉的字眼:httpclient等!
    • 每个Jar文件都有什么用途?(待)
  • licenseIDEA 的许可证文件目录。
  • pluginsIDEA 的插件目录。
    • 为了深入学习,我们再进入这个目录看看!
    • 统计了下有134个文件夹,我又看到了作为一个老neter不少熟悉的字眼:restClient、WebServices
      、WebSocket等!
    • 每个插件到底有何用途?(待)
  • redistIDEA 中索引机制所依赖的 redist 库目录。
  • 两个 .txt 说明文件和一个注册表项文件。

执行结构

如果只为了熟练掌握 IntelliJ IDEA(JetBrains Rider等) 的使用和配置,仔细查看所有的文件和目录是没有必要的,本文主要看看其中的 bin 目录的几个重要文件。

  • idea.exe 文件是 IntelliJ IDEA 32位的可执行文件。

  • idea.exe.vmoptions 文件是 IntelliJ IDEA 32位的可执行文件的 JVM 配置文件。
  • idea.properties 文件是 IntelliJ IDEA 的一切全局属性的配置文件。
  • idea64.exe(rider64.exe等) 文件是 IntelliJ IDEA(JetBrains Rider)64位的可执行文件。
  • idea64.exe.vmoptions(rider64.exe.vmoptions等) 文件是 IntelliJ IDEA (JetBrains Rider) 64位的可执行文件的 JVM 配置文件。

idea64.exe.vmoptions 文件

正如我们前面所述,IntelliJ IDEA 本身就是一个 Java 应用,所以也必须运行于 JVM 之上。此处的 idea64.exe.vmoptions 文件就是用来配置64位的 IDEA 所使用的 JVM 参数。我们看一下该文件的默认内容:

对于是否需要修改该文件,需要具体情况具体分析。对于计算机内存配置大于 8G,开发的项目功能复杂的情况,可以进行适当的修改,具体修改值可以通过分析工具,比如 Jconsole等,进行实际情况分析。

idea.properties 文件

虽然 IntelliJ IDEA 分成了32位和64位两种,但是只存在一份 idea.properties 文件。该文件的主要作用是完成 IntelliJ IDEA 的一些个人化配置。该文件内容较多,我们只截图了其中的部分内容:

  • 该文件中使用了几个属性变量,比如 $(idea.home.path) 代表了 IDEA 安装的顶级目录,$(user.home) 表示用户的根目录等。

  • idea.config.path=${user.home}/.IntelliJIdea/config 指向 IntelliJ IDEA 的个性化配置目录,默认不启用。
  • idea.system.path=${user.home}/.IntelliJIdea/system 指向 IntelliJ IDEA 的系统文件目录,默认不启用。
  • idea.max.intellisense.filesize=2500 文件超过此处设置的大小后,关闭该文件的智能检查和提示等功能,有效消除大文件的卡顿问题。
  • idea.cycle.buffer.size=1024 设置控制输出台的缓存大小,解决大项目时,控制台缓存溢出的问题。

个性配置

现存的三个主流操作系统中,无论是 WindowsmacOS 还是 Liunx,都是支持多用户的。IntelliJ IDEA 支持同一台计算机上的多个用户使用不同的配置选项。所以,在用户的主目录下都具有 IDEA 的个性化配置目录,如下图所示:

  • 该配置目录的最显著特点是:如果删除整个目录,重启 IntelliJ IDEA 会自动重新生成一个全新的默认配置目录。所以,我们完全可以对 IDEA 进行大胆地修改和配置尝试,一旦需要恢复配置,删除该配置目录就可以了。

  • config 目录是 IntelliJ IDEA 个人性配置的保存目录,这个目录记录了该 IDE 的所有主要配置值、自定义的代码模板、自定义的快捷键、自定义的文件模板、插件的启用与停用记录等重要信息。实际上,安装新版本 IntelliJ IDEA 时的默认查找目录就是该目录。
  • system 目录是 IntelliJ IDEA 的系统文件目录,这个目录记录了该 IDE 所管理的所有项目信息。该目录主要存储了项目的索引、缓存、容器文件输出等重要资料。

主题

我把JetBrains Rider的UI Settings 通过 file –> export settings 导出到了压缩文件,再将其导入到 IntelliJ IDEA,希望能能保留点Visual Studio的影子,找回点熟悉感觉!

idea代码字体模糊

通过 `file` -> `settings` -> `editor` -> `font` 下设置font 为 consolas 或者其他几种,都不会再虚化。

官网资料

官方的资料一直都是最权威的,也是更新最及时的,我们点击 IntelliJ IDEA 的菜单 Help –> Help,便可以定位到:

https://www.jetbrains.com/help/idea/meet-intellij-idea.html

真TMD都是英文的,哥们英文真一般,那么请谷歌浏览器帮忙吧!右键“翻译成中文”,英文跟中文对比着看,这英文密集恐惧症就不会发作了。

创建SpringMVC项目

大概文件结构如下,明天上班请教下Java同事,各目录的用途!

完了,截图有水印,等下又要被通报说泄露公司代码了!

Visual Studio Code体验Java

因为本人之前一直在肤浅的使用Visual Studio Code,故具体的下载、安装就省略了,关于Visual Studio Code的文档,请打开Visual Studio Code,点击菜单栏 –> 帮助 –> 文档,它会帮我们定位到:

https://code.visualstudio.com/docs

怎么用Visual Studio Code写Java

我们在https://code.visualstudio.com/docs右上角的输入框中输入java,然后回车

差不多就这样了!后续几天还需要继续捣鼓IDE、捡回Core Java。然后这一系列再继续下去吧!

.net基础学java系列(二)IDE的更多相关文章

  1. .net基础学java系列(二)IDE 之 插件

    上一篇文章.net基础学java系列(二)IDE "扎实的基础"+"宽广的视野",基本可以帮我们摆脱码畜.码奴.码农的命运! IT领袖:IT大哥:IT精英:IT ...

  2. .net基础学java系列(三)徘徊反思

    .net基础学java系列(三)徘徊反思 上一篇文章:.net基础学java系列(二)IDE 之 插件 这两天晚上看完了IDEA的教学视频:https://edu.51cto.com/course/1 ...

  3. .net基础学java系列(四)Console实操

    上一篇文章 .net基础学java系列(三)徘徊反思 本章节没啥营养,请绕路! 看视频,不实操,对于上了年龄的人来说,是记不住的!我已经看了几遍IDEA的教学视频: https://edu.51cto ...

  4. [Python] 文科生零基础学编程系列二——数据类型、变量、常量的基础概念

    上一篇:[Python] 文科生零基础学编程系列--对象.集合.属性.方法的基本定义 下一篇: (仍先以最简单的Excel的VBA为例,语法与Python不同,但概念和逻辑需要理解透彻) p.p1 { ...

  5. .net基础学java系列(六)Java基础

    一.废话 .net学java为何一直没入坑?其实大家都知道,语法很相似,就是使用的习惯不同 稍微的语法差异 结构体系不同 IDE不同 类库集不同 各种框架不同 对于我来说,我一直被第三道坎拦住了,所以 ...

  6. .net基础学java系列(一)视野

    本文目的在于扩展你我视野,求各位大神帮忙补充下表格中的内容,特别是Java的相关内容. 下面的文字纯是为了凑足150个字. 本人作为一名普通的.net程序员,也快混了十年了.在.net方面的知识面较广 ...

  7. .net基础学java系列(五)慢性自杀 之 沉沦在IDE中

    最近在慢学习IDEA,总是喜欢与Visual Studio! 其实,对于Visual Studio,它的官方(https://docs.microsoft.com/zh-cn/visualstudio ...

  8. 辛巴学院-Unity-剑英陪你零基础学c#系列(二)顺序

    这不是草稿 辛巴学院:正大光明的不务正业.   上一次的教程写出来之后,反馈还是挺多的,有很多都做了修改,也有一些让人崩溃,不得不说上几句.有些人有些很奇怪的地方,你写篇东西,被看了以后不说他感觉怎么 ...

  9. .net基础学java系列(八)SpringBoot

    嘟嘟独立博客 Spring-Boot干货系列 http://tengj.top/categories/Spring-Boot干货系列/ 龙码精神 Java Spring Boot VS .NetCor ...

随机推荐

  1. Java:文件字符流和字节流的输入和输出

    最近在学习Java,所以就总结一篇文件字节流和字符流的输入和输出. 总的来说,IO流分类如下: 输入输出方向:     输入流(从外设读取到内存)和输出流(从内存输出到外设) 数据的操作方式: 字节流 ...

  2. 一、docker的原理

    一.docker解决什么问题: 高效的利用资源 应用之间相互隔离 应用之间不能发生资源抢占,每个应用只能使用事先注册申请的资源. 环境封装,利于迁移 二.docker的原理: 1.Namespaces ...

  3. hello1源代码分析

    hello.java: package javaeetutorial.hello1; //这是一个java包 import javax.enterprise.context.RequestScoped ...

  4. 011 Socket定义客户端

    引入命名空间: using System.Net; using System.Net.Sockets; using System.Threading;

  5. (Python)PO设计模式

    无规矩不成方圆.编写代码也是,如果没有大概的框架,管理代码将会是一件很头疼的事. 先看看笔者以前写的python脚本: 如果只有一个用例,这样看着好像挺整洁的.但是当用例越来越多后,如果元素定位发生了 ...

  6. JavaScript 高级

    在线JS编辑 JS 编写规范 阮一峰 ES 6 阮一峰 廖雪峰 操作文件 <html> <head> <script src='./jquery-2.2.3.min.js ...

  7. win-DOS命令整理

    1 md 建 文件夹2 cd 指向文件夹方向cd .. 进入上一级文件夹cd \ 回到根目录3 rd 删除文件夹4 dir 查看文件夹里的文件 dir /a 查看文件夹内全部文件含隐藏文件 5 ren ...

  8. PLSQL Developer 没有64位版本 + 找不到 msvcr71.dll

    由于 PLSQL Developer 没有64位版本,所以在64位系统上运行该程链接64位Oracle时就会报错,笔者为这个问题纠结了好几天,后来通过请教Google + 动手实践,终于搞定了这个问题 ...

  9. Spring AOP获取方法的参数名称和参数值

    aop配置: <aop:aspectj-autoproxy expose-proxy="true" /> @Before(value = "execution ...

  10. 004 使用scrapy框架爬虫

    0. 建立housePro的scrapy爬虫框架 # 1. 在终端输入,建立housePro项目scrapy startproject housePro# 2. 进入houseProcd houseP ...