20200928_陈宇_
日志
学习总结:
字符序列:
char类型的变量表示单个字符,用单引号引起来
多个字符按照一定的顺序组成的列表就叫做字符序列
String:
StringBuffer:字符串缓冲区,是线程安全的
StringBuilder:字符串构造器,非线程安全的
CharBuffer 字符缓冲区
字符串时引用数据类型,用双引号引起来,默认值为null,判断字符串相等通equals()方法
字符串声明:
String str = "abcd" 字面量 比较常用
String str1 = new String("abcd") 字符串对象
final:
在 Java 中,关键字 final 表示最终的。可以用来修饰类、方法、变量
1.被 final 修饰的类,不能被继承
2.被 final 修饰的方法,不能被重写
3. 被 final 修饰的变量,不能变。如果是基本数据类型不能重新赋值,如果是引用数据类型不 能改变引用
String类:
public final class String 是用 final 修饰的类,在 Java 中用 final 修饰的类不能被继承,也就 是说 String 没有子类。
字符串其实就是一个字符数组
字符串一旦声明就不可变,所以字符串拥有不可变性
Object:
Object 类是所以有类的父类,在 java 中,所有的类都直接或间接的继承了 java.lang.Object 类。
在定义一个类时,如果没有 extends 其他类,那么这个类就是直接继承自 Object 类
native 是用户和本地(c/c++)代码进行交互的API,调用c/c++程序的
很多情况下, toString() / equals() / hashCode() 方法是不满足咱们需求的,因为Object中都 是对象地址的引用。所以我们大多数情况下需要重写这三个方法。
equals()和hashCode():
因为 equals 和 hashCode 之间是有关系的,所以一般要同时重写这两个方法
关系:
如果 hashCode 值相等, equals 不一定相等
如果 hashCode 值不相等, equals 一定不相等
如果 equals 为 true , hashCode 一定相等
如果 equals 为 false , hashCode 不一定相等
重写equals():
equals() 是判断两个对象是否相等的方法,它有一下规则:
自反性 :对于任何非空的对象 x , x.equals(x) 应该返回 true
对称性:对于任何非空引用值 x 和 y , x.equals(y) 应该返回 true 当且仅当 y.equals(x) 返 回 true
传递性 :对于任何非空引用值 x , y 和 z ,如果 x.equals(y) 返回 true , y.equals(z) 返 回 true ,然后 x.equals(z) 应该返回 true
一致性 :对于任何非空引用值 x 和 y ,多次调用 x.equals(y) 始终返回 true 或始终返回 false ,当 equals 比较的对象未被修改时
对于任何非空的参考值 x , x.equals(null) 应该返回 false
重写hashCode():
重写 hashCode 要注意,同一个对象多次调用 hashCode() 返回值一定是一致的
instanceof
instanceof 表示一个变量所指向的对象是否是指定类型
instanceof 在使用时,参与运算的对象和 类,必须是继承关系,否则会产生错误
如果常量池中有,那么直接引用
如果常量池中没有,那么会重新创建一个
包装类:
java 为了方便基本数据类型的操作,为每一个基本数据类型都写了一个包装类。这个包装类是引用数 据类型
基本数据类型转String:
1.使用 String.valueOf() 方法进行转换
2. "" + 基本数据类型 属于字符串的拼接,所以结果为String
String转基本数据类型:
基本数据类型的包装类中有 parse...(String str) 方法或者 valueOf() 用来转换
需要注意是,被转换的字符串必须是可以转换成基本数据类型的字符串,否则会产生 java.lang.NumberFormatException 异常
装箱:
装箱是指将基本数据类型转换成其包装类型
装箱操作(基本数据类型转到包装类)调用的是 包装类.valueOf()
对于Float和Double类型会进行 NaN(not a number) 判断,如果是 NaN 就会准换成一个相对应的 NaN 引用
如果包装类的值是整数类型范围在 -128 ~ 127 或者布尔类型的 true 或者 false 以及字符文字在 \u0000 和 \u007f 范围中的话, java 会直接从缓存中取值。如果超出了这个范围会 new
拆箱:
拆箱是指将包装类型转换成其基本数据类型
拆箱操作(包装类转换到基本数据类型)调用的是 包装类对象.xxxxValue()
在 java 中基本数据类型与其包装类是自动进行类型转换的,称为自动拆箱/自动装箱
学习心得:
今天学习的各种方法比较多,每个都有各自的用法,一时间记忆不过来,结合着做练习的记忆感觉记忆会快一些,今天那个instanceof好像有点难理解,有种懂了又没懂的感觉。
评论留言