Skip to content

Commit

Permalink
极客学院
Browse files Browse the repository at this point in the history
  • Loading branch information
wenquan0hf committed Sep 7, 2015
1 parent 858b2a4 commit b821a62
Show file tree
Hide file tree
Showing 18 changed files with 25 additions and 40 deletions.
6 changes: 3 additions & 3 deletions IntelliJ-IDEA-cache.md
Expand Up @@ -2,9 +2,9 @@

## 缓存和索引介绍

在《IntelliJ IDEA 界面介绍》章节里已经点到了 IntelliJ IDEA 首次加载项目的时候,都会创建索引,而创建索引的时间跟项目的文件多少成正比,我也简单强调了 IntelliJ IDEA 索引的重要性。这里我们再对此进行详细说明索引、缓存对 IntelliJ IDEA 的重要性。
[《IntelliJ IDEA 界面介绍》](interface-introduce.md)章节里已经点到了 IntelliJ IDEA 首次加载项目的时候,都会创建索引,而创建索引的时间跟项目的文件多少成正比,我也简单强调了 IntelliJ IDEA 索引的重要性。这里我们再对此进行详细说明索引、缓存对 IntelliJ IDEA 的重要性。

通过《常见文件类型的图标介绍》章节,你已经认识到 IntelliJ IDEA 下各个文件类型的图标是什么样子的。其中有一个图标我是专门进行了讲解:![Java class located out of the source root](images/xi-a-file-symbols-3.png) `Java class located out of the source root`。我们也都知道该图标是表示 Java 类文件没有在 `Source root` 目录下的文件夹下会显示此图标,但是其实还有一种情况也是会显示此图标的。那就是:在 IntelliJ IDEA 创建索引过程中,所有的 Java类 都是这个图标,如果你项目大的话很容易观察到的,几个文件的小项目倒是不一定会看到。所以在 IntelliJ IDEA 创建索引过程即使你编辑了代码也是编译不了、运行不起来的,所以还是安安静静等 IntelliJ IDEA 创建索引完成。
通过《常见文件类型的图标介绍》章节,你已经认识到 IntelliJ IDEA 下各个文件类型的图标是什么样子的。其中有一个图标我是专门进行了讲解:![](images/xi-a-file-symbols-3.png) `Java class located out of the source root`。我们也都知道该图标是表示 Java 类文件没有在 `Source root` 目录下的文件夹下会显示此图标,但是其实还有一种情况也是会显示此图标的。那就是:在 IntelliJ IDEA 创建索引过程中,所有的 Java类 都是这个图标,如果你项目大的话很容易观察到的,几个文件的小项目倒是不一定会看到。所以在 IntelliJ IDEA 创建索引过程即使你编辑了代码也是编译不了、运行不起来的,所以还是安安静静等 IntelliJ IDEA 创建索引完成。

IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快各种查找、代码提示等操作的速度,所以 IntelliJ IDEA 的索引的重要性我再唠叨一万遍都不为过。但是,IntelliJ IDEA 的索引和缓存并不是一直会良好地支持 IntelliJ IDEA 的,这某些特殊条件下,IntelliJ IDEA 的缓存和索引文件也是会损坏的,比如:断电、蓝屏引起的强制关机,当你重新打开 IntelliJ IDEA,基本上百分八十的可能 IntelliJ IDEA 都会报各种莫名其妙错误,甚至项目打不开,IntelliJ IDEA 主题还原成默认状态。也有一些即使没有断电、蓝屏,也会有莫名奇怪的问题的时候,也很有可能是 IntelliJ IDEA 缓存和索引出问题,这种情况还不少。遇到此类问题也不用过多担心。,下面就来讲解如何解决。

Expand All @@ -27,4 +27,4 @@ IntelliJ IDEA 的缓存和索引主要是用来加快文件查询,从而加快

![其他](images/xii-a-invalidate-cache-3.jpg)

> * 目前我电脑的 IntelliJ IDEA 是新装的,也就打开了几个小项目,所有打开的项目大小加起来不到 5 M,但是他们创建的索引大家就已经上百兆了,如上图所示。所以如果你 C 盘空间不足的情况下,最好转移下 `system` 目录,方法可以根据《IntelliJ IDEA 相关核心文件和目录介绍》讲解的方法进行。
> * 目前我电脑的 IntelliJ IDEA 是新装的,也就打开了几个小项目,所有打开的项目大小加起来不到 5M,但是他们创建的索引大家就已经上百兆了,如上图所示。所以如果你 C 盘空间不足的情况下,最好转移下 `system` 目录,方法可以根据《IntelliJ IDEA 相关核心文件和目录介绍》讲解的方法进行。
3 changes: 2 additions & 1 deletion README.md
Expand Up @@ -4,7 +4,7 @@

2015-08-31:

本文现阶段进入第一个版本阶段,后面还会调整和补充,完善时间预计到九月中旬(一起庆祝抗战放假),所以暂时不建议转载这个还有瑕疵的作品,等正式出来了,这里会进行更新,提示可以开始fork了
本文现阶段进入第一个版本阶段,后面还会调整和补充,完善时间预计到九月中旬(一起庆祝抗战放假),所以暂时不建议转载这个还有瑕疵的作品,等正式出来了,这里会进行更新,提示可以开始 fork 了

同时也邀请您一起参与完善该教程,欢迎您反馈我的错误和意见!!!

Expand Down Expand Up @@ -44,3 +44,4 @@
## 联系(Contact)

From Judas.n(judas.n@qq.com),<http://www.YouMeek.com>

13 changes: 2 additions & 11 deletions config.json
@@ -1,13 +1,4 @@
{
"name": "项目名称,必填",
"introduction": "Wiki 首页的项目介绍,必填",
"title": "页面的 title 标签的内容,非必填",
"keywords": "页面的 keywords 标签的内容,非必填",
"description": "页面的 description 标签的内容,非必填",
"path": {
"content": "正文的文件夹路径,相对路径绝对路径皆可,默认根目录,非必填",
"images": "引用图片的文件夹路径,相对路径绝对路径皆可,默认为根目录下的 images 文件夹,非必填",
"readme": "关于页面的路径,相对路径绝对路径皆可,默认根目录下的 README.md,非必填",
"toc": "目录的路径,相对路径绝对路径皆可,默认根目录下的 TOC.md,非必填"
}
"name": "IntelliJ IDEA 使用教程",
"introduction": "本系列教程从 IntelliJ IDEA 的安装、卸载、软件设置、项目配置等各个方面进行讲解。"
}
Binary file modified cover/background.jpg
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed cover/cover.jpg
Binary file not shown.
Binary file modified cover/logo.png
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 0 additions & 1 deletion database-introduce.md
Expand Up @@ -4,7 +4,6 @@

![配置 Database 组件的数据库连接](images/xxv-a-database-connection-1.gif)


> * 表面上很多人认为配置 Database 就是为了有一个 GUI 管理数据库功能,但是这并不是 IntelliJ IDEA 的 Database 最重要特性。数据库的 GUI 工具有很多,IntelliJ IDEA 的 Database 也没有太明显的优势。IntelliJ IDEA 的 Database 最大特性就是对于 Java Web 项目来讲,常使用的 ORM 框架,如 Hibernate、Mybatis 有很好的支持,比如配置好了 Database 之后,IntelliJ IDEA 会自动识别 domain 对象与数据表的关系,也可以通过 Database 的数据表直接生成 domain 对象等等。
> * 如上图 Gif 所示,这是一个完成的配置 Database 过程,对于数据库需要的依赖包,IntelliJ IDEA 可以自动帮我们下载,所以我们只要配置对应的连接参数即可。
Expand Down
2 changes: 0 additions & 2 deletions debug-introduce.md
Expand Up @@ -6,7 +6,6 @@

> * 如上图标注 1 所示,表示设置 Debug 连接方式,默认是 `Socket``Shared memory` 是 Windows 特有的一个属性,一般在 Windows 系统下建议使用此设置,相对于 `Socket` 会快点。

## Debug 常用快捷键

|快捷键|介绍|
Expand All @@ -25,7 +24,6 @@

## Debug 特殊技能使用


![Debug 特殊技能使用](images/xxiii-b-debug-use-1.gif)

> * 如上图 Gif 所示,查看所选对象的方法常用有三种方式:
Expand Down
1 change: 0 additions & 1 deletion emmet-introduce.md
Expand Up @@ -17,7 +17,6 @@ Emmet 资料介绍:
> * Emmet 速查表:<http://docs.emmet.io/cheat-sheet/>
> * Emmet 项目主页:<https://github.com/emmetio/emmet>

## Emmet 的设置

![Emmet 的设置](images/xix-b-emmet-settings-1.jpg)
Expand Down
6 changes: 3 additions & 3 deletions file-symbols-introduce.md
Expand Up @@ -7,8 +7,8 @@
> * 官网地址:<http://www.jetbrains.com/idea/webhelp/symbols.html>
> * 对于各个图标,上图的 `Description` 写得非常详细,但是有几个还是需要进行特别的说明下。
>
>> * ![Source root](images/xi-a-file-symbols-2.gif) `Source root`,你可以理解为源目录,源码的作用就是用来专门放 Java 类文件,相对于编译出来的 class 文件而言,它就是源。我们一般默认名字叫 `src` 的目录就是源目录,但是其实并不是这样的,在 IntelliJ IDEA 中,即使叫 `srcs` 也是可以设置为 `Source root`,所以源目录跟目录命名是没有关系的,而是在于 IntelliJ IDEA 支持对任意目录进行设置为 `Source root`,具体设置在会后面章节进行详解。 `Source root` 的作用是标记该目录下的文件是可编译的。
>> * ![Java class located out of the source root](images/xi-a-file-symbols-3.png) `Java class located out of the source root`,由于上一条我们知道 `Source root` 目录是用来告诉 IntelliJ IDEA 这是编译目录,而假如你 Java 类文件没有放在该目录或是该目录的子包下,那该 Java 类则无法编译,就会被表示成这个图标。
>> * ![](images/xi-a-file-symbols-2.gif) `Source root`,你可以理解为源目录,源码的作用就是用来专门放 Java 类文件,相对于编译出来的 class 文件而言,它就是源。我们一般默认名字叫 `src` 的目录就是源目录,但是其实并不是这样的,在 IntelliJ IDEA 中,即使叫 `srcs` 也是可以设置为 `Source root`,所以源目录跟目录命名是没有关系的,而是在于 IntelliJ IDEA 支持对任意目录进行设置为 `Source root`,具体设置在会后面章节进行详解。 `Source root` 的作用是标记该目录下的文件是可编译的。
>> * ![](images/xi-a-file-symbols-3.png) `Java class located out of the source root`,由于上一条我们知道 `Source root` 目录是用来告诉 IntelliJ IDEA 这是编译目录,而假如你 Java 类文件没有放在该目录或是该目录的子包下,那该 Java 类则无法编译,就会被表示成这个图标。
## 各类文件类型图标介绍

Expand All @@ -17,6 +17,6 @@
> * 官网地址:<http://www.jetbrains.com/idea/webhelp/file-types-recognized-by-intellij-idea.html>
> * 对于各个图标,上图的介绍得非常清楚,我这边只做一个类型文件的补充。
>
>> * ![JavaScript 两种图标介绍](images/xi-b-file-symbols-2.png)
>> * JavaScript 两种图标介绍![](images/xi-b-file-symbols-2.png)
>> * 如上图所示,对于压缩过的 JavaScript 文件,图标会有 `010`图案。
6 changes: 3 additions & 3 deletions install-summarize.md
Expand Up @@ -2,12 +2,12 @@

## 硬件建议

从上一讲的安装教程来看,IntelliJ IDEA 对硬件的要求看上去不是很高。可是实际在开发中其实并不是这样的,特别是开发 Java Web 的项目的计算机,2 G 内存是基本不够用的。
从上一讲的安装教程来看,IntelliJ IDEA 对硬件的要求看上去不是很高。可是实际在开发中其实并不是这样的,特别是开发 Java Web 的项目的计算机,2G 内存是基本不够用的。

我们现在来假设一种国内常见的开发环境:

>有一个在开发的 Java Web 项目,它使用的框架为主流的:Struts + Spring + Hibernate,使用者三个框架的过程中,我们要引入大量的框架架包,在我们的 Web 容器启动时,这些框架架包就要占用大量的内存,而且 IntelliJ IDEA 本身功能繁多,占用的内存也不算低,再加上我们这里还没计算计算机上的其他软件应用。所以基本上 2 G 内存的计算机只适合写小程序、小项目或是开发静态页面。
>有一个在开发的 Java Web 项目,它使用的框架为主流的:Struts + Spring + Hibernate,使用者三个框架的过程中,我们要引入大量的框架架包,在我们的 Web 容器启动时,这些框架架包就要占用大量的内存,而且 IntelliJ IDEA 本身功能繁多,占用的内存也不算低,再加上我们这里还没计算计算机上的其他软件应用。所以基本上 2G 内存的计算机只适合写小程序、小项目或是开发静态页面。
我个人建议,如果你是开发 Java Web 项目最好的方案是 8 G 内存或是以上,硬盘能在用上固态是最好的,因为 IntelliJ IDEA 有大量的缓存、索引文件,把 IntelliJ IDEA 的缓存、索引文件放在固态上,IntelliJ IDEA 流畅度也会加快很多。
我个人建议,如果你是开发 Java Web 项目最好的方案是 8G 内存或是以上,硬盘能在用上固态是最好的,因为 IntelliJ IDEA 有大量的缓存、索引文件,把 IntelliJ IDEA 的缓存、索引文件放在固态上,IntelliJ IDEA 流畅度也会加快很多。

**如果你正在使用 Eclipse / MyEclipse,想通过 IntelliJ IDEA 来解决计算机的卡、慢等问题,我这里可以直接明白地告诉你:这基本上是不可能的,本质上你应该对自己的硬件设备进行升级**
14 changes: 7 additions & 7 deletions installation-directory-introduce.md
Expand Up @@ -23,17 +23,17 @@
## 配置文件常见修改内容说明

![JVM配置说明](images/viii-a-configuration-files-1.jpg)
![JVM 配置说明](images/viii-a-configuration-files-1.jpg)

> * 上图是 64 位可执行文件的 JVM 配置文件内容,如果你是 32 位的系统你应该修改的是 `idea.exe.vmoptions` 文件里面的内容,但是由于 32 位系统内存一般都是 2 G 左右的,所以也没有多大空间可以调整,所以一般无需调整的。
> * 修改的原则主要是根据自己机器的内存情况来判断的,我个人是建议 8 G 以下的机子或是静态页面开发者都是无需修改的。如果你是开发大型项目、Java 项目或是 Android 项目,并且内存大于 8 G,建议进行修改,常修改的就是下面 4 个参数,我这里主要以我的机子会例进行建议,每个人机子情况不一,这里也只是做一个引子,最好的调整方式是你可以根据 jconsole 这类工具进行观察后个性化调整。
> * 上图是 64 位可执行文件的 JVM 配置文件内容,如果你是 32 位的系统你应该修改的是 `idea.exe.vmoptions` 文件里面的内容,但是由于 32 位系统内存一般都是 2G 左右的,所以也没有多大空间可以调整,所以一般无需调整的。
> * 修改的原则主要是根据自己机器的内存情况来判断的,我个人是建议 8G 以下的机子或是静态页面开发者都是无需修改的。如果你是开发大型项目、Java 项目或是 Android 项目,并且内存大于 8G,建议进行修改,常修改的就是下面 4 个参数,我这里主要以我的机子会例进行建议,每个人机子情况不一,这里也只是做一个引子,最好的调整方式是你可以根据 jconsole 这类工具进行观察后个性化调整。
>
>> * `-Xms128m`,16 G 内存的机器可尝试设置为 `-Xms512m`
>> * `-Xmx750m`,16 G 内存的机器可尝试设置为 `-Xmx1500m`
>> * `-XX:MaxPermSize=350m`16 G 内存的机器可尝试设置为 `-XX:MaxPermSize=500m`
>> * `-XX:ReservedCodeCacheSize=225m`16 G 内存的机器可尝试设置为 `-XX:ReservedCodeCacheSize=500m`
>> * `-XX:MaxPermSize=350m`16G 内存的机器可尝试设置为 `-XX:MaxPermSize=500m`
>> * `-XX:ReservedCodeCacheSize=225m`16G 内存的机器可尝试设置为 `-XX:ReservedCodeCacheSize=500m`
![JVM配置说明](images/viii-a-configuration-files-2.jpg)
![JVM 配置说明](images/viii-a-configuration-files-2.jpg)

> * 上图是 IntelliJ IDEA 一些属性配置,没有 32 位和 64 位之分,修改原则主要根据个人对 IntelliJ IDEA 的个性化配置情况来分析。常修改的就是下面 4 个参数:
>
Expand All @@ -44,7 +44,7 @@
## 设置目录进行多台设置同步化处理

![JVM配置说明](images/viii-a-setting-synchronize-1.jpg)
![JVM 配置说明](images/viii-a-setting-synchronize-1.jpg)

> * 上图是我的个性化配置目录,我是存放在 F 盘,同时该目录也是在 360 同步盘中。这样做主要是为了让我的多台设置可以同时使用一个个性化配置,保证个人开发习惯,额外作用就是在服务器上一个备份作用。
> * 设置方式很简单,修改 `idea.properties` 属性文件中的 `idea.config.path` 值,我的机器为:`idea.config.path=F:/360SycDir/idea_config/config`
3 changes: 1 addition & 2 deletions introduce.md
Expand Up @@ -13,7 +13,6 @@
> * [0xDBE](http://www.jetbrains.com/dbe/ "0xDBE 主要用于开发 SQL") 主要用于开发 SQL
> * [Android Studio](http://developer.android.com/tools/studio/ "Android Studio 主要用于开发 Android") 主要用于开发 Android(Google 基本 IntelliJ IDEA 社区版进行迭代所以也姑且算上)

## IntelliJ IDEA 介绍

> * IntelliJ IDEA 官网:<https://www.jetbrains.com/idea/>
Expand All @@ -26,7 +25,7 @@ IntelliJ IDEA 在 2015 年 06 月官网主页是这样介绍自己的:

IntelliJ IDEA 对自己的定义是很清晰的,对于新人来讲可能还不太理解,可能还会有误会,认为它博而不精,但是对于老用户来讲应该是非常认可上面这句话的。通过下面功能表格,新人对于 IntelliJ IDEA 所具备的功能会有一个新的认识。

如果用一句话来形容 IntelliJ IDEA,我会说:**IntelliJ IDEA 是目前所有IDE中最具备沉浸式的 IDE,没有之一**
如果用一句话来形容 IntelliJ IDEA,我会说:**IntelliJ IDEA 是目前所有 IDE 中最具备沉浸式的 IDE,没有之一**

## IntelliJ IDEA 主要功能介绍

Expand Down
2 changes: 2 additions & 0 deletions keymap-introduce.md
Expand Up @@ -205,10 +205,12 @@ IntelliJ IDEA 的便捷操作性,快捷键的功劳占了一大半,对于各
|连按两次Shift|弹出 `Search Everywhere` 弹出层|

## 官网快捷键资料

> * Windows / Linux:<https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard.pdf>
> * Mac OS X:<https://www.jetbrains.com/idea/docs/IntelliJIDEA_ReferenceCard_Mac.pdf>
## 第三方快捷键资料

> * 来自 eta02913:<http://xinyuwu.iteye.com/blog/1005454>
## 快捷键修改
Expand Down
1 change: 0 additions & 1 deletion maven-project-introduce.md
Expand Up @@ -60,7 +60,6 @@
> * 如上图 Gif 演示,通过 Maven 生命周期的命令进行编译和打包,及用 Maven 的 Tomcat 插件运行项目。
> * 虽然我们可以通过 Maven 组件进行项目的管理,但是这并不等同于我们可以完全抛弃 IntelliJ IDEA 的项目设置,比如我们在 `pom.xml` 文件中设置了 JDK 编译版本是 1.7,但是在项目的 `Ctrl + Shift + Alt + S` 配置中,我们配置的 JDK 是 1.8,那即使我们用 Maven 的编译工具或命令进行编译也是会调用 1.8的。还有即使我们在 `Ctrl + Shift + Alt + S` 配置中没有配置 Artifacts,在我们运行 Maven 的 Tomcat 插件的时候也会自动帮我们生成的。

## Maven 快速排查依赖包冲突

![Maven 快速排查依赖包冲突](images/xxii-e-maven-dependent-exclude-1.jpg)
Expand Down
2 changes: 1 addition & 1 deletion theme-settings.md
Expand Up @@ -17,7 +17,7 @@
> * 字体的审美上每个人不一样,但是如上一段说的,这里的自提修改是需要知道一个前提的,那就是你选择的那个字体必须含有中文,比如微软雅黑和宋体这类是包含中文的,而 `Courier New``Monaco` 这类只是单纯的英文字体。
> * 如果你选择的字体不包含中文,那可能会在很多位置上出现类似 `口口口口口` 这样的乱码问题,比如文件名含有中文、字体是中文名字的都会变成 `口口口口口`
> * 在修改 IntelliJ IDEA 的主题字体的时候,不建议把自提调成很大,因为很多人遇到这样一种情况:显示器分辨率低,主题字体又大,在 IntelliJ IDEA 的某些操作的工具菜单、右键菜单选项中部分选项超出了分辨率显示范围,没办法被选中。当然了,如果你一定要把字体改大,又不用大分辨率显示器,那可以通过 IntelliJ IDEA 的 `Menus and Toolbars` 删除部分你认为用不到的菜单,但是一般不建议这样做。
> * 还需要特别注意的时候,如果你是开着IntelliJ IDEA的时候,新装了一个字体的话,那必须重启IntelliJ IDEA之后才能在下拉列表找到新装的字体
> * 还需要特别注意的时候,如果你是开着 IntelliJ IDEA 的时候,新装了一个字体的话,那必须重启IntelliJ IDEA 之后才能在下拉列表找到新装的字体
### 代码编辑字体修改

Expand Down

0 comments on commit b821a62

Please sign in to comment.