@@ -668,14 +668,11 @@ public static void sum(int... nums){
668668
669669方法(method)是将具有独立功能的代码块组织成为一个整体,使其具有特殊功能的代码集
670670
671- 注意:方法必须先创建才可以使用,该过程成为方法定义
672- 方法创建后并不是直接可以运行的,需要手动使用后,才执行,该过程成为方法调用
673-
674- 在方法内部定义的叫局部变量,局部变量不能加static,包括protected, private, public这些也不能加
675-
676- 原因:局部变量是保存在栈中的,而静态变量保存于方法区,局部变量出了方法就被栈回收了,而静态变量不会,所以在局部变量前不能加static关键字,静态变量是定义在类中,又叫类变量
671+ 注意:方法必须先创建才可以使用,该过程成为方法定义,方法创建后并不是直接可以运行的,需要手动使用后才执行,该过程成为方法调用
677672
673+ 在方法内部定义的叫局部变量,局部变量不能加 static,包括 protected、private、public 这些也不能加
678674
675+ 原因:局部变量是保存在栈中的,而静态变量保存于方法区(JDK8 在堆中),局部变量出了方法就被栈回收了,而静态变量不会,所以在局部变量前不能加 static 关键字,静态变量是定义在类中,又叫类变量
679676
680677
681678
@@ -708,8 +705,8 @@ public static 返回值类型 方法名(参数) {
708705
709706如果方法操作完毕
710707
711- * void类型的方法 ,直接调用即可,而且方法体中一般不写return
712- * 非void类型的方法 ,推荐用变量接收调用
708+ * void 类型的方法 ,直接调用即可,而且方法体中一般不写return
709+ * 非 void 类型的方法 ,推荐用变量接收调用
713710
714711原理:每个方法在被调用执行的时候,都会进入栈内存,并且拥有自己独立的内存空间,方法内部代码调用完毕之后,会从栈内存中弹栈消失。
715712
@@ -735,7 +732,7 @@ public static 返回值类型 方法名(参数) {
735732 }
736733 ```
737734
738- * void表示无返回值,可以省略return,也可以单独的书写return ,后面不加数据
735+ * void 表示无返回值,可以省略 return,也可以单独的书写 return ,后面不加数据
739736
740737 ```java
741738 public static void methodTwo() {
@@ -840,6 +837,7 @@ public class MethodDemo {
840837值传递和引用传递的区别在于传递后会不会影响实参的值:值传递会创建副本,引用传递不会创建副本
841838
842839* 基本数据类型:形式参数的改变,不影响实际参数
840+
843841 每个方法在栈内存中,都会有独立的栈空间,方法运行结束后就会弹栈消失
844842
845843 ```java
@@ -857,8 +855,9 @@ public class MethodDemo {
857855 ```
858856
859857* 引用类型:形式参数的改变,影响实际参数的值
858+
860859 **引用数据类型的传参,本质上是将对象的地址以值的方式传递到形参中**,内存中会造成两个引用指向同一个内存的效果,所以即使方法弹栈,堆内存中的数据也已经是改变后的结果
861-
860+
862861 ```java
863862 public class PassByValueExample {
864863 public static void main(String[] args) {
@@ -874,7 +873,7 @@ public class MethodDemo {
874873 String name;//.....
875874 }
876875 ```
877-
876+
878877
879878
880879
@@ -885,7 +884,7 @@ public class MethodDemo {
885884
886885### 枚举
887886
888- 枚举是Java中的一种特殊类型 ,为了做信息的标志和信息的分类
887+ 枚举是 Java 中的一种特殊类型 ,为了做信息的标志和信息的分类
889888
890889定义枚举的格式:
891890
@@ -964,9 +963,9 @@ public class MethodDemo {
964963
965964### Debug
966965
967- Debug是供程序员使用的程序调试工具 ,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
966+ Debug 是供程序员使用的程序调试工具 ,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
968967
969- 加断点->Debug运行-> 单步运行->看Debugger窗口->看Console窗口
968+ 加断点 → Debug 运行 → 单步运行 → 看 Debugger 窗口 → 看 Console 窗口
970969
971970
972971
@@ -992,11 +991,11 @@ Debug是供程序员使用的程序调试工具,它可以用于查看程序的
992991
993992**三大特征:封装,继承,多态**
994993
995- 面向对象最重要的两个概念:类和对象。
994+ 面向对象最重要的两个概念:类和对象
996995
997- * 类:相同事物共同特征的描述。类只是学术上的一个概念并非真实存在的,只能描述一类事物。
998- * 对象:是真实存在的实例, 实例==对象。 **对象是类的实例化**!
999- * 结论:有了类和对象就可以描述万千世界所有的事物。 必须先有类才能有对象。
996+ * 类:相同事物共同特征的描述。类只是学术上的一个概念并非真实存在的,只能描述一类事物
997+ * 对象:是真实存在的实例, 实例==对象, **对象是类的实例化**
998+ * 结论:有了类和对象就可以描述万千世界所有的事物。 必须先有类才能有对象
1000999
10011000
10021001
@@ -1090,8 +1089,8 @@ public class ClassDemo {
10901089
10911090封装的步骤:
10921091
1093- 1. **成员变量应该私有,用private修饰 ,只能在本类中直接访问**
1094- 2. **提供成套的getter和setter方法暴露成员变量的取值和赋值 **
1092+ 1. **成员变量应该私有,用 private 修饰 ,只能在本类中直接访问**
1093+ 2. **提供成套的 getter 和 setter 方法暴露成员变量的取值和赋值 **
10951094
10961095使用 private 修饰成员变量的原因:实现数据封装,不想让别人使用修改你的数据,比较安全
10971096
@@ -1106,7 +1105,7 @@ public class ClassDemo {
11061105this 关键字的作用:
11071106
11081107* this 关键字代表了当前对象的引用
1109- * this 出现在方法中:**哪个对象调用这个方法this就代表谁 **
1108+ * this 出现在方法中:**哪个对象调用这个方法 this 就代表谁 **
11101109* this 可以出现在构造器中:代表构造器正在初始化的那个对象
11111110* this 可以区分变量是访问的成员变量还是局部变量
11121111
@@ -1120,23 +1119,19 @@ this 关键字的作用:
11201119
11211120#### 基本介绍
11221121
1123- Java是通过成员变量是否有static修饰来区分是类的还是属于对象的 。
1122+ Java 是通过成员变量是否有 static 修饰来区分是类的还是属于对象的 。
11241123
11251124static 静态修饰的成员(方法和成员变量)属于类本身的。
11261125
1127- 按照有无static修饰 ,成员变量和方法可以分为:
1126+ 按照有无 static 修饰 ,成员变量和方法可以分为:
11281127
11291128* 成员变量:
1130- * 静态成员变量(类变量):
1131- 有static修饰的成员变量称为静态成员变量也叫类变量,属于类本身,**与类一起加载一次,只有一个**,直接用类名访问即可。
1132- * 实例成员变量:
1133- 无static修饰的成员变量称为实例成员变量,属于类的每个对象的。**与类的对象一起加载**,对象有多少个,实例成员变量就加载多少个,必须用类的对象来访问。
1134-
1129+ * 静态成员变量(类变量):static 修饰的成员变量,属于类本身,**与类一起加载一次,只有一个**,直接用类名访问即可
1130+ * 实例成员变量:无 static 修饰的成员变量,属于类的每个对象的,**与类的对象一起加载**,对象有多少个,实例成员变量就加载多少个,必须用类的对象来访问
1131+
11351132* 成员方法:
1136- * 静态方法:
1137- 有static修饰的成员方法称为静态方法也叫类方法,属于类本身的,直接用类名访问即可。
1138- * 实例方法:
1139- 无static修饰的成员方法称为实例方法,属于类的每个对象的,必须用类的对象来访问。
1133+ * 静态方法:有 static 修饰的成员方法称为静态方法也叫类方法,属于类本身的,直接用类名访问即可
1134+ * 实例方法:无 static 修饰的成员方法称为实例方法,属于类的每个对象的,必须用类的对象来访问
11401135
11411136
11421137
@@ -1157,12 +1152,12 @@ static 静态修饰的成员(方法和成员变量)属于类本身的。
11571152
11581153成员方法的访问语法:
11591154
1160- * 静态方法:有static修饰 ,属于类
1155+ * 静态方法:有 static 修饰 ,属于类
11611156
11621157 * 类名.静态方法(同一个类中访问静态成员可以省略类名不写)
1163- * 对象.静态方法(不推荐,参考 JVM类加载--> 字节码 --> 方法调用)
1158+ * 对象.静态方法(不推荐,参考 JVM → 运行机制 → 方法调用)
11641159
1165- * 实例方法:无static修饰 ,属于对象
1160+ * 实例方法:无 static 修饰 ,属于对象
11661161
11671162 * 对象.实例方法
11681163
@@ -1195,11 +1190,11 @@ static 静态修饰的成员(方法和成员变量)属于类本身的。
11951190
11961191内存问题:
11971192
1198- * **栈内存存放main方法和地址 **
1193+ * **栈内存存放 main 方法和地址 **
11991194
12001195* **堆内存存放对象和变量**
12011196
1202- * **方法区存放class和静态变量(jdk8以后移入堆 )**
1197+ * **方法区存放 class 和静态变量(jdk8 以后移入堆 )**
12031198
12041199访问问题:
12051200
@@ -1366,7 +1361,7 @@ class Animal{
13661361
13671362 1. 子类的构造器的第一行默认 super() 调用父类的无参数构造器,写不写都存在
13681363 2. 子类继承父类,子类就得到了父类的属性和行为。调用子类构造器初始化子类对象数据时,必须先调用父类构造器初始化继承自父类的属性和行为
1369- 3. 参考JVM -> 类加载 -> 对象创建
1364+ 3. 参考 JVM → 类加载 → 对象创建
13701365
13711366 ```java
13721367 class Animal{
@@ -1387,6 +1382,7 @@ class Animal{
13871382 ```
13881383
13891384* **为什么 Java 是单继承的?**
1385+
13901386 答:反证法,假如 Java 可以多继承,请看如下代码:
13911387
13921388 ```java
0 commit comments