1.UUID.randomUUID().toString()是javaJDK提供的一個自動生成主鍵的方法。UUID(Universally Unique Identifier)全局唯一標識符,是指在一臺機器上生成的數(shù)字,它保證對在同一時空中的所有機器都是唯一的,是由一個十六位的數(shù)字組成,表現(xiàn)出來的 形式。
2.new Data() //返回系統(tǒng)時間yyyy-mm-dd hh:mm:ss.xxxxxx
varchar(100),指的是100字符,無論存放的是數(shù)字、字母還是UTF8漢字(每個漢字3字節(jié)),都可以存放100個。”Java 標識符
Java 所有的組成部分都需要名字。類名、變量名以及方法名都被稱為標識符:
所有的標識符都應該以字母A-Z或者a-z,美元符$、或者下劃線_開始,首字符之后可以是字母A-Z或者a-z,美元符$、下劃線_或數(shù)字的任何字符組合
關鍵字不能用作標識符
標識符是大小寫敏感的
合法標識符舉例:age、$salary、_value、__1_value
非法標識符舉例:123abc、-salary一個源文件中只能有一個 public 類
一個源文件可以有多個非 public 類數(shù)據(jù)類型
- 數(shù)字類型 整數(shù)型
| byte | short | int | long |
|---|---|---|---|
| 8位 | 16位 | 32位 | 64位 |
byte 0-255(000000000--111111111)
- 數(shù)字類型 浮點型
-- double 雙精度 64位
-- float 單精度 32位 - 字符型char 類型是一個單一的 16 位 Unicode 字符;
最小值是 \u0000(十進制等效值為 0);
最大值是 \uffff(即為 65535);
char 數(shù)據(jù)類型可以儲存任何字符;
例子:char letter = 'A';。 - Boolean型: true, false
- Java語言支持的變量類型有:
類變量:獨立于方法之外的變量,用 static 修飾。
實例變量:獨立于方法之外的變量,不過沒有 static 修飾。
局部變量:類的方法中的變量。
public class Variable{
static int allClicks=0; // 類變量
String str="hello world"; // 實例變量
public void method(){
int i =0; // 局部變量
}
}
private 在同一類內(nèi)可見。不能修飾類。
public對所有類可見??尚揎楊悺?/p>靜態(tài)變量是指聲明為 public/private,final 和 static 類型的變量。靜態(tài)變量初始化后不可改變。
a = 10;
c = 10;
b = a++; //等價于 b=a, a=a+1;
d = ++c; //等價于 c = c+1,d = c;
- super關鍵字:我們可以通過super關鍵字來實現(xiàn)對父類成員的訪問,用來引用當前對象的父類。
- this關鍵字:指向自己的引用。
子類不繼承父類構造器,若父類構造器有參數(shù),需在子類的構造器中顯式地通過 super 關鍵字調(diào)用父類的構造器。
構造方法
當一個對象被創(chuàng)建時候,構造方法用來初始化該對象。構造方法和它所在類的名字相同,但構造方法沒有返回值。
通常會使用構造方法給一個類的實例變量賦初值,或者執(zhí)行其它必要的步驟來創(chuàng)建一個完整的對象
// 一個簡單的構造函數(shù)
class MyClass {
int x;
// 以下是構造函數(shù)
MyClass() {
x = 10;
}
}
next() 以有效字符后的空白格為結束符或分隔符
nextLine()以回車鍵結束\e.printStackTrace() ;
printStackTrace()方法的意思是:在命令行打印異常信息在程序中出錯的位置及原因。(這是白話解釋,比較容易理解)無論是否發(fā)生異常,finally 代碼塊中的代碼總會被執(zhí)行。
java類中為什么要有get和set方法,而不是直接(類.屬性)出來屬性。
java中屬性有四個修飾符private、protected、public和default,每個修飾符的訪問權限不同。
- public:可以被所有其他類所訪問
- protected:自身、子類及同一個包中類可以訪問
- default:同一包中的類可以訪問,聲明時不加修飾符,默認為default。
- private:只能被自己訪問和修改
當修飾符不是public,屬性訪問權限被限制,其它類想要使用該屬性就要借用該類中的get和set方法進行操作。
對外訪問,使用getName,而不是name。
采用
this關鍵字是為了解決實例變量(private String name)和局部變量(setName(String name)中的name變量)之間發(fā)生的同名的沖突。類實現(xiàn)接口,使用關鍵字
implements
繼承,使用關鍵字entends
- 一個類可以同時實現(xiàn)多個接口。
- 一個類只能繼承一個類,但是能實現(xiàn)多個接口。
- 一個接口能繼承另一個接口,這和類之間的繼承比較相似 用
extends。
- Abstract表示抽象類,抽象類本身不可實例化,必須有子類去繼承,且子類中實現(xiàn)抽象父類中所有的抽象方法,子類才可實例化。
final修飾的類,不可繼承。
兩者不能同時修飾一個類
Java Application 中的主類需包含main方法,main方法的正確形參:
String[] args / String args[] / String... args都是正確的。內(nèi)部類可以是靜態(tài)static的,也可用public,default,protected和private修飾,
外部類的修飾符只能是public,abstract,final
static可以用來修飾內(nèi)部類,但是不可以用來修飾外部類
static修飾的為類成員,會隨著類的加載而加載,比如靜態(tài)代碼塊,靜態(tài)成員,靜態(tài)方法(這里只是加載,并沒有調(diào)用)等等,可以想象一下,如果把一個Class文件中的外部類設為static,目的難道是讓這個類隨著應用的啟動而加載嗎?如果在這次使用過程中根本沒有使用過這個類,那么是不是就會浪費內(nèi)存。這樣來說設計不合理,總而言之,設計不合理的地方,Java是不會讓它存在的。
而為什么內(nèi)部類可以使用static修飾呢,因為內(nèi)部類算是類的成員了,如果沒有使用靜態(tài)來修飾,那么在創(chuàng)建內(nèi)部類的時候就需要先有一個外部類的對象,如果我們一直在使用內(nèi)部類,那么內(nèi)存中就會一直存在外部類的引用,而我們有時候只需要使用內(nèi)部類,不需要外部類,那么還是會浪費內(nèi)存,甚至會造成內(nèi)存溢出。使用static修飾內(nèi)部類之后,內(nèi)部類在創(chuàng)建對象時就不需要有外部類對象的引用了。線程安全
線程不安全的:ArrayList ,LinkedList, PriorityQueue,TreeMap,TreeSet,HashMap,HashSet,StringBilder
線程安全的: Vector,Stack,Dictionary ,StringBuffer.