为了便于大家学习,本文整顿分享一下 100 条初学者必背的 Java 知识点。因为篇幅过长,首先分享前 50 条,干货满满,倡议先珍藏哦~
1. 编写:编写的 Java 代码保留在以“.java”结尾的源文件中。
2. 编译:应用 javac.exe 命令编译 java 源文件,生成字节码文件。格局:javac 源文件名.java
3. 运行:应用 java.exe 命令解释运行字节码文件。格局:java 类名
4. 在一个 java 源文件中能够申明多个 class,然而只能最多有一个类申明为 public,而且被申明为 public 的类的类名必须与源文件名雷同。
5.java 关键字中所有字母都为小写
6.Java 中的名称命名标准:包名:多单词组成时所有字母都小写:xxxyyyzzz 类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz 变量名、办法名:多单词组成时,第一个单词首字母小写,第二个单词开始每个 单词首字母大写:xxxYyyZzz 常量名:所有字母都大写。多单词时每个单词用下划线连贯:XXX_YYY_ZZZ
7. 字符串是属于一个类,属于援用数据类型
8. 在类体内,在办法体外申明的变量称为成员变量。
9. 在办法体外部申明的变量称为局部变量。局部变量除形参外,需显式初始化能力应用。(形参也是局部变量)
10.java 的整型常量默认为 int 型,申明 long 型常量须后加‘l’或‘L’。
11.Java 的浮点型常量默认为 double 型,申明 float 型常量,须后加‘f’或‘F’。
12.Java 中的所有字符都应用 Unicode 编码,一个字符能够存储一个字母,一个汉字,所以 java 中 char 类型是两个字节。
13.boolean 类型数据只容许取值 true 和 false,无 null。不能够应用 0 或非 0 的整数代替 false 和 true。Java 虚拟机中没有任何供 boolean 值专用的字节码指令,Java 语言表达所操作的 boolean 值,在编译之后都应用 java 虚拟机中的 int 数据类型来代替:true 用 1 示意,false 用 0 示意。
14. 尽管 long 类型是 8 个字节,float 是 4 个字节,然而 float 类型采纳迷信计数法存储,所以 float 类型的存储范畴比 long 类型更大。
15. 主动类型转换:容量小的类型主动转换为容量大的数据类型。byte,short,char 之间不会互相转换,他们三者在计算时首先转换为 int 类型。
16. 强制类型转换:将容量大的数据类型转换为容量小的数据类型,但可能造成精度升高或溢出。
17. 字符串不能间接转换为根本类型,但通过根本类型对应的包装类则能够实现把字符串转换成根本类型。
18. 计算机底层都以二进制补码的形式来存储数据。
19. 负数(最高位是 0)的原码、反码、补码都雷同,正数(最高位是 1)的补码是其反码 +1。
20. 赋值运算符:= += -= *= /= %=,运算的后果不会扭转变量自身的数据类型。short i = i + 1;因为常量“1”默认是 int 型的,所以编译会报错,应用 short i += 1,则做到了 + 1 的作用,也没有扭转数据类型。
21.& 与 &&、| 与 | | 的区别:&&、| | 具备短路性能,右边的条件成立或者不成立,左边的条件不必再判断,&、| 不论什么状况,都要把所有条件判断完。
22. 位运算:位运算符操作的都是整型的数据。(左移运算符)<<:在肯定范畴内,每向左移 1 位,相当于 * 2(右移运算符)>>:在肯定范畴内,每向右移 1 位,相当于 / 2
23. 流程管制:程序构造:程序从上到下执行。分支构造:if – else、switch-case 循环构造:for、while、do-while
24. 数组属于援用数据类型变量,然而数组的元素既能够是根本数据类型,也能够是援用数据类型。
25. 数组的长度一旦确定就不能批改,初始化实现,长度就定了。
26. 数组动态初始化:数组元素的初始化和数组元素的赋值同时进行。例如:int a[] = new int [] {1,2,3};
27. 数组动静初始化:数组元素的初始化和数组元素的赋值离开进行。例如:int b[] = new int [5]; b[0] = 1 ;
28. 数组元素的默认初始化值:整型:0 浮点型:0.0 字符型:0 或者’\u0000’,而非’0’布尔类型:false 援用数据类型:null
29. 关键字 break、continue 能够带标签应用(相似于 C 语言的 goto 语句)break label;// 完结指定标识的一层循环构造。continue label;// 完结指定标识的一层循环构造当次循环。
30. 面向对象 vs 面向过程面向过程:强调的是性能行为,以函数为最小单位,思考怎么做。面向对象:强调具备了性能的对象,以类 / 对象为最小单位,思考谁来做。
31. 面向对象中两个重要的概念:类:对一类事物的形容,是形象的、概念上的定义对象:是理论存在的该类事物的每个个体,因此也称为实例(instance)
32. 虚拟机栈,即为平时提到的栈构造。局部变量存储在栈构造中;new 进去的构造(比方:数组、对象)加载在堆空间中。
补充:对象的属性(非 static 的成员变量)也是加载在堆空间中。int arr [] = new arr [],以等号“=”为界,右边是局部变量寄存在栈,左边是 new 的机构,寄存在堆中。
办法区:类的加载信息、常量池、动态域
33.“属性”与“变量”的区别:
① 在类中申明的地位的不同属性:
间接定义在类的一对 {} 内。局部变量:申明在办法内、办法形参、代码块内、结构器形参、结构器外部的变量。
② 对于权限修饰符的不同属性:
能够在申明属性时,指明其权限,应用权限修饰符。罕用的权限修饰符:private、public、缺省、protected —> 体现为封装性。局部变量:不能够应用权限修饰符。
③ 默认初始化值的状况属性:
类的属性,依据其类型,都默认初始化值。整型(byte、short、int、long:0)、浮点型(float、double:0.0)、字符型(char:0(或’\u0000’))、布尔型(boolean:false)、援用数据类型(类、数组、接口:null)局部变量:没默认初始化值。意味着,咱们在调用局部变量之前,肯定要显式赋值。特地地:形参在调用时,咱们赋值即可。
④在内存中加载的地位属性:
加载到堆空间中(非 static)。局部变量:加载到栈空间。
34. 如果办法没返回值,“return;”示意完结此办法的意思。
35. 封装性思维具体的代码体现:
36. 权限修饰符的范畴:
37.4 种权限都能够用来润饰类的内部结构:属性、办法、结构器、外部类。润饰类的话,只能应用:缺省、public。
38. 如果没显式的定义类的结构器的话,则零碎默认提供一个空参的结构器。
39. 一个类中定义的多个结构器,彼此形成重载。
40. 一旦咱们显式的定义了类的结构器之后,零碎就不再提供默认的空参结构器。
41. 一个类中,至多会有一个结构器。
42.this 能够了解为:以后对象或以后正在创立的对象。
43. 能够显式的应用 ”this(形参列表)” 形式,调用本类中指定的其余结构器,然而结构器中不能通过 ”this(形参列表)” 形式调用本人(死循环)。
44. 规定:”this(形参列表)“必须申明在以后结构器的首行,能够推出结构器外部,最多只能申明一个 ”this(形参列表)”,用来调用其余的结构器。
45. 如果应用的类或接口是 java.lang 包下定义的,则能够省略 import 构造。应用 ”xxx.*” 形式表明能够调用 xxx 包下的所有构造。然而如果应用的是 xxx 子包下的构造,则仍须要显式导入。
46. 一个类能够被多个子类继承(一个爸爸能够有多个儿子),然而一个类只能有一个父类(一个儿子只能有一个亲生爸爸)
47. 子类继承父类当前有哪些不同?一旦子类 A 继承父类 B 当前,子类 A 中就获取了父类 B 中申明的所有的属性和办法。特地的,父类中申明为 private 的属性或办法,子类继承父类当前,依然是获取了父类中私的构造,只因为封装性(private 权限修饰符)的影响,使得子类不能间接调用父类的构造而已。子类继承父类当前,还能够申明本人特有的属性或办法:实现性能的拓展。
48. 子类间接继承的父类,称为:间接父类。间接继承的父类称为:间接父类。子类继承父类当前,就获取了间接父类以及所有间接父类中申明的属性和办法。
49. 如果没有显式的申明一个类的父类的话,则此类继承于 java.lang.Object 类。
50. 办法的重写 (override 或 overwrite)。
子类继承父类当前,能够对父类中同名同参数的办法,进行笼罩操作。