写点什么

Java 基础知识整理

用户头像
多选参数
关注
发布于: 2020 年 07 月 18 日
Java 基础知识整理

0. 前言

大家好,我是多选参数的程序锅,是一个四年前在纸上做 Java 笔记的硬核“失业人员”。最近因为需要,想捡回并重新学习一波 Java,所以抽空将以前的手写笔记在结合自己的理解之后,重新整理了一份电子版的资料。

本篇算是 Java 的基础知识小抄吧,之所以说小抄是因为觉得涵盖不是很全很全,但是基本上都有,当然后头还会继续完善,只是不会再用笔记录了!按照现在的习惯,先附上一张思维导图:

1. 安装与环境配置

  • Path 的设置

jdk 安装目录的 bin 子目录添加进去

  • CLASSPATH 的设置

. (.表示当前目录)添加进去;

jdk 安装目录的 lib 子目录添加进去

  • Java_Home 的设置

jdk 安装目录添加进去。

2. 注释

  • 行注释,//...

  • 块注释,/*...*/

3. 标识符

字母、下划线、数字、美元符号 等组成。开头不能是数字,也不能是关键字(如 true、false、null)等。

Java 使用 unicode 字符集,该字符集包含了世界上大部分语言的“字母表”。

4. 基础数据类型 --- 值类型

4.1. 逻辑类型---boolean

true、false

4.2. 整型



上述类型都是有符号的,Java 中不存在 unsigned int m 这种的。

4.3. 字符类型

  1. 2 字节,但是最高位不是符号位,不存在负数

  2. 单引号表示的是字符类型常量,如 'A'

  3. 转移字符表示的也是字符类型,如 \n、\b、\t、\'、\", \\ 等

  4. 字符在 unicode 字符表中排序位置的十六进制表示也可以表示字符类型,如\u0041

4.4. 浮点数



4.5. 基础类型转换

Java 中使用 (类型名)要转换的值 的方式进行类型转换。级别低常量/变量赋值给级别高的变量时,系统自动进行转换,如 float x = 100;相反的赋值需要用上述方式进行显示转换。

级别从低到高(其实就是按照字节数及表示的值范围进行排序):byte、short、char、int、long、float、double

需要注意的时:级别高常量/变量赋值给级别低的变量时,需要注意截断问题。所以最好不要超过级别低的变量所能表示的范围。若超过了,则级别低的值需要根据截断的字节情况算出来。比如 byte a = (byte) 128 ,实际 a 的值为 -128。

5. 数组 --- 引用类型

5.1. 数组声明

// 声明一维数组
int name[];
int[] name; // 后者更常用

// 声明二维数组,一个二维数组由若干个一维数组构成,相当于数组的数组
int name[][];
int[][] name;

// 一次性声明多个数组
float[] a, b; // 等价于 float a[], b[]
float[] a, b[]; // 等价于 float a[], b[][]

与 C 不同的是 Java 不允许 int a[12] 或者 int[12] a

5.2. 数组创建

// 数组名 = new 数组元素的类型[大小]
// new int[4] 相当于在 Java 的堆区分配了内存,并且会返回该内存区的首地址。之后将该地址赋值给 name 数组变量,Java 中不使用指针这一概念,而是使用引用这一概念。
int[] name;
name = new int[4];

int[] name = new int[4];

// Java 允许使用 int 型变量来指定数组的大小
int size = 10;
int[] name = new int[size];

// Java 中构成二维数组的一维数组不必有相同的长度
int[][] a = new int[3][];
a[0] = new int[6];
a[1] = new int[12];
a[2] = new int[8];

创建数组的时候没有指定分配的元素的值的话,那么 Java 会使用默认值填充,如 float 是 0.0

5.3. 初始化

// 声明数组的时候,可以直接将一些初始化值付给数组变量;
// 个人认为其实,{1, 2, 3, 4} 也是一种创建数组的方式;
int[] data1 = {1, 2, 3, 4};
int[] data2 = new int[]{1, 2, 3, 4};
// int[] data2 = new int[4]{1, 2, 3, 4}; 这种方式是会出错的

// 初始化一个二维数组,组成二维数组的一维数组的长度可以不相同
int[][] a = {{1}, {1, 1}, {1, 2, 1}, {1, 2, 3, 1}};

5.4. 数组操作

5.4.1. 访问

使用索引值进行访问,下标从 0 开始。

5.4.2. length 的使用

数组名.length(一维数组是数组中元素的个数;二维数组是一维数组的个数)。

5.4.3. 输出

使用 System.out.println() 输出的时候,char 型的数组输出的是数组全部元素的值,要想输出 char 型数组的运用值使用 System.out.println("" + a);int 型的数组输出则为引用值。

6. 运算符



算数混合运算的精度是:double、float、long、int 的顺序来,也就是说假如同时存在 double 和 int 类型的,那么则按照 double 类型的来。这个时候赋值需要特别注意,不要把超过 int 范围的算术表达式赋值给 int,因为会发生截断(其他类型的值也是类似的)。

7. 控制语句

7.1. 条件分支语句 --- if

if (expression) {
.....
}

if (expression) {
......
} else {
......
}

if (expression) {
......
} else if (expression) {
......
} else {
......
}

7.2. 选择语句 --- switch

switch (expression) {
case constant1:
......;
break;
case constant2:
......;
break;
case ......:
......;
break;
default :
......;
}
  1. 需要加 break,假如一个 case 后面不加 break 的话,那么匹配到这个 case 之后,后面的 case 也会执行,直到碰到 break;

  2. switch 中 expression 的值可以是 byte、short、int、char,不可以是 long;

7.3. 循环语句

// for 语句
for (int i = 0; i < 10; i++) {
......
}

// while 语句
while (i < 10) {
......
}

// do ... while 语句
do {
} while(i < 10)
// for each 语句
// for (声明循环变量:数组的名字){}
int[] a = {1, 2, 3, 4, 5};
for (int i:a){
System.out.println(i);
}
// 声明循环变量,必须变量声明的形式,而不能拿已声明过的变量来,如下是错误的
int i = 0;
for (i:a) {
......
}

break 和 continue 同样可以应用在循环语句中,当然 break 还可以用于 switch 语句

7.4. 其他语句

break、continue、return

8. 输入输出

8.1. 输入

Scanner reader = new Scanner(System.in);
boolean b = reader.nextBoolean(); // 读取用户输入的数据
byte b = reader.nextByte();
short s = reader.nextShort();
int i = reader.nextInt();
long l = reader.nextLong();
float f = reader.nextFloat();
double d = reader.nextDouble();

8.2. 输出

// 允许使用 “+” 将变量、表达式、一个常数值或一个字符串进行合并输出
System.out.println(); // 输出之后自动换行
System.out.print(); // 不换行

// 格式化输出
System.out.printf("格式化控制部分", 表达式1, 表达式2, ..., 表达式n);



发布于: 2020 年 07 月 18 日阅读数: 86
用户头像

多选参数

关注

微信公众号:多选参数,不关注一波? 2018.09.20 加入

多选参数专注于各种技术的分享,目前专注于基础知识(数据结构与算法、操作系统)、通用技术(Git、MySQL、Redis、可读代码编写)、后端技术(Java)的分享。

评论

发布
暂无评论
Java 基础知识整理