Java 自学笔记

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package lin.demo;

/*
Java是面向对象的语言,一个程序的基本单位就是`class`。
不写`public`,也能正确编译,但是这个类将无法从命令行执行。

类名要求:
- 类名必须以英文字母开头,后接字母、数字和下划线的组合
- 习惯以大写字母开头
方法名也有命名规则,命名和`class`一样,但是首字母小写。

Java定义了以下几种基本数据类型:
- 整数类型:byte,short,int,long
- 浮点数类型:float,double
- 字符类型:char
- 布尔类型:boolean

各种整型能表示的最大范围如下:
- byte:-128 ~ 127
- short: -32768 ~ 32767
- int: -2147483648 ~ 2147483647
- long: -9223372036854775808 ~ 9223372036854775807
*/

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

int i3 = 2_000_000_000; // 加下划线更容易识别
int i4 = 0xff0000; // 十六进制表示的16711680
int i5 = 0b1000000000; // 二进制表示的512
long l = 9000000000000000000L; // long型的结尾需要加L
System.out.println(i3);
System.out.println(i4);
System.out.println(i5);
System.out.println(l);
// 特别注意:同一个数的不同进制的表示是完全相同的,例如15=0xf=0b1111。

/*
浮点数:因为小数用科学计数法表示时,小数点是可以“浮动”的,
比如1234.5可以表示成12.345x10^2,也可以表示成1.2345x10^3,所以称为浮点数。
*/
float f1 = 3.14f; // 对于float类型,需要加上f后缀
float f2 = 3.14e38f; // 科学计数法表示的3.14x10^38
double d1 = 1.79e308;
double d2 = -1.79e308;
double d3 = 4.9e-324; // 科学计数法表示的4.9x10^-324
System.out.println(f1);
System.out.println(f2);
System.out.println(d1);
System.out.println(d2);
System.out.println(d3);

// 字符类型char表示一个字符。Java的char类型除了可以表示标准的ASCII外,还可以表示一个Unicode字符。
// 注意char类型使用单引号',且仅有一个字符,要和双引号"的字符串类型区分开。
char a = 'A';
char zh = '中';
System.out.println(a);
System.out.println(zh);

// 除了上述基本类型的变量,剩下的都是引用类型。例如,引用类型最常用的就是String字符串。
// 引用类型的变量类似于C语言的指针,它内部存储一个“地址”,指向某个对象在内存的位置。
String s = "hello";
System.out.println(s);

// 定义变量时,如果加上final修饰符,这个变量就变成了常量。
// 根据习惯,常量名通常全部大写。
final double PI = 3.14; // PI是一个常量

// var关键字:省略变量类型,直接用var,编译器会根据赋值语句自动推断出变量的类型
// 个人感觉,有时可能会有用

// 定义变量时,要遵循作用域最小化原则,尽量将变量定义在尽可能小的作用域,并且,不要重复使用变量名。

// 两个整数相除只能得到结果的整数部分
// 要得到余数,使用求余运算%

// 简洁的运算符:+=,-=,*=,/=,++,--
// ++n表示先加1再引用n,n++表示先引用n再加1。

// 移位运算(用的较少,暂时不看)

// 位运算:&与,|或,~非,^异或(不同为1,否则为0)
// 对两个整数进行位运算,实际上就是按位对齐,然后依次对每一位进行运算。



}
}

// 注释

/*
注释1
注释2
*/
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
class OuterClass {
int x = 10;

class InnerClass {
public int myInnerMethod() {
return x;
}
}
}

public class HelloWorld {
public static void main(String[] args) {
OuterClass myOuter = new OuterClass();
OuterClass.InnerClass myInner = myOuter.new InnerClass();
System.out.println(myInner.myInnerMethod());
}
}

// 枚举 enum

/*
一个类可以包含以下类型的变量:
- 局部变量:在方法、构造方法或者语句块中定义的变量被称为局部变量。变量声明和初始化都是在方法中,方法结束后,变量就会自动销毁。
- 成员变量:成员变量是定义在类中、方法体之外的变量。这种变量在创建对象时实例化。成员变量可以被类中方法、构造方法和特定类的语句块访问。
- 类变量:类变量也声明在类中、方法体之外,但必须声明为 static 类型。
*/

Java 自学笔记
https://roachlin.github.io/2021-12-09-self-learn-java/
作者
RoachLin
发布于
2021年12月9日
许可协议