1.
在java中char 是兩個位元組,可以存放一個字。。。
char a = '趙';
採用unicode編碼。。。
在java中對char進行運算時,直接當做ascii碼對應的整數對待。。。
2.
java中精度很蛋疼
精度由高到低依次為
byte < short <int < long < float < double
只能有低精度向高精度轉
而且在java中一個小數比如1.1,它會預設為double
例如:
int a = 1.2; //是錯誤的,double不能轉化為int 因為double的精度比int高
double a = 1; //正確
float a = 1.2; //錯誤。。。
float a = 1.2f; //用f表示是一個float類型
再比如:
int a =1;
int b = a + 2.3; //錯誤啊啊啊啊,因為a+2.3結果為double,double不能轉為int
3.Java中的靜態塊
class Parent {static String name = "hello";{System.out.println("parent block");}static {System.out.println("parent static block");}public Parent() {System.out.println("parent constructor");}}class Child extends Parent {static String childName = "hello";{System.out.println("child block");}static {System.out.println("child static block");}public Child() {System.out.println("child constructor");}}public class Monster {static {System.out.println("aaaaaaaaaaaaaaaaaaa");}public static void main(String[] args) {new Child();}}
輸出:
aaaaaaaaaaaaaaaaaaa
parent static block
child static block
parent block
parent constructor
child block
child constructor
最最最最最最最最最最最最最最最最最最最最最最最最好奇的是。。。。
如果注視掉//new Child();
那麼將只輸出:
aaaaaaaaaaaaaaaaaaa
對象的初始化順序:首先執行父類靜態內容,父類靜態內容執行完畢後,接著去執行子類的靜態內容,當子類的靜態內容執行完畢之後,再去看父類有沒有非靜態代碼塊,如果有就執行父類的非靜態代碼塊,父類的非靜態代碼塊執行完畢,接著執行父類的構造方法;父類的構造方法執行完畢之後,它接著去看子類有沒有非靜態代碼塊,如果有就執行子類的非靜態代碼塊。子類的非靜態代碼塊執行完畢再去執行子類的構造方法。總之一句話,靜態代碼塊內容先執行,接著執行父類非靜態代碼塊和構造方法,然後執行子類非靜態代碼塊和構造方法。
強烈參考:http://www.cnblogs.com/panjun-Donet/archive/2010/08/10/1796209.html
4.
包的作用
1.區分相同名字的類
2.當類很多時,方便管理
3.控制存取範圍
5.java規範
Java標識符的命名規則:1) 標識符由字母、數字、底線“_”、貨幣符號“$”或者人民幣符號“¥”組成,並且首字母不能是數字。2) 不能把關鍵字和保留字作為標識符。3) 標識符沒有長度限制。4) 標識符對大小寫敏感。Java編程規範:1)類名和介面名:首字母大寫,其餘字母小寫。如SamDoc2)方法名和變數名:首字母小寫,其餘的字母大寫。如bothEyesOfDoll。3)包名:字母全部小寫。如,com.abc.dollapp。4)常量名:採用大寫形式,單詞之間以底線“_”隔開。 如DEFAULT_COLOR_DOL。