Java 基础(二)
来源:互联网 发布:网络用语cdz什么意思 编辑:程序博客网 时间:2024/05/15 23:46
1、 通过反射获得Class对象,默认构造函数
public static Object getClassObject(String className) { Object obj = null; //获得Class对象 Class<?> clazz = Class.forName(className); //如果不为Null, 则创建对象实例 if (clazz != null) { obj = clazz.newInstance(); } return obj;}
2、类(对象)的clone方法
clone分为浅层复制和深层复制。浅层复制: 如果是基础类型,则直接复制,如果是对象,则只复制对象的引用,堆内存中未重新开辟空间。深层复制:重新开辟内存,内存与复制的对象内容一致。
clone代码:
注: 需要implements clonable,以及override clone方法
// 此处是浅层复制public class A implements Clonable { private int temp = 0; // 基础对象 @Override public Object clone() { A a = null; try{ a = (A)super.clone(); } catch(CloneNotSupportedException e) { e.printStackTrace(); } return a; }}//深层复制public class A implements Clonable { private B b; private List<C> clist;// ...(get & set method) @override public void clone() { A a = new A(); a.setB(b.clone()); List<C> list = new ArrayList<C>(); for (C c : clist) { list.add(c.clone()); } a.setCList(list); } class B implement Clone() { public void clone(){} } class C implement Clone() { public void clone(){} }}
3、 Collections.copy用法
在对两个list进行复制的时候,采用collections.copy方法,会提示 数组越界,查看源码,发现是因为dst数组的size 小于 src的size.
List<String> src = ....List<String> dst = new ArrayList(Arrays.asList(new Object[src.size]));Collections.copy(dst, src);//注: 如果list内部的对象不是基础类型,那么就只能用for循环来实现了for (int i = 0; i < lista.size(); i++ ) { listb.add(lista.get(i).clone());}
4、创建文件和创建目录
// 循环创建文件public void createFile(File file) { do { try { file.createNewFile(); } catch (IOException e) { e.printStackTrace(); } } while (!file.exist());}// 循环创建目录public void createDirectory(File file) { do { file.mkdir(); } while (!file.exist());}
0 0
- Java基础(二)
- Java基础(二)
- java基础(二)
- java基础(二)
- JAVA基础(二)
- java基础(二)
- Java基础(二)
- JAVA基础(二)
- Java基础(二)
- JAVA基础(二)
- java基础(二)
- java基础(二)
- Java 基础(二)
- Java基础(二)
- java基础(二)
- java基础(二)
- Java基础(二)
- JAVA基础(二)
- 【SVM理论到实践1】SVM支持向量机的简介
- 5款最佳Linux桌面环境的优缺点比较
- [随意记一下]
- STL学习之queue使用
- vue学习之路之MVC,MVP,MVVM之间的区别和联系
- Java 基础(二)
- ELK
- python3.x 将byte转成字符串
- Ruby win32ole 查看系统信息(windows)
- 预加载图片
- Two Bags of Bread
- AVL树的C++实现
- js常用正则表达式
- c语言字符串与数组还有指针的总结(1)