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、序列化–未調用構造函數

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章