【Java基础】Java基础知识 && 数据类型转换 && 运算符

发布时间 2023-11-16 14:07:02作者: 沙汀鱼

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. 运算符

扩展赋值运算符
+=、-=、*=、/= ...
扩展赋值运算符,内部自带强制类型转换效果

关系运算符
&、|:两边都要执行
&&、||:短路运算符

运算符优先级