1.1 基础概念
1.1.1 特点
简单易学;面向对象(封装,继承,多态);平台无关性( Java 虚拟机实现平台无关性);可靠性;
安全性;支持多线程;支持网络编程并且很方便;编译与解释并存;
1.1.2 Java 和 C++的区别
都是面向对象的语言,都支持封装、继承和多态
Java 不提供指针来直接访问内存,程序内存更加安全
Java 的类是单继承的,C++ 支持多重继承;虽然 Java 的类不可以多继承,但是接口可以多继承。
Java 有自动内存管理机制,不需要程序员手动释放无用内存
在 C 语言中,字符串或字符数组最后都会有一个额外的字符‘\0’来表示结束。但是,Java 语言中没有结束符这
一概念
1.1.3 四类八种
基本都实现了常量池,实现常量池意味着不创建对象时,取值区间在常量池区间内的,都是从常量池取值处理
Integer i1 = 33; Integer i2 = 33;
System.out.println(i1 == i2);// 输出 true 在常量池区间内,不创建对象
Integer i11 = 333;
Integer i22 = 333;
System.out.println(i11 == i22);// 输出 false 不在常量池区间内,创建对象
类型 | 基本类型 | 包装类 | 位数 | 字节 | 默认值 | 常量池 |
---|---|---|---|---|---|---|
整形 | int | Integer | 32 | 4 | 0 | [-128,127] |
整形 | short | Short | 16 | 2 | 0 | [-128,127] |
整形 | long | Long | 64 | 8 | 0L | [-128,127] |
整形 | byte | Byte | 8 | 1 | 0 | [-128,127] |
字符型 | char | Character | 16 | 2 | 'u0000' | [0,127] |
浮点型 | float | Float | 32 | 4 | 0f | |
浮点型 | double | Double | 64 | 8 | 0d | |
布尔型 | boolean | Boolean | 1 | false | true and false |
1.1.4 关键字
类型 | 内容 | - | - | - | - | - | - |
---|---|---|---|---|---|---|---|
访问控制 | private | protected | public | default | |||
类,方法和变量修饰符 | abstract | class | extends | final | implements | interface | native |
new | static | strictfp | synchronized | transient | volatile | ||
程序控制 | break | continue | return | do | while | if | else |
for | instanceof | switch | case | default | |||
错误处理 | try | catch | throw | throws | finally | ||
包相关 | import | package | |||||
基本类型 | boolean | byte | char | double | float | int | long |
short | null | true | false | ||||
变量引用 | super | this | void | ||||
保留字 | goto | const |
native: Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口),native的意思
就是通知操作系统
transient: 取消序列化
volatile: 保证可见性 + 禁止指令重排 , 内存模型 及并发编程中的三个概念 原子性,可见性,有序性 ( https://www.cnblogs.com/dolphin0520/p/3920373.html )
strictfp: strictfp 关键字可应用于类、接口或方法。使用 strictfp 关键字声明一个方法时,该方法中所有的float 和 double表达式都严格遵守FP-strict的限制,符合IEEE-754规范。