开始

https://www.oracle.com/java/technologies/downloads/#jdk21-windows

一些基础知识

编译型语言。

java 将代码编译为一种字节码。

虚拟机负责加载字节码并执行。一次编写,到处运行。

三个版本

  1. EE spring 框架,数据库,分布式架构(应用)
  2. SE 学习 java 标准库使用(是基础)
  3. ME 没用,学 android 即可

jre 是运行 java 字节码的虚拟机。

jdk 是个工具箱。

jsr 是规范,jcp 是个组织。

如何安装

x64 Compressed Archive 是一种压缩档案的文件,推荐用这个,解压即可使用。

解压到某个位置。

添加个环境变量,变量名,变量值就是放的位置。

在 Path 中添加 %JAVA_HOME% \bin 和\jre\bin

%变量名% 的形式表示引用一个环境变量的值。例如,%PATH% 表示系统的 PATH 环境变量。

这个对应了这个,方便之后切换 java 的版本。

在 cmd 中使用 java --version 能够确定什么版本。

第一个程序

public class Hello{
    public static void main(String[] args){
        System.out.println("Hello World");
    }
}

.java 文件其实就是个文本文件,使用 javac 指令把文件变为.class 文件,就是字节码了,然后再使用 java 指令,就可以运行在 jvm 也就是 java 虚拟机上面了。

上面是字节码,下面是文本。

javac 让文本生成字节码。

java 指令直接执行字节码,不过后面不能有 class。

使用 IDE

IDE是集成开发环境:Integrated Development Environment的缩写。

使用 IDEA 即可。

java 基础

java 是面向对象的一门语言,所以基本单位是类。

类的命名规范就是大写字母开头。也就是大驼峰。

idea 格式化文档(也就是让排版更好看)的快捷键是

变量

java 是强类型语言。也就是类型必须明确声明:变量在使用前必须声明其类型。显式类型转换:不兼容类型之间需要显式转换。

强类型语言的好处就是编译阶段就能发现潜在的错误,而不是运行时才发现问题。

  1. 整数类型
    1. byte
    2. short
    3. int
    4. long
  2. 浮点数类型
    1. float
    2. double
  3. 字符类型
    1. char
  4. 布尔类型
    1. boolean

一个字节是八位二进制。

浮点数中不带 f 结尾的默认是 double 类型,不能赋值给 float 类型。

理论上存储布尔类型只需要 1 bit 但是 jvm 内部会把 boolean 表示为 4 字节整数。

字符类型 char 表示一个字符。Java的 char 类型除了可表示标准的ASCII外,还可以表示一个Unicode字符。

注意char类型使用单引号',且仅有一个字符,要和双引号"的字符串类型区分开。

除了基本类型就是引用类型,字符串就是引用类型。

常量

使用 final 修饰符。

作用是避免 magic number

Magic Number(魔法数字)是指在代码中直接使用的、没有明确含义的数字字面量。这些数字缺乏上下文解释,使得代码难以理解和维护。

var 关键字

类型名太长,写起来麻烦可以用 var

StringBuilder sb = new StringBuilder();
 
var sb = new StringBuilder(); //你写成这样,编译器会自动变成上面的形式

整数运算

整数是精准运算。

普通计算:加减乘除,取模

位运算:左移乘二,右移除二

位运算:与,或,非,异或

类型自动提升与强制

类型不同的无法运算,只有相同类型才能运算。

两种情况:自动提升,强制提升

自动提升:小转大,也就是位数占得小的变位数占得大的,如 short(2 位) 变 int(4 位)。这个补零就行,不会损失精度。

强制提升:大转小,int 变 short,精度或许会变化。