Java 基础测试
Java 基础测试
2023-6-7
-
code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23package com.example;
public class Test2 {
public static int add(int a, int b) {
try {
return a + b;
} catch (Exception e) {
System.out.println(e);
} finally {
System.out.println("finally...........");
return a - b;
}
// TODO: 语法错误
// return 0;
}
public static void main(String[] args) {
int sum = add(34, 9);
// 25
System.out.println(sum);
}
} -
字符串不可变的考察
1
2
3
4
5
6
7
8
9
10
11
12
13
14package com.example;
public class Test1 {
public static void changeStr(String str) {
str = "aaaaaaaaaa"; // 将传入的字符串参数str 修改为"aaaaaaaaaa"
}
public static void main(String[] args) {
String str = "weclome"; // 定义一个名为str 的字符串变量,并赋值为"weclome"
changeStr(str); // 调用changeStr 方法,并将 str 作为参数传入
System.out.println(str); // 打印输出str 的值 => 因为 String 定义的是不可变的,所以不会影响 main 中的 str
}
} -
code
1
2
3
4
5
6
7
8
9
10
11package com.example;
public class Test3 {
public static void main(String[] args) {
int i = 1;
int j = ++i;
// i: 2 j: 2
System.out.println(i + " " + j);
}
} -
code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19package com.example;
public class Test4 {
{
System.out.println("实例代码块");
}
static {
System.out.println("静态代码块");
}
public static void main(String[] args) {
// 调用后的输出结果
// 静态代码块
// 实例代码块
// 实例代码块
new Test4();
new Test4();
}
} -
set 、list
的区别 -
线程问题
Thread
: 父类及其子类Runnable
-
==
1
2
3
4
5
6
7
8
9
10
11
12
package com.example;
public class Test5 {
public static void main(String[] args) {
String str1 = "123";
String str2 = new String("123");
String str3 = "123";
System.out.println(str1 == str2); // false
System.out.println(str1 == str3); // true
}
} -
&&
短路与运算的考察 -
输出循环后的结果
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16package com.example;
public class Test6 {
public static Boolean foo(char c) {
System.out.print(c + " ");
return true;
}
public static void main(String[] args) {
int i = 0;
for (foo('C'); foo('B') && i < 2; i++) {
foo('A');
}
}
}1
2
3
4
5
6
7
8
9
10
11
12
13
14for (foo('C'); foo('B') && i < 2; i++) {
// 循环开始
// 1. 调用foo 方法,传入字符'C',打印输出字符'C'和空格
// 2. 调用foo 方法,传入字符'B',打印输出字符'B'和空格
// 3. 判断条件foo('B') && i < 2
// - foo('B') 返回true
// - i 的值为0,小于 2,条件为真
// 进入循环体
// 4. 调用foo 方法,传入字符'A',打印输出字符'A'和空格
// 5. i 的值增加1
// 循环回到第3 步,重复执行第 3 到第 5 步,直到 i 的值增加到 2 时,条件为假
// 循环结束
} -
StringBuffer
1
2
3
4
5
6
7
8
9
10
11package com.example;
public class Test07 {
public static void main(String[] args) {
StringBuffer str = new StringBuffer();
// TODO: 考察的是 append 方法的使用
str.append("hello");
// 实现 输出 "hello"
System.out.println(str);
}
} -
substring
方法 1
2
3
4
5
6
7
8
9
10package com.example;
public class Test08 {
public static void main(String[] args) {
String str = "我是中国人";
// TODO: 考察 substring
System.out.println(str.substring(2, 4)); // 中国 ( , ]
System.out.println(str.substring(2)); // 中国人
}
} -
Java1.8
,版本之前的前提 Java
特性中, anstract class
和 interface
有什么区别 - 抽象类可以有
构造方法
,接口中不能有 构造方法
- 抽象类中可以有普通成员变量,
接口中没有普通成员变量 - 一个类可以实现多个接口,
但只能继承一个抽象类
- 抽象类可以有
-
数据类型的确定
1
(short)10/11.2*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
27
28
29
30
31
32public class Main {
public static void main(String[] args) {
// 表达式计算结果的数据类型取决于操作数的数据类型和操作符的规则
// 在这个表达式中,我们进行了以下操作:
// (short)10:将整数10 强制转换为 short 类型
// 转换后的结果仍然是short 类型
// short类型的取值范围比 int 类型小,但我们只是进行类型转换,不会改变数值本身
short num1 = (short)10;
// 11.2:这是一个浮点数常量,是一个double 类型的字面值
// 在进行后续运算时,将根据操作数的类型进行自动类型提升
double num2 = 11.2;
// 进行除法操作
// num1 / num2,其中num1 是 short 类型,num2 是 double 类型
// 根据Java 的自动类型提升规则,short 类型会被提升为与 double 相同的类型,也就是 double 类型
// 所以除法操作的结果是double 类型
double divisionResult = num1 / num2;
// 进行乘法操作
// divisionResult * 2,其中divisionResult 是 double 类型,2 是 int 类型
// 根据Java 的自动类型提升规则,int 类型会被提升为与 double 相同的类型,也就是 double 类型
// 所以乘法操作的结果是double 类型
double finalResult = divisionResult * 2;
// 打印最终结果及其数据类型
System.out.println(finalResult);
System.out.println("最终结果的数据类型:" + Double.TYPE);
}
} -
Linux
权限对应的数值 权限 1
2
3读取权限(r):数值为 4。
写入权限(w):数值为 2。
执行权限(x):数值为 1。1
2
3
4
5
6
7
8
9
10
11
12
13为了表示一个文件或目录的权限,可以将相应的数值进行组合,并将它们分别分配给所有者、所属组和其他人。这样,就可以用一个三位数表示整个权限设置。
例如,如果一个文件的权限设置为所有者可读写、所属组只读、其他人只执行,则权限数值表示为 754。这样的权限设置可以解释如下:
所有者:读取权限(4)+ 写入权限(2)+ 执行权限(1),即 4 + 2 + 1 = 7。
所属组:读取权限(4)+ 执行权限(1),即 4 + 1 = 5。
其他人:执行权限(1)。
这里是一些常见的权限数值及其对应的权限设置示例:
777:所有者、所属组和其他人都具有读取、写入和执行权限。
755:所有者具有读取、写入和执行权限,所属组和其他人具有读取和执行权限。
644:所有者具有读取和写入权限,所属组和其他人只具有读取权限。
请注意,为了设置权限数值,你可以使用 chmod 命令。例如,chmod 755 filename 将文件 filename 的权限设置为 755。 -
创建并压缩归档文件
1
tar -czvf archive.tar.gz file1 file2 directory1
-
解压缩并解压缩压缩的归档文件
1
tar -xzvf archive.tar.gz
1
2
3
4-x:解压缩归档文件。
-z:使用 gzip 进行解压缩。
-v:显示详细的操作过程,即输出被解压缩的文件列表。
-f archive.tar.gz:指定要解压缩的归档文件。 -
cut
命令可以从文本文件的每一行中截取指定内容的数据
2023-6-10
springboot
的原理 static
和非 static
的区别、生命周期、销毁 Map
说一说线程安全和非线程安全有哪些实现 MQ
的作用 AOP
- 讲一讲项目
- 添加一个评论功能
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 coder-itl!
评论