博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java杂记
阅读量:4124 次
发布时间:2019-05-25

本文共 1612 字,大约阅读时间需要 5 分钟。

java杂记

1.toArray

public static void main(String[] args) {            List
list1 = new ArrayList<>(); list1.add("1"); Object[] s1 = list1.toArray(); System.out.println(s1.length); for(Object m : s1){ System.out.println(m); } System.out.println("test2"); List
list = new ArrayList<>(); String[] t ={"2","3"}; list.add("1"); String[] s = list.toArray(t); System.out.println(s.length); for(String m : s){ System.out.println(m); } }

结果

1
1
test2
2
1
null
toArray重新建一个新数组长度为List 。
toArray(T[] a)重新建一个新数组长度为a的长度。数据为空的用null填充(原来的a数组数据会被覆盖)

2 java类中serialVersionUID的作用

2.1 uuid作用

serialVersionUID适用于java序列化机制。简单来说,JAVA序列化的机制是通过判断类的serialVersionUID来验证的版本一致的。在进行反序列化时,JVM会把传来的字节流中的serialVersionUID于本地相应实体类的serialVersionUID进行比较。如果相同说明是一致的,可以进行反序列化,否则会出现反序列化版本一致的异常,即是InvalidCastException。

2.2 父类的序列化与 Transient 关键字

Transient 关键字的作用是控制变量的序列化,在变量声明前加上该关键字,可以阻止该变量被序列化到文件中,在被反序列化后,transient 变量的值被设为初始值,如 int 型的是 0,对象型的是 null。

若子类实现序列化 ,父类未实现 则 父类的字段不会进行序列化。

3.for循环遍历、增强for循环遍历、Iterator迭代器遍历

3.1 for

需要知道集合或数组的大小,而且需要是有序的,不然无法遍历;

需要先知道集合的类型,甚至是集合内元素的类型,即需要访问内部的成员,不能实现多态;
遍历时不能随时修改和删除集合的元素

3.2 foreach

不需要知道集合或数组的大小

3.3iterator

不需要知道集合或数组的大小

不需要先知道集合的类型
能随时修改和删除集合的元素

4.用法差别、使用建议

1.链式结构可使用Iterator 、顺序结构可使用for

2.简单(基本)遍历foreach即可、如需使用角标可使用for、边遍历边更新要使用Iterator。

5.泛型的使用

public 
T doSomething(T t) {....}

泛型的好处:

1.不需要做强制类型转换
2.编译时更安全。如果使用Object类的话,你没法保证返回的类型一定是Foo,也许是其它类型。这时你就会在运行时得到一个类型转换异常(ClassCastException)

转载地址:http://owepi.baihongyu.com/

你可能感兴趣的文章
python 变量作用域问题(经典坑)
查看>>
pytorch
查看>>
pytorch(三)
查看>>
pytorch(5)
查看>>
ubuntu相关
查看>>
C++ 调用json
查看>>
nano中设置脚本开机自启动
查看>>
动态库调动态库
查看>>
Kubernetes集群搭建之CNI-Flanneld部署篇
查看>>
k8s web终端连接工具
查看>>
手绘VS码绘(一):静态图绘制(码绘使用P5.js)
查看>>
手绘VS码绘(二):动态图绘制(码绘使用Processing)
查看>>
基于P5.js的“绘画系统”
查看>>
《达芬奇的人生密码》观后感
查看>>
论文翻译:《一个包容性设计的具体例子:聋人导向可访问性》
查看>>
基于“分形”编写的交互应用
查看>>
《融入动画技术的交互应用》主题博文推荐
查看>>
链睿和家乐福合作推出下一代零售业隐私保护技术
查看>>
Unifrax宣布新建SiFAB™生产线
查看>>
艾默生纪念谷轮™在空调和制冷领域的百年创新成就
查看>>