Java 细节

取余运算


	int a = 3 % 2;
	int b= 2 % 3;
	int c = 3 % -2;
	int d = -2 % 3;
	int e = -2 % -3;

1
2
1
-2
-2
符号与左边相关

数据自动转换

低到高自动转换
高到底强制

数据做加法运算:

short a = 1;
byte b = 2;
chat c = 3;

 a + b
 b + c
 a + c

输出都是 Java.lang.Integer 类型

规则具体讲解:
(2.2.1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。
(2.2.2)如两操作数均不为double,当操作数之一为float,则另一操作数先被转换为float,再参与运算。
(2.2.3)如两操作数均不为double或float,当操作数之一为long,、则另一操作数先被转换为long,再参与算术运算。
(2.2.4)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。

反射

  • 对象.getClass()
  • 类.class
  • Class.forName("全限定名类")

https://tool.lu/coderunner/?id=cJL

代码块的妙用

  • 普通代码块 (方法内部)
  • 静态代码块
  • 构造代码块
  • 同步代码块

hashcode

  • 在程序执行期间,只要equals方法的比较操作用到的信息没有被修改,那么对这同一个对象调用多次,hashCode方法必须始终如一地返回同一个整数。
  • 如果两个对象根据equals方法比较是相等的,那么调用两个对象的hashCode方法必须返回相同的整数结果。
  • 如果两个对象根据equals方法比较是不等的,则hashCode方法不一定得返回不同的整数。

流的转换(不转换也可以读写,为什么要转换)

InputStreamReader

OutPutStreamWriter

posted @ 2022-09-16 11:28  swinm  阅读(16)  评论(0编辑  收藏  举报