關於Java 變量

1、Java中的所有對象均自動存儲在堆上,當只聲明一個類的對象時,只是創建了一個引用,並沒有爲該對象分配內存空間,必須使用new()。

2、Java不同於C/C++,不需要提前聲明(forward declaration),標識符(類和方法名稱)可以在源文件中自動識別。
<span style="font-size:18px;">//Main.java
public class Main {
	public static void main(String []args){
		Example ex = new Example();
		ex.test();
	}
}
class Example{
	void test(){
		System.out.println("Call Example");
	}
}</span>

3、Widening Primitive Conversion
<span style="font-size:18px;">//Main.java
public class Main {
	public static void main(String []args){
		System.out.println("A" + "B");
		System.out.println('A' + 'B');
		System.out.println('A');
		System.out.println('B');
	}
}
/*
Output:
AB
131
A
B
*/</span>
使用單引號且存在'+'操作符時,字符'A'和'B'被轉換成int型。

4、
//Main.java
public class Main{
	public static void main(String []args){
		String str = 3 + 9 + "test" + 4 + 5;
		System.out.println(str);
	}
}
//Output:12test45

5、final關鍵字
final修飾的基本類型的變量,其值不可改變;
final修飾的非基本類型的變量(非基本類型的變量都是對象的引用),被引用的對象的成員可以改變,但是該變量不可以成爲其他對象的引用。

6、volatile關鍵字
告知編譯器volatile修飾的變量的值不能被cache緩存,因爲其值可能在程序的範圍之外被改寫。
而在C/C++中,當開發一個嵌入式系統或設備驅動時,需要用到volatile來讀寫內存映射設備。特定設備寄存器的內容可能隨時改變,所以要用volatile關鍵字保證對變量的訪問不會被編譯器優化。

7、
JDK7中允許在數字中使用下劃線以便增強可讀性。
//Main.java
import java.lang.*;
public class Main{
	public static void main(String []args) throws Exception{
		int number = 10_000_000;
		System.out.println(number);
		float fnumber = 1.00_234f;
		System.out.println(fnumber);
	}
}
/*
Output:
10000000
1.00234
*/

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