Java笔记

Java运行流程

用户通过键盘编辑源代码文件.java文件后,通过编译器JDK进行编译,编译成字节码文件.class,最后交给java虚拟机(JVM)进行运行

image-20250512134317324

接下来java虚拟机会把指令发给操作系统,操作系统会通过CPU读取指令,在执行过程中,操作系统会与我们的内存和磁盘做交互

image-20250512134626169

Hello world

java语言的hello world

1
2
3
4
5
6
package charter01;
public class java01_HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}

在java语言中,java文件的名字是要和类名相同的,

变量

所谓变量就是可以改变的向量存储

1.变量的声明

数据类型 变量的名称

1
String name;

2.变量的赋值

1
name = "张三";

3.变量的使用

直接访问变量的名称即可

1
System.out.print(name);

将变量的声明和赋值在一行代码中也能完成

1
2
String username = "李四";
System.out.println(username);

在使用变量之前,必须要给变量赋值,将这个操作称之为变量的初始化

1
2
String email="xx";
System.out.println(email);

标识符

标识数据的符号,标识符主要用于起名

1
String name="zhangsan";

标识符的命名规则

1.拉丁字母

1
2
String username = "zhangsan";
String xingming = "lisi";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

// 2. 符号
// @, #, %, $
// 标识符只能采用下划线和美元¥符号,其他字符不能使用,称之为特殊符号
// 空格属于特殊符号,所以不能作为标识符使用
String _name = "name";
String $name = "name";
String $na_me= "name";
System.out.println(_name);
System.out.println($name);
System.out.println($na_me);
// 3. 数字
// 阿拉伯数字0到9可以作为标识符使用
// 数字如果在标识符开头的位置,难免会被识别为数字,而不是标识符,所以会发生报错
// String 1name = "name" <- 这种是错误写法
String name1 = "zhangsan";// <- 这种可以写
// 4.在大括号范围内,标识符不允许重复 PS:这是局部变量
String name2 = "zhangsan";
// 标识符是区分大小写的
String Name = "zhangsan";
// 5. Java中预先定义好了一些标识符名称,称之为关键字或者保留字
// String static = "zhjangsan"; <- 这是错误写法 因为static是预先定义好多标识符
String Static = "zhangsan"; // <- 这样写虽然没什么毛病,把小写转为大写,但是容易混淆,所以一般不这样写
// 6. 驼峰标识:规范
String userName = "zhangsan";
// 7. 标识符的长度
// Java中没有长度的限制,但是没必要写特别长

数据类型

数据类型 数据类型 内存占用(字节数) 数据范围
整型 byte 1 -128~127
整型 short 2 -32768~32767
整型 int (默认) 4 -2147483648~2147483647
整型 long 8 -9223372036854775808~9223372036854775807
浮点型 float 4 1.401298E-45到3.4028235E+38
浮点型 double(默认) 8 4.9000000E-324到1.797693E+308
字符型 char 2 0-65535
布尔型 boolean 1 true,false
字符串 string

运算符

image-20250512171553777

在 Java 中,运算符的优先级决定了表达式中运算的执行顺序。以下是 Java 中基本算术运算符的优先级(从高到低):

  1. **括号 ()**:括号内的表达式总是最先计算。

    1
    int result = (1 + 2) * 3; // 先计算 (1 + 2),然后乘以 3
  2. **乘 *、除 /、取模 %**:这些运算符具有相同的优先级,并且比加减法优先级高。它们从左到右计算。

    1
    int result = 6 + 3 * 2; // 先计算 3 * 2,然后加 6,结果为 12
  3. **加 +、减 -**:这些运算符具有相同的优先级,并且比乘除法优先级低。它们从左到右计算。

    1
    int result = 6 + 3 - 2; // 先计算 6 + 3,然后减去 2,结果为 7

优先级注意事项:

  • 相同优先级:当运算符具有相同的优先级时,它们从左到右计算。
  • 括号的使用:使用括号可以显式地改变运算顺序,增加代码的可读性。
  • 赋值运算符:赋值运算符 = 的优先级最低,它会在所有其他运算完成后执行。

示例:

1
2
3
4
5
6
7
8
int a = 10;
int b = 5;
int c = 2;

int result1 = a + b * c; // 先计算 b * c,然后加 a,结果为 20
int result2 = (a + b) * c; // 先计算 a + b,然后乘以 c,结果为 30
int result3 = a / b + c; // 先计算 a / b,然后加 c,结果为 4
int result4 = a % b + c; // 先计算 a % b,然后加 c,结果为 2

理解这些优先级规则有助于编写和阅读复杂的数学表达式。如果你对优先级不确定,使用括号是一个很好的习惯,这样可以明确表达式的计算顺序。

面向对象

内存中的三大块,每一块都存储不同的数据

image-20250517172201822