0. 序言
我们好,我是多选模块的流程锅,是两个六年前在纸上做 Java 讲义的庞克“失业者相关人员”。前段时间即使须要,想救活并算数新一波 Java,因此抽时间将从前的记事本讲义在紧密结合他们的认知后,重新整理了一份印刷版的数据资料。
第一集称得上 Java 的基本知识口诀吧,或许说口诀原因在于真的囊括并非很全很全,但大体上都有,总之这时候还会竭尽全力健全,而已不能再用讲义录了!依照那时的生活习惯,先附有两张观念填空:
1. 加装与自然环境实用性
Path 的增设
jdk 加装产品目录的 bin LBA加进进来
CLASSPATH 的增设
. (当前产品目录)加进进来;
jdk 加装产品目录的 lib LBA加进进来
Java_Home 的增设
jdk 加装产品目录加进进来。
2. 注解
行注解,//…块注解,/*…*/3. URL
由 拉丁字母、换行、位数、英镑记号 等共同组成。结尾无法是位数,也无法是URL(如 true、false、null)等。
Java 采用 unicode Unicode,该Unicode包涵了当今世界上绝大部分词汇的“拉丁拉丁字母”。
4. 此基础正则表达式 — 值类别
4.1. 方法论类别—boolean
true、false
4.2. auth
上述类别都是有记号的,Java 中不存在 unsigned int m 这种的。4.3. 字符类别
2 字节,但最高位并非记号位,不存在负数单引号表示的是字符类别常量,如 A转移字符表示的也是字符类别,如 \n、\b、\t、\、\”, \\ 等字符在 unicode 字符表中排序位置的十六进制表示也可以表示字符类别,如\u00414.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.05.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 :
……;
}
须要加 break,假如两个 case 后面不加 break 的话,那么匹配到这个 case 后,后面的 case 也会执行,直到碰到 break;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);