- 2024.02.28
java运算符
- 取余%运算的本质:a%b=a-a/b*b
- 关系运算符 instanceof :检查是否是类的对象 比如 “hsp” instanceof String
- 运算符的优先级中,只有单目运算符、赋值运算符是从右向左运算的
- JVM为了提高性能和减少内存开销,在实例化字符串常量的时候进行了一些优化,为字符串开辟一个字符串常量池,类似于缓存区
创建字符串常量时,首先看字符串常量池是否存在该字符串,若存在该字符串,则返回引用实例,若不存在,再创建新的字符串放入字符串常量池中
==和equals方法的区别
- 对于基本类型,==比较的是值是否相等
- 对于引用类型,==比较的是地址
- equals不能用于基本类型的比较
- 如果没有重写equals方法,equals方法就相当于==;String类是已经重写了equals方法,比较的是内容是否相同
- 如果重写了equals方法,equals方法比较的是两个对象的内容是否相同
final 在java中有什么作用
- final可以用来修饰一个引用:
如果引用是基本数据类型,则该引用为常量,值无法修改;
如果引用是引用数据类型,比如对象、数组,则该对象、数组本身的内容值可以修改,但指向该对象或数组地址的引用不能再修改(即指向新的地址)
如果引用指向类的成员变量,则必须当场赋值,否则编译会报错 - final可以用来修饰一个方法:
当一个方法被final修饰,这个方法可以理解为最终方法,无法被子类重写,但是仍可以被继承 - final可以用来修饰一个类:
当一个类被final修饰,该类成为最终类,无法被继承,比如常用的String类就是最终类
java中的Math,round(-1.5)等于多少
- Math类提供了3个取整相关的方法:ceil、floor、round
- ceil()为向上取整:Math.ceil(-11.3) = -11.0
- floor()为向下取整:Math.floor(-11.3) = -12.0
- round()为四舍五入:可记为加0.5然后向下取整,Math.round(-11.3) = -11,Math.round(-12.6) = -13,Math.round(12.6) = 13
如何将字符串反转
- 将字符串对象封装到StringBuilder中,调用其reverse()方法,然后再调用toString()方法转回String