1. day01
1.1 JDK,JRE,JVM三者之间的关系,以及JDK、JRE包含的主要结构有哪些
JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc.exe)
JRD = JVM + Java核心类库
1.2 为什么要配置path环境变量?如何配置?
JAVA_HOME = bin的上一层目录
path = %JAVA_HOME%\bin
1.3 常用的几个命令行操作都有哪些?(至少4个)
2. day02
2.1 变量
2.2 自动类型提升与强制类型转换
2.2.1 自动化类型提升
基本数据类型之间的运算规则:
前提:这里讨论只是7种基本数据类型变量间的运算。不包含boolean类型的。
1. 自动类型提升:
结论:当容量小的数据类型的变量与容量大的数据类型的变量做运算时,结果自动提升为容量大的数据类型。
byte 、char 、short --> int --> long --> float --> double特别的:当byte、char、short三种类型的变量做运算时,结果为int型
2. 强制类型转换:见VariableTest3.java说明:此时的容量大小指的是,表示数的范围的大和小。比如:float容量要大于long的容量
class VariableTest2 {
public static void main(String[] args) {
byte b1 = 2;
int i1 = 129;
// 编译不通过
// byte b2 = b1 + i1;
int i2 = b1 + i1;
long l1 = b1 + i1;
System.out.println(i2);
float f = b1 + i1;
System.out.println(f);
short s1 = 123;
double d1 = s1;
System.out.println(d1);// 123.0
// ***************特别地*********************
char c1 = 'a';// 97
int i3 = 10;
int i4 = c1 + i3;
System.out.println(i4);
short s2 = 10;
// char c2 = c1 + s2;//编译不通过
byte b2 = 10;
// char c3 = c1 + b2;//编译不通过
// short s3 = b2 + s2;//编译不通过
// short s4 = b1 + b2;//编译不通过
// ****************************************
}
}
2.2.2 强制类型转换
强制类型转换:自动类型提升运算的逆运算。
1.需要使用强转符:()
2.注意点:强制类型转换,可能导致精度损失。
class VariableTest3 {
public static void main(String[] args) {
double d1 = 12.9;
// 精度损失举例1
int i1 = (int) d1;// 截断操作
System.out.println(i1);
// 没有精度损失
long l1 = 123;
short s2 = (short) l1;
// 精度损失举例2
int i2 = 128;
byte b = (byte) i2;
System.out.println(b);// -128
}
}
2.2.3 变量运算规则的两个特殊情况
public static void main(String[] args) {
// 1.编码情况1:
long l = 123213;
System.out.println(l);
// 编译失败:过大的整数
// long l1 = 21332423235234123;
long l1 = 21332423235234123L;
// ****************
// 编译失败
// float f1 = 12.3;
float f1 = (float) 12.3;
// 2.编码情况2:
// 整型常量,默认类型为int型
// 浮点型常量,默认类型为double型
byte b = 12;
// byte b1 = b + 1;//编译失败
// float f1 = b + 12.3;//编译失败
}
9. day09
9.1 探讨几道网红问题
代码实现如下:
//方法一:
public static void method(int a, int b) {
a = a*10;
b = b*20;
System.out.println("a=" + a);
System.out.println("b=" + b);
System.exit(0);
}
//方法二:
public static void method(int a, int b) {
PrintStream ps = new PrintStream(System.out) {
@Override
public void println(String x) {
if("a=10".equals(x)) {
x="a=100";
}else if("b=10".equals(x)) {
x="b=200";
}
super.println(x);
}
};
System.setOut(ps);
}