- 浏览: 256980 次
- 性别:
- 来自: 福州
文章分类
最新评论
-
rdsgf:
也就是导出。。。如何把生成的图片导出到本地,有没有接口?
报表 charts4j -
rdsgf:
你好,请问生成的图片如何保存到本地?
报表 charts4j -
刘焕杰:
楼主,为啥放进去后,我下载的中文文件名还是乱码呢?
[jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题 -
814687491:
Ext Panel 动态 加载 html -
yxyysu:
下载之后使用了,没有解决上传时中文名字乱码问题,请博主指导。
[jspSmartUpload]------------>jspSmartUpload上传中文文件名 乱码问题
1. 最简单的clone例子
2. 影子克隆
3. 深度克隆
/** * */ package com.study.effective.clone; /** * 简单的Clone例子 * 1. 必须实现Cloneable接口,这个类才可以调用clone方法,不然会报错 * @className :CloneClass * @package : com.study.effective * @Description :最简单的Clone例子. * @author:lgf * @date :2012 二月 1 10:29:09 * @version : 1.0 */ public class CloneClass implements Cloneable{ // 定义测试属性 private int intValue; private String strValue; public int getIntValue() { return this.intValue; } public void setIntValue(int intValue) { this.intValue = intValue; } public String getStrValue() { return this.strValue; } public void setStrValue(String strValue) { this.strValue = strValue; } /** * 克隆测试 * 最简单的例子 * 就是直接调用自身的super.clone(); */ public Object clone(){ CloneClass o = null; try { o = (CloneClass)super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return o; } public static void main(String[] args) { CloneClass c1 = new CloneClass(); c1.setIntValue(1); c1.setStrValue("c1 的值"); CloneClass c2 = (CloneClass)c1.clone(); c2.setIntValue(2); c2.setStrValue("c2 的值"); System.out.println(c1.getIntValue()); // 1 System.out.println(c1.getStrValue()); // c1 的值 System.out.println(c2.getIntValue()); // 2 System.out.println(c2.getStrValue()); // c2 的值 // c1 和 c2 有不同的地址 System.out.println(c1);//com.study.effective.clone.CloneClass@de6ced System.out.println(c2);//com.study.effective.clone.CloneClass@c17164 } }
2. 影子克隆
package com.study.effective.clone; /** * @className :UnCloneClass1 * @package : com.study.effective.clone * @Description :未重载clone方法 * @author:lgf * @date :2012 二月 1 11:08:26 * @version : 1.0 */ class UnCloneClass1{ public String value; } /** * * @className :ShadowClone * @package : com.study.effective * @Description :影子克隆的例子 * @author:lgf * @date :2012 二月 1 10:40:58 * @version : 1.0 */ public class ShadowClone implements Cloneable{ //基本属性 public int intValue; //对象属性 public UnCloneClass1 unClass; public ShadowClone(UnCloneClass1 unClass,int intValue){ this.unClass = unClass; this.intValue = intValue; } public Object clone(){ ShadowClone o = null; try { o = (ShadowClone)super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return o; } public static void main(String[] args) { // 影子克隆 UnCloneClass1 cloClass = new UnCloneClass1(); cloClass.value = "影子克隆例子"; ShadowClone shadowclone = new ShadowClone(cloClass,10); ShadowClone shadow = (ShadowClone)shadowclone.clone(); // 打印值UnCloneClass1 类的 value值 System.out.println(shadowclone.unClass.value); //影子克隆例子 System.out.println(shadow.unClass.value); //影子克隆例子 shadowclone.unClass.value = "克隆类的新值"; System.out.println(shadowclone.unClass.value); //克隆类的新值 System.out.println(shadow.unClass.value); //克隆类的新值 // 查看地址 System.out.println(shadowclone); //effective.clone.ShadowClone@c17164 System.out.println(shadow); //effective.clone.ShadowClone@1fb8ee3 //effective.clone.UnCloneClass1@61de33 两个类的unClass 属性指向同一个地址 System.out.println(shadowclone.unClass); System.out.println(shadow.unClass); } }
3. 深度克隆
package com.study.effective.clone; /** * @className :UnCloneClass2 * @package : com.study.effective.clone * @Description :实现重载clone 方法的对象 * @author:lgf * @date :2012 二月 1 11:10:31 * @version : 1.0 */ class UnCloneClass2 implements Cloneable{ public String value; /** * 类本身重载clone方法 */ public Object clone(){ UnCloneClass2 o = null; try { o = (UnCloneClass2)super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } return o; } } /** * * @className :DepthClone * @package : com.study.effective * @Description :深度克隆 * @author:lgf * @date :2012 二月 1 10:59:17 * @version : 1.0 */ public class DepthClone implements Cloneable{ public int intValue; public UnCloneClass2 unClass; public DepthClone(UnCloneClass2 unClass,int intValue){ this.unClass = unClass; this.intValue = intValue; } public Object clone(){ DepthClone o = null; try { o = (DepthClone)super.clone(); } catch (CloneNotSupportedException e) { e.printStackTrace(); } o.unClass = (UnCloneClass2)unClass.clone(); return o; } public static void main(String[] args) { // 影子克隆 UnCloneClass2 cloClass = new UnCloneClass2(); cloClass.value = "影子克隆例子"; DepthClone depthClone = new DepthClone(cloClass,10); DepthClone depth = (DepthClone)depthClone.clone(); // 打印值UnCloneClass1 类的 value值 System.out.println(depthClone.unClass.value); //影子克隆例子 System.out.println(depth.unClass.value); //影子克隆例子 depthClone.unClass.value = "克隆类的新值"; System.out.println(depthClone.unClass.value); //克隆类的新值 System.out.println(depth.unClass.value); //影子克隆例子 // 查看地址 System.out.println(depthClone); //effective.clone.ShadowClone@c17164 System.out.println(depth); //effective.clone.ShadowClone@1fb8ee3 // 指向不同的地址 System.out.println(depthClone.unClass); //effective.clone.UnCloneClass2@61de33 System.out.println(depth.unClass); //effective.clone.UnCloneClass2@14318bb } }
发表评论
-
List 遍历 ConcurrentModificationException
2013-07-05 17:39 1109有如下代码片段: public static void m ... -
foreach的原理
2013-07-05 14:49 864... -
java.util.Properties 简单用法
2013-04-25 10:05 16311. 认识properties文件 1、properties文 ... -
while 和 for 不完全相同
2013-03-07 11:05 8071. for和while的语法如下: for(initi ... -
(a + (a++)) 与 ((a++) + a)
2013-03-04 09:46 897直接上代码: public static void mai ... -
java 发送邮件错误收集
2012-10-31 19:00 8381. 报错: Exception in thread &qu ... -
Add Deployment java.lang.NullPointerException
2012-08-22 17:28 33761. 在用Myeclipse部署项目时候突然报错: 无法 ... -
Undefined exploded archive location
2012-08-22 17:14 9841. 用Myeclipse部署web系统wlms时候报如下错误 ... -
java @override 报错处理
2012-07-25 16:17 854有时候在自己电脑上编译通过的java代码,在别人那里却编译不通 ... -
java 环境变量配置
2012-07-25 10:01 964windows xp下配置JDK环境变量: 1.安 ... -
java 源码解析--LinkedList
2012-03-13 14:20 1187LinkedList 1.看源码前应该知道的知识点 ... -
java 源码解析--ArrayList
2012-03-13 09:51 1337ArrayList 1.看源码前应该知道的知识点 / ... -
java 三大特性--封装、继承和多态理解
2012-03-12 15:21 3796封装 /** * 所谓封装,就是将对象具有的成员变量和 ... -
java 基础之(equals hashcode)
2012-01-19 11:02 11281.equals 的等价关系 2. ... -
java 基础之(接口)
2011-11-28 15:20 935“interface”(接口)关 ... -
java 基础之(抽象类)
2011-11-28 15:15 961抽象方法 :它属于一种不完整的方法, 只含有一个声明,没有方法 ... -
位移运算符
2011-11-04 11:46 967package com.lgf.operation; / ... -
java 关键字 final
2011-10-25 09:52 8991. final 数据 package com.lgf.k ... -
java 基础语法
2011-10-22 09:26 1108Java 基础语法 1.标识符 ... -
报表 charts4j
2011-10-18 09:32 32081. 简介 charts4j is a Java chart ...
相关推荐
在Java中,当使用`new`关键字创建一个对象时,实际上创建的是一个指向该对象的引用。例如,以下代码创建了一个`PassObj`对象,并通过`objA`引用该对象: ```java PassObj objA = new PassObj(); ``` 这里的`objA`...
Java中的`Object`类是所有类的根,这意味着无论你定义的任何自定义类,如果没有显式地声明继承自其他类,那么它们都会隐式地继承`Object`类。`Object`类提供了基本的方法,这些方法是所有Java对象共有的。下面我们将...
在Java编程语言中,`final`关键字扮演着一个至关重要的角色,它被用来定义不可变性和唯一性。这个关键字可以应用于变量、方法和类,分别赋予它们不同的特性。以下是对`final`关键字在不同场景下使用的详细介绍: 1....
1. **native关键字**:`native`表示这个方法是一个本地方法,它的实现是在Java虚拟机(JVM)之外,通常用C或C++编写,然后通过JNI(Java Native Interface)进行调用。由于`clone()`方法是本地方法,它的执行速度...
### Java 高级特性详解 #### 一、`hashCode` ...正确地重写 `equals` 和 `hashCode` 方法、使用 `Comparator` 进行排序、利用反射机制和序列化技术,以及实现 `clone` 方法都是开发高质量 Java 应用程序的重要技能。
Java基础知识 ...本文档对Java的基础知识进行了详细的介绍,包括基本类型、static关键字、final关键字、赋值、指派、别名、控制程序流程等知识点。这些知识点是Java开发的基础,也是Java开发者必须掌握的知识。
7. Java的clone()方法在实现时,通常会有一行代码是调用super.clone()。 8. 面向对象编程的三大特性:封装、继承、多态,是Java语言的核心知识点。 9. Java中的多态实现机制是通过方法重载(Overloading)和方法...
- Java创建对象的方式:可以通过new关键字直接创建,也可以通过反射机制、clone方法或反序列化等方式创建。 - 序列化和反序列化:序列化是将对象的状态信息转换为可以存储或传输的形式的过程,反序列化则是把序列...
本资源摘要信息涵盖 Java 面试的多个方面,包括 Java 的基础知识、对象的创建和使用、关键字解释、反射机制、基本数据类型、字符串操作、Servlet 生命周期等。 一、Java 面试 100 题 Java 面试 100 题涵盖了 Java ...
- 使用 new 语句创建对象是 Java 中最常见的创建对象的方法,它可以直接在 Java 代码中使用 new 关键字来创建对象,如 `Person p1 = new Person("王豪博", 25);` - 使用反射机制创建对象是指使用 Java 的反射机制来...
33. Java 中的 volatile 关键字有什么作用?答:volatile 关键字用于修饰变量,确保多个线程之间共享变量的可见性和同步性,防止出现数据不一致的问题。34. Java 中的 synchronized 关键字有何用途?答:...
Java中的标识符有多种规则,例如不能以数字开头、不能使用Java关键字等。例如,_mem、M12、$12都是合法的标识符,而12a、1_file是不合法的。 六、JDK工具 JDK工具包括 javac.exe、java.exe 等,其中 javac.exe 是 ...
文档中提到了在`clone()`方法中的异常处理,这表明文档可能涉及Java中的异常处理机制,包括`try`、`catch`、`finally`和`throw`关键字的使用。 11. Java类的继承和接口 文档提到了`implements`关键字,这涉及到Java...
* 访问修饰符是指 JAVA 语言中用于控制访问权限的关键字,包括 public、private、protected 和 default 等。 * 访问修饰符的作用范围从大到小依次是:public、protected、default、私有。 * 访问修饰符的使用可以...
16. Java对象创建方式:构造器、反射、clone、反序列化。 17. 不可变对象定义:一旦创建,其状态不可更改的对象。 18. 值传递和引用传递的区别:Java只存在值传递,传递的是对象引用的副本。 字符串和类特性: 19....
Java中,synchronized关键字用于实现线程同步,而volatile关键字则保证了变量的可见性。多线程可以使用继承Thread类或者实现Runnable接口来实现。sleep()和wait()都是使当前线程暂停执行的方法,但wait()需要在同步...
java基础关键字.docx java命名和数据类型.docx java序列化.docx Math类.docx Object(对象).docx operator(运算符).docx Properties.docx return语句的例子.docx Scanner和if语法.docx static.docx 毕向东视频的...