1. JVM JRE JDK三者的作用和关系
- JDK: java development kit, java开发工具包,用来开发Java程序的,针对java开发者;
JDK 即为 Java 开发工具包,包含编写 Java 程序所必须的编译、运行等开发工具以及 JRE。开发工具如:用于编译 Java 程序的 javac 命令;用于启动 JVM 运行 Java 程序的 Java 命令;用于生成文档的 Javadoc 命令;用于打包的 jar 命令等等。
JDK 包含 JRE 包含 JVM - JRE: java runtime environment, java运行时环境,针对java用户;
JRE 即为 Java 运行环境,提供了运行 Java 应用程序所必须的软件环境,包含有 Java 虚拟机(JVM)和丰富的系统类库。系统类库即为 Java 提前封装好的功能类,只需拿来直接使用即可,可以大大的提高开发效率。
JRE 包含 JVM - JVM: java virtual machine,java虚拟机,用来解释执行字节码文件(class文件)的。
2. Java跨平台性的原理
平台指的是操作系统,Windows、 Linux、macOS
跨平台性指的是Java应用程序可以在任意操作系统上运行
- 在需要运行Java应用程序的操作系统上,安装一个与操作系统对应的Java虚拟机(Java Virtual Machine)即可
3. 类型转换
隐式转换
- float虽然只占用4个字节,但是取值范围比long大,因为小数占用的存储空间很小
强制转换
取值范围大的数据类型赋值给取值范围小的数据类型,这是不被允许的,需要进行强制转换,[有可能]会出现精度损失
强制转换的精度损失
十进制(默认)
二进制:以0b开头
八进制:以0开头
十六进制:以0x开头
- 字节以二进制存储
- 计算机中的运算都是以二进制补码的形式进行运算
Java的常量优化机制
byte b = 3 + 4;
不会报错
4. 运算符
扩展赋值运算符
+=、-=、*=、/= ...
扩展赋值运算符,内部自带强制类型转换效果
关系运算符
&、|:两边都要执行
&&、||:短路运算符
运算符优先级