java克隆测试

1.person类

 1 //clone方法必须实现Cloneable接口
 2 public class Person implements Cloneable {
 3     private String name;
 4     private int age;
 5     public Calendar calendar;
 6
 7     public Person() {
 8     }
 9
10     // 构造方法
11     public Person(String name, int age, Calendar calendar) {
12         this.name = name;
13         this.age = age;
14         this.calendar = calendar;
15     }
16
17     @Override
18     public Person clone() throws CloneNotSupportedException {
19         Person cloned = (Person) super.clone();// 浅层克隆
20         cloned.calendar = (Calendar) calendar.clone();// 深度克隆,克隆属性
21         return cloned;
22     }
23
24     @Override
25     public String toString() {// 重写toString方法
26         return "Person  [ name = " + name + " |  age = " + age + " | Calendar = " + calendar.getTime() + " ]";
27     }
28
29     public Calendar getCalendar() {
30         return calendar;
31     }
32
33     public void setCalendar(Calendar calendar) {
34         this.calendar = calendar;
35     }
36
37     public String getName() {
38         return name;
39     }
40
41     public void setName(String name) {
42         this.name = name;
43     }
44
45     public int getAge() {
46         return age;
47     }
48
49     public void setAge(int age) {
50         this.age = age;
51     }
52
53 }

2.克隆测试

 1 //克隆测试
 2 public class CloneTest00 {
 3     public static void main(String[] args) throws CloneNotSupportedException {
 4         Calendar now = Calendar.getInstance();
 5         Person p1 = new Person("Tim", 18, now);
 6         Person p2 = p1.clone();
 7         p2.setName("danny");
 8         p2.setAge(11);
 9         p2.calendar.set(2000, 11, 11);
10         System.out.println("p2 = " + p2.toString());
11         System.out.println("p1 = " + p1.toString());
12     }
13 }// 改变p2的值,不会改变p1的值

3.非克隆测试

 1 //非克隆测试
 2 public class NotCloneTest00 {
 3     public static void main(String[] args) {
 4         Calendar now = Calendar.getInstance();
 5         Person p1 = new Person("Tim", 18, now);
 6         Person p2 = p1;
 7         p2.setName("danny");
 8         p2.setAge(11);
 9         p2.calendar.set(2000, 11, 11);
10         System.out.println("p2 = " + p2.toString());
11         System.out.println("p1 = " + p1.toString());
12     }
13 }// 改变p2的值,p1的值跟随改变
时间: 2024-10-11 04:48:57

java克隆测试的相关文章

Android网络传输中必用的两个加密算法:MD5 和 RSA (附java完成测试代码)

MD5和RSA是网络传输中最常用的两个算法,了解这两个算法原理后就能大致知道加密是怎么一回事了.但这两种算法使用环境有差异,刚好互补. 一.MD5算法 首先MD5是不可逆的,只能加密而不能解密.比如明文是yanzi1225627,得到MD5加密后的字符串是:14F2AE15259E2C276A095E7394DA0CA9  但不能由后面一大串倒推出yanzi1225627.因此可以用来存储用户输入的密码在服务器上.现在下载文件校验文件是否中途被篡改也是用的它,原理参见:http://blog.c

零成本实现接口自动化测试 – Java+TestNG 测试Restful service

本文是转载Wade Xu的文章http://www.cnblogs.com/wade-xu/p/4229805.html 接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, 数据分离,Java+Maven+TestNG 本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性

接口自动化测试框架搭建 – Java+TestNG 测试Restful service

接口自动化测试 – Java+TestNG 测试 Restful Web Service 关键词:基于Rest的Web服务,接口自动化测试,数据驱动测试,测试Restful Web Service, 数据分离,Java+Maven+TestNG 本文主要介绍如何用Java针对Restful web service 做接口自动化测试(数据驱动),相比UI自动化,接口自动化稳定性可靠性高,实施难易程度低,做自动化性价比高.所用到的工具或类库有 TestNG, Apache POI, Jayway r

Java线程测试高并发

package com.expai.utils; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.HttpURLConnection; import java.net.URL; import java.util.concurrent.CyclicBarrier; import java.util.concurrent.Execu

Java反序列化测试

前言:有没有想过,如何将对象进行“加密”后写入磁盘?序列化帮你实现! 1.概念 序列化 (Serialization)将对象的状态信息转换为可以存储或传输的形式的过程.在序列化期间,对象将其当前状态写入到临时或持久性存储区.以后,可以通过从存储区中读取或反序列化对象的状态,重新创建该对象. 2.反序列化Java实验 --测试的实体类-- 1 package exercise; 2 3 import java.io.Serializable; 4 5 public class Person imp

Android AIDL自动生成Java文件测试

/******************************************************************************** * Android AIDL自动生成Java文件测试 * 说明: * 知道有aidl这东西已经挺久了,但是一直没有花时间来系统了解一下其工作机制,现在 * 花点时间一点一点验证一下其功能. * * 2016-5-8 深圳 南山平山村 曾剑锋 ***********************************************

Java Junit测试框架

Java    Junit测试框架 1.相关概念 ? JUnit:是一个开发源代码的Java测试框架,用于编写和运行可重复的测试.它是用于单元测试框架体系xUnit的一个实例(用于java语言).主要用于白盒测试,回归测试. ? 白盒测试:把测试对象看作一个打开的盒子,程序内部的逻辑结构和其他信息对测试人 员是公开的. ? 回归测试:软件或环境的修复或更正后的再测试,自动测试工具对这类测试尤其有用. ? 单元测试:最小粒度的测试,以测试某个功能或代码块.一般由程序员来做,因为它需要知道内部程序设

淘宝分布式 key/value 存储引擎Tair安装部署过程及Java客户端测试一例

目录 1. 简介 2. 安装步骤及问题小记 3. 部署配置 4. Java客户端测试 5. 参考资料 声明 1. 下面的安装部署基于Linux系统环境:centos 6(64位),其它Linux版本可能有所差异. 2. 网上有人说tair安装失败可能是因为gcc版本问题,高版本的gcc可能不支持某些特性导致安装失败,经过实验证明,该说法是错误的,tair安装失败有各种可能的原因但绝对与gcc版本无关,比如我的gcc开始版本为4.4.7,后来tair安装失败,我重新编译低版本的gcc(gcc4.1

解决java代码测试http协议505错误

代码功能:通过java代码获取网页源代码: 所用工具:Myclipse8.5+tomcat6.0+浏览器 系统环境:windows xp旗舰版火狐浏览器版本: IE浏览器版本: 测试http协议有错误java代码如下. import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.