JAVA基础

赋值

符号表

type value
t int 10
s String 0x1618
  • 变量和字面量之间的赋值

    • s = 10 ,基本数据类型,赋值
    • s = "tag" ,引用数据类型,赋地址
  • 变量和变量之间的赋值 s = t

    • 基本数据类型变量,赋 t 的具体值
    • 引用数据类型变量,赋 t 指向的引用的地址值

包装类型

  • 包装类型(String)之间的比较都用equals,注意NPE问题
  • 基础数据类型与封装类进行 ==、+、-、*、/ 运算时,会将封装类进行拆箱,对基础数据类型进行运算
  • 浮点类型数值比较用 BigDecimal 的 compareTo

JAVA值传递

https://zhuanlan.zhihu.com/p/89794950

https://blog.csdn.net/weixin_44640989/article/details/120590881

1、基本数据类型:形参b是fun栈帧的局部变量,初始值为实参a的拷贝10,改变形参值无法影响实参

void fun(int b) {
	b = 11;
}

void main() {
  int a = 10;
	fun(a);
  System.out.println(a); // 10
}

2、引用数据类型:

  • 形参b是fun栈帧的局部变量,初始值为实参a的引用地址值0x1234拷贝,改变形参值(指向对象地址)无法影响实参
  • 形参p是fun栈帧的局部变量,形参p和实参per始终保持相同的值(指向同一个对象地址),形参的操作会影响实参指向对象的内容
void fun(String b, Person p) {
	b = 'b'; // 0x5678
  p.setName('red');
}

void main() {
  String a = 'a'; // 0x1234
  Person per = new Person('green');
	fun(a, per);
  System.out.println(a); // 'a'
  System.out.println(per.getName()); // 'red'
}

try-with-resource

任何实现了 java.lang.AutoCloseable的对象, 包括所有实现了 java.io.Closeable 的对象, 都可以用作一个资源

public String  readFirstLineFromFile() throws IOException {
		try (BufferedReader br = new BufferedReader(new FileReader("a"))) {
            return br.readLine();
    }
}
posted @ 2023-03-31 20:17  Red_Revolution  阅读(20)  评论(0编辑  收藏  举报