0902

1、Sql语句
2、java创建对象的五种方法。

1、Sql语句

create database test;
drop database test;

create table student(
id bigint not null auto_increment primary key,
name varchar(20) not null,
sex char(2) not null
);

drop table student;

alter table student change sex sexual char(1);
alter table student drop sex;
alter table stduent add sex char(1);

alter table student add index index_name (name,sex);
alter table student drop index index_name;

2、java创建对象的五种方法。
1、new
2、反射 newInstance(Constructor、Class)
3、clone–未调用构造函数
Object.clone()
在java中 clone为什么要用super.clone()方法

1.Object中的clone执行的时候使用了RTTI(run-time type identification)的机制,动态得找到目前正在调用clone方法的那个reference,
根据它的大小申请内存空间,然后进行bitwise的复制,将该对象的内存空间完全复制到新的空间中去,从而达到shallowcopy的目的。
所以你调用super.clone() 得到的是当前调用类的副本,而不是父类的副本。根本没有必用调用this.clone();
2、super.clone(),最终就会来到Object.clone() 。保证需要深拷贝的地方能深拷贝

Cloneable的用途
Cloneable是标记型的接口,它们内部都没有方法和属性,实现 Cloneable来表示该对象能被克隆,能使用Object.clone()方法。
如果没有实现 Cloneable的类对象调用clone()就会抛出CloneNotSupportedException。
该方法是一个native方法,表示该方法有实现体,只不过是用其他语言实现的。
有两个好处:1、调用底层方法;2、效率比较高
浅拷贝:
public Object clone()throws CloneNotSupportedException{
return super.clone();
}
深拷贝:
public Object clone()throws CloneNotSupportedException{
CloneSimp cloneSimp=(CloneSimp) super.clone();
cloneSimp.persion=(Persion) persion.clone();
return cloneSimp;
}
4、序列化–未调用构造函数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值