javase基础知识总结

javase基础知识总结

泛型:

泛型在类与接口中需要加上<>,在方法中不用

泛型常用通配符:

?表示不确定的java类型

T(type)表示一个具体的java类型

K V(key value)分别代表键值对中的key value

E(element)代表Element

equals

equals在没有重写的状态下默认为object中的equals方法,判断值是否相同,重写equals方法以后,只要是地址或者值相同,都会返回true

String重写了equals方法

hashCode

hashcode的坐用是获取哈希码,也称为散列码,作用就是确定该对象在哈希表中的索引位置。

所谓哈希表就是类似于表状的储存方式,通过索引获取值的具体位置

hashcode使用的杂凑算法有可能会让对象传回多个相同的杂凑值(杂凑值在计算的时候可能相同),它与equals一起重写,作用就是缩小equals的工作量,缩小查找成本,提高效率

静态调用

在静态方法内调用一个非静态成员是非法的,因为在类加载的时候会给静态方法分配内存,static优先加载,而非静态变量属于实例化对象,只有在对象实例化之后才存在,静态方法加载好后去调用一个不存在的非静态成员,属于非法操作。

值传递与引用传递

java对象总是用值传递调用

值传递:

接收的是调用者提供的值, 调用者在调用方法的时候,传递的值是拷贝的值,当方法结束的时候,并不会影响原本的内容,原本的内容不会发生改变

引用传递:

引用传递表示方法接受的是调用者提供的变量地址,方法修改内容以后,原本的数据也会发生改变

在案例中对象的数据在调用后修改值,原本的数据不会发生改变,但是如果是一个数组,就会使用引用传递,这个时候,方法修改内容,原本的内容也发生了改变

拷贝

浅拷贝:

对基本数据类型进行值传递,对引用数据类型进行引用传递般的拷贝

深拷贝:

对基本数据类型进行值传递,对引用数据类型,创建一个新的对象,并复制其内容

成员变量与局部变量区别

1.成员变量属于类,局部变量属于方法

2.成员变量可以被访问修饰符与static修饰,局部变量不行

3.成员变量用static修饰属于类,没有用static属于实例,存在于栈,局部变量存在于堆

4.成员变量随着对象的创建而存在,局部变量随着方法的调用自动消失

5.成员变量有默认值,局部变量没有默认值

异常

最顶端的异常时Throwable,下面分为来那个两大类Exceptions(异常)与Errors(错误)

exception可以通过trycath来进行处理,errors属于程序无法处理的错误

序列化:

将数据结构或对象转化为二进制字节流的过程

反序列化:

将在序列化过程中所生成的二进制字节流的过程转换为数据机构或者对象的过程

综上:序列化的主要目的是通过网络传输对象或者说是将对象存储到文件系统、数据库、内存中

既然有了字节流,为什么还要有字符流?

虽然字节流可以传输所有的文件,但是非常耗时,字符流效率较高

字节流inputstream/outputstream

字符流reader/writer

equals使用注意点

equals在使用的时候,前面那个值不能为null,否则会报空指针异常,应该使用常量或者有值的对象

所有整型包装类都必须使用equals,而不是==,因为如果使用==的话,它会自动进行拆箱,这个时候,-128到127这个范围都会返回false,因为拆箱后相当于重新创建了一个对象。

BigDecimal的使用

所有公司在进行金钱运算的时候,都会使用BigDecimal而不是使用double,因为double会发生精度丢失。

大小比较

a.compareTo(b)

保留几位小数

m.setScale(3,BigDecimal.ROUND_HALF_DOWN)

总结

BigDecimal主要用来操作大浮点数,BigInteger主要用来操作大整数(超过long类型),BigDecimal与BigInteger的区别主要是 BigDecimal加入了小位数概念

基本数据类型与应用数据类型标准
1.POJO类属性(在方法外的实例变量或静态变量)必须使用包装数据类型

因为在同样没有数据类型的情况下,integer的默认值是null,int的默认值是0,在例如考试这种情况下,考0分与null是不一样的,null的原因是因为没有考

2.RPC方法的返回值和参数必须是包装数据类型
3.所有局部变量使用基本数据类型
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值