薯拾

java-grocery

2019-10-20

  • 默认接口内不能写实现, 1.8 开始接口内可以写由default修饰的方式
  • 对象类型与基本数据类型的区别
    1. 基本类型是Java语言的一本分,主要是基于程序性能的考量,八种基本类型都有对应的包装类,这些包装类实例化就是对象(Java中一切皆是对象)。
    2. 基本类型定义在栈中,int a=5; 对象类型定义在堆中,Interger b = new Integer(10) 这里b是对象的引用存放在栈中,而实际的数值存放在堆里。堆的读写速度远不及栈,栈随着栈帧的移动销毁快,而堆中的对象需要JVM去销毁。
    3. 参数传递,如果是基本类型就对值进行了拷贝,如果是传递对象,那么就是传递了引用。
    4. 对象之间赋值只是传递引用,基本类型之间赋值是创建新的拷贝。
  • 序列化&反序列化
    序列化:是将对象转换成以字节序列的形式来表示,这些字节序列包含了对象的数据和信息,一个序列化后的对象可以被写到数据库或文件中,也可用于网络传输,一般当我们使用缓存cache(内存空间不够有可能会本地存储到硬盘)或远程调用rpc(网络传输)的时候,经常需要让我们的实体类实现Serializable接口,目的就是为了让其可序列化。
    序列化后的字节序列都是可以恢复成Java对象的,这个过程就是反序列化。
  • transient 关键字
    修饰的变量不被序列化,什么时候适合使用:
    类中的字段值可以根据其它字段推导出来:如一个长方形类有三个属性:长度、宽度、面积面积这个属性就没必要被序列化了;具体业务要求;
  • Array.copyOf()可以看作是受限的System.arraycopy(),它主要是用来将原数组全部拷贝到一个新长度的数组,适用于数组扩容;arraycopy 可以指定的参数更多
Tags: java
使用支付宝打赏
使用微信打赏

若你觉得我的文章对你有帮助,欢迎点击上方按钮对我打赏

扫描二维码,分享此文章