Java闭坑指南(一)

空指针是指对象的数据结构和数据,java指针中内存中的值是为空,因为java每次存储的对象都会放在java缓存里面

Get 和 Post的放置参数的默认类型

  • Get 默认RequsetParam
  • Post 默认 RequsetBody

Java中的Optional使用

Optinoal.ofNullable(xxx).orElse(返回任意值不是return而是一个对象赋值)

String name = "";
return Optional.ofNullable(name).orElse("傻逼");

Optional.ofNullable(xxx).orElseThrow(()->new RuntimeException(xxx))

public String run1() {
    String name = "";
    return Optional.ofNullable(name).orElseThrow(()->new RuntimeException("dfjisaf"));
}

存在值就打印

Optinoal.ifParent(u->sout(打印))

判断对象中某一个值使用map

optionalUser. map(u -> u。getName( )) orElse( other: " anymos " ’ );

接口的静态方法和默认方法的区别

  • 静态方法

在接口层面可以定义实现方法,不需要被子接口实现,且不能是现实,符合的

  • 默认方法

在多个接口定义了相同名称的默认方法,必须实现默认方法的接口

接口静态方法类似于默认方法,但是我们不能在实现类中覆盖它们,可以避免默认方法在实现类中被覆盖实现。

序列化的问题

序列类,引用了非序列化的类型是不能影响非序列化进行序列化的

首先来说,你要明白序列化的意思喊意义是什么。序列化就是将 Java Object 转储成其他的格式,能够在网络上传播。你看到的文档就是序列化之后的数据,肯定是乱码不可读的。

序列化是对象的快照,你更改了属性,肯定会有影响。

同一个对象多次序列化且序列化对象属性发生改变怎么办

原理: 在序列化过程中,序列化会有一个算法,当每一次一个对象序列化完成并转换为字节序列同时会生成一个序列化编号,当对象重复的时候会重新调用生成后的序列化对象,就会产生多个相同的对象属性值不同,但是响应的结果都是第一次序列化的内容

类似于快照的性质

避免方式,重新创建对象,新建类

Java中泛型的操作(Java中是伪泛型)

泛型的初衷就是保证类型转换的操作

使用泛型会触发类型擦除

在Java编译期间会将泛型进行擦除,在编译成字节码文件的时候泛型就会消失。 所以在两个List上绑上不同的泛型进行比较的时候都是true

也可以说在添加的数据的时候不去添加泛型指定的类型

List<Integer> list
list.add(1)
list.getClass().getMethod("add",Object.class).invoke(list,"图片信息")
list.getClass().getMethod("add",Object.class).invoke(list,2321.2321)

// 就可以遍历展示

为什么泛型不能定义int类型

在泛型的类型擦除中 基本数据类型无法被Object类型接收 所以无法定义基本数据类型

泛型不能传递基本数据类型 只能传递引用数据类型

原因是类型擦除,主要是int[]基本类型泛型中无法被Object类型接受最终转换为int[]数组地址 相反 Integer[] 可以被接受

集合不建议使用原始类型 List结束建议添加泛型

原因是在展示的过程中是无法看到原始类型有什么问题,当判断的时候就会出现问题,解决方式就是添加Object类型泛型,或者添加类型中包含指定类型

反射不建议使用的原因是Jvm优化和性能开销大

+ 号拼接的问题 空间浪费(+拼接一直创建不可变的类) 时间浪费(影响yonggc和fullgc)

浅拷贝是指默认调用objec的.clone()方法 深拷贝是指在实现object的clone()方法的时候 定义特殊的赋值方式 有序列化拷贝,属性拷贝,重复拷贝(对象中在拷贝)等方式实现深拷贝
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值