| 
12 | 12 | - [4. Oracle JDK 和 OpenJDK 的对比](#4-oracle-jdk-和-openjdk-的对比)  | 
13 | 13 | - [5. Java和C++的区别?](#5-java和c的区别)  | 
14 | 14 | - [6. 什么是 Java 程序的主类 应用程序和小程序的主类有何不同?](#6-什么是-java-程序的主类-应用程序和小程序的主类有何不同)  | 
15 |  | -- [7. Java 应用程序与小程序之间有那些差别?](#7-java-应用程序与小程序之间有那些差别)  | 
 | 15 | +- [7. Java 应用程序与小程序之间有哪些差别?](#7-java-应用程序与小程序之间有哪些差别)  | 
16 | 16 | - [8. 字符型常量和字符串常量的区别?](#8-字符型常量和字符串常量的区别)  | 
17 | 17 | - [9. 构造器 Constructor 是否可被 override?](#9-构造器-constructor-是否可被-override)  | 
18 | 18 | - [10. 重载和重写的区别](#10-重载和重写的区别)  | 
 | 
26 | 26 | - [15. 在 Java 中定义一个不做事且没有参数的构造方法的作用](#15-在-java-中定义一个不做事且没有参数的构造方法的作用)  | 
27 | 27 | - [16. import java和javax有什么区别?](#16-import-java和javax有什么区别)  | 
28 | 28 | - [17. 接口和抽象类的区别是什么?](#17-接口和抽象类的区别是什么)  | 
29 |  | -- [18. 成员变量与局部变量的区别有那些?](#18-成员变量与局部变量的区别有那些)  | 
 | 29 | +- [18. 成员变量与局部变量的区别有哪些?](#18-成员变量与局部变量的区别有哪些)  | 
30 | 30 | - [19. 创建一个对象用什么运算符?对象实体与对象引用有何不同?](#19-创建一个对象用什么运算符对象实体与对象引用有何不同)  | 
31 | 31 | - [20. 什么是方法的返回值?返回值在类的方法里的作用是什么?](#20-什么是方法的返回值返回值在类的方法里的作用是什么)  | 
32 | 32 | - [21. 一个类的构造方法的作用是什么? 若一个类没有声明构造方法,该程序能正确执行吗? 为什么?](#21-一个类的构造方法的作用是什么-若一个类没有声明构造方法该程序能正确执行吗-为什么)  | 
@@ -138,7 +138,7 @@ JRE 是 Java运行时环境。它是运行已编译 Java 程序所需的所有  | 
138 | 138 | 
 
  | 
139 | 139 | 一个程序中可以有多个类,但只能有一个类是主类。在 Java 应用程序中,这个主类是指包含 main()方法的类。而在 Java 小程序中,这个主类是一个继承自系统类 JApplet 或 Applet 的子类。应用程序的主类不一定要求是 public 类,但小程序的主类要求必须是 public 类。主类是 Java 程序执行的入口点。  | 
140 | 140 | 
 
  | 
141 |  | -## 7. Java 应用程序与小程序之间有那些差别?  | 
 | 141 | +## 7. Java 应用程序与小程序之间有哪些差别?  | 
142 | 142 | 
 
  | 
143 | 143 | 简单说应用程序是从主线程启动(也就是 `main()` 方法)。applet 小程序没有 `main()` 方法,主要是嵌在浏览器页面上运行(调用`init()`或者`run()`来启动),嵌入浏览器这点跟 flash 的小游戏类似。  | 
144 | 144 | 
 
  | 
@@ -247,7 +247,7 @@ Java 程序在执行子类的构造方法之前,如果没有用 `super() `来  | 
247 | 247 | 
 
  | 
248 | 248 | 备注:在JDK8中,接口也可以定义静态方法,可以直接用接口名调用。实现类和实现是不可以调用的。如果同时实现两个接口,接口中定义了一样的默认方法,则必须重写,不然会报错。(详见issue:[https://github.com/Snailclimb/JavaGuide/issues/146](https://github.com/Snailclimb/JavaGuide/issues/146))  | 
249 | 249 | 
 
  | 
250 |  | -## 18. 成员变量与局部变量的区别有那些?  | 
 | 250 | +## 18. 成员变量与局部变量的区别有哪些?  | 
251 | 251 | 
 
  | 
252 | 252 | 1. 从语法形式上看:成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数;成员变量可以被 public,private,static 等修饰符所修饰,而局部变量不能被访问控制修饰符及 static 所修饰;但是,成员变量和局部变量都能被 final 所修饰。  | 
253 | 253 | 2. 从变量在内存中的存储方式来看:如果成员变量是使用`static`修饰的,那么这个成员变量是属于类的,如果没有使用`static`修饰,这个成员变量是属于实例的。而对象存在于堆内存,局部变量则存在于栈内存。  | 
@@ -359,7 +359,7 @@ hashCode() 的作用是获取哈希码,也称为散列码;它实际上是返  | 
359 | 359 | 
 
  | 
360 | 360 | **程序**是含有指令和数据的文件,被存储在磁盘或其他的数据存储设备中,也就是说程序是静态的代码。  | 
361 | 361 | 
 
  | 
362 |  | -**进程**是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。简单来说,一个进程就是一个执行中的程序,它在计算机中一个指令接着一个指令地执行着,同时,每个进程还占有某些系统资源如CPU时间,内存空间,文件,文件,输入输出设备的使用权等等。换句话说,当程序在执行时,将会被操作系统载入内存中。  | 
 | 362 | +**进程**是程序的一次执行过程,是系统运行程序的基本单位,因此进程是动态的。系统运行一个程序即是一个进程从创建,运行到消亡的过程。简单来说,一个进程就是一个执行中的程序,它在计算机中一个指令接着一个指令地执行着,同时,每个进程还占有某些系统资源如CPU时间,内存空间,文件,输入输出设备的使用权等等。换句话说,当程序在执行时,将会被操作系统载入内存中。  | 
363 | 363 | 线程是进程划分成的更小的运行单位。线程和进程最大的不同在于基本上各进程是独立的,而各线程则不一定,因为同一进程中的线程极有可能会相互影响。从另一角度来说,进程属于操作系统的范畴,主要是同一段时间内,可以同时执行一个以上的程序,而线程则是在同一程序内几乎同时执行一个以上的程序段。  | 
364 | 364 | 
 
  | 
365 | 365 | ## 30. 线程有哪些基本状态?  | 
@@ -408,7 +408,7 @@ final关键字主要用在三个地方:变量、方法、类。  | 
408 | 408 | 
 
  | 
409 | 409 | **Exception(异常):是程序本身可以处理的异常**。</font>Exception 类有一个重要的子类 **RuntimeException**。RuntimeException 异常由Java虚拟机抛出。**NullPointerException**(要访问的变量没有引用任何对象时,抛出该异常)、**ArithmeticException**(算术运算异常,一个整数除以0时,抛出该异常)和 **ArrayIndexOutOfBoundsException** (下标越界异常)。  | 
410 | 410 | 
 
  | 
411 |  | -**注意:异常和错误的区别:异常能被程序本身可以处理,错误是无法处理。**  | 
 | 411 | +**注意:异常和错误的区别:异常能被程序本身处理,错误是无法处理。**  | 
412 | 412 | 
 
  | 
413 | 413 | ### Throwable类常用方法  | 
414 | 414 | 
 
  | 
@@ -455,7 +455,7 @@ final关键字主要用在三个地方:变量、方法、类。  | 
455 | 455 | 
 
  | 
456 | 456 | transient关键字的作用是:阻止实例中那些用此关键字修饰的的变量序列化;当对象被反序列化时,被transient修饰的变量值不会被持久化和恢复。transient只能修饰变量,不能修饰类和方法。  | 
457 | 457 | 
 
  | 
458 |  | -## 34 获取用键盘输入常用的的两种方法  | 
 | 458 | +## 34 获取用键盘输入常用的两种方法  | 
459 | 459 | 
 
  | 
460 | 460 | 方法1:通过 Scanner  | 
461 | 461 | 
 
  | 
 | 
0 commit comments