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好像有点难理解,有种懂了又没懂的感觉。

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1