clone的对象,类要实现Cloneable ,重新开辟一个相同大小空间,返回一个引用,clone是浅拷贝
要想深拷贝,在重写的clone方法中,把引用数据类型拷贝一次,那个引用数据类型也要添加实现Cloneable
package com.often;
public class ObjectTest implements Cloneable{
private String name;
private int age;
public ObjectTest(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
protected Object clone() throws CloneNotSupportedException {
return super.clone();
}
}
package com.often;
public class Application {
public static void main(String[] args) {
ObjectTest o = new ObjectTest("张三", 18);
System.out.println(o);
//引用的复制
ObjectTest o1 = o;
System.out.println(o1);
ObjectTest o2=null;
try {
//clone
o2 = (ObjectTest) o.clone();
System.out.println(o2);
} catch (CloneNotSupportedException e) {
e.printStackTrace();
}
//浅拷贝(对象拷贝了以分,对象里面的对象没有拷贝)
System.out.println(o.getName());
System.out.println(o2.getName());
System.out.println(o.getName()==o2.getName()?"浅拷贝":"深拷贝");
}
}
public String toString() {
//类名+@+哈希码组成的16进制数
//作用,直接打印对象名,调用的就是这个方法
//可以重写
return getClass().getName() + "@" + Integer.toHexString(hashCode());
@Override
public String toString() {
return "ObjectTest{" +
"name=‘" + name + ‘\‘‘ +
", age=" + age +
‘}‘;
}
public final native Class<?> getClass();//final 不可重写
//结果是class +包名.类名
public boolean equals(Object obj) {
return (this == obj);
}
//判断是否指向一个对象,同一块地址
//子类可以重新equals方法来进行某些判断,Sting就有重写,来判断字符串是否完全一样
java八点基本数据类型,但是他们没有属性和方法,java是面向对象的,设计了数据类型的保证类,来方法使用这些数据类型比如转字符串等
package com.often;
public class PackagingClass {
public static void main(String[] args) {
//装箱
Integer integer = new Integer(100);
//自动装箱
Integer integer2=100;
System.out.println(integer);
//自动拆箱
int a=integer;
System.out.println(a);
Integer integer1 = new Integer(a);
//指向对象为堆中不同地址:false
System.out.println(integer==integer1);
//重写equals方法,会判断值是否相等
System.out.println(integer.equals(integer1));
}
}
与字符串之间相互转换
package com.often;
public class PackagingDemo02 {
public static void main(String[] args) {
//字符串转整数
String[] s = {"123", "123aa", "-123", "+0234"};
for (String s1 : s) {
try {
int i = Integer.parseInt(s1);
System.out.println(s1 + "可以转换整数" + i);
} catch (NumberFormatException e) {
System.out.println(s1 + "不可以转");
}
}
System.out.println("------------------");
//整数转字符串
//调用integer的toString
int m = 200;
String string = Integer.toString(m);
System.out.println(string + 100);
//或者加""
String s2 =""+m;
}
}
Date d=new Date() d.getTime()当前时间到1970年一月一日的毫秒数
当前的时间
SimpleDateFormat 时间格式化,构造函数放想要的时间的格式
Calendar日历类,抽象类,用getInstance实例化,可以修改或获得其中年,月等get() set( add( ) getTime为日期格式
package com.often.DateClass;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.Scanner;
public class DateDemo02 {
public static void main(String[] args) throws ParseException {
Calendar c = input();
int i = c.get(Calendar.DAY_OF_MONTH);
int[] message = getMessage(c);
printCalendar(c, message, i);
}
private static void printCalendar(Calendar c, int[] message, int i) {
System.out.println("日\t一\t二\t三\t四\t五\t六");
int num = 0;
for (int i1 = 0; i1 < message[0] - 1; i1++) {
num++;
System.out.print("\t");
}
for (int i1 = 1; i1 <= message[1]; i1++) {
if (i1 == i) {
System.out.print(i1 + "*" + "\t");
} else {
System.out.print(i1 + "\t");
}
num++;
if (num % 7 == 0 && num != 0) {
System.out.println();
}
}
}
private static int[] getMessage(Calendar c) {
c.set(Calendar.DAY_OF_MONTH, 1);
int DAY_OF_WEEK = c.get(Calendar.DAY_OF_WEEK);
//西方周日为星期一,月份西方3月为我们四月
int actualMaximum = c.getActualMaximum(Calendar.DATE);
int[] message = {DAY_OF_WEEK, actualMaximum};
return message;
}
private static Calendar input() throws ParseException {
System.out.println("请输入时间如2021/4/17");
Scanner scanner = new Scanner(System.in);
String s = scanner.nextLine();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date date = sdf.parse(s);
Calendar c = Calendar.getInstance();
c.setTime(date);
scanner.close();
return c;
}
}
原文:https://www.cnblogs.com/cwenk/p/14696331.html