1. 程式人生 > >java基礎知識匯總(持續更新中....)

java基礎知識匯總(持續更新中....)

方法區 管理 執行 中間 inter print method arch end

1.java四大特性:抽象、繼承、封裝,多態

構造函數:

http://blog.csdn.net/qq_33642117/article/details/51909346  

  

2.java數據基本類型:byte short int long double float char boolean,

包裝類型:Boolean,Character,Byte,Short,Integer,Long,Float,Double

Integer :整型變量的值在-128-127之間時不會new新的對象,而是直接引用常量池中的Integer對象
,當增形變量的值不在-128-127之間時直接new新對象

public class Test03 {  
  
    public static void main(String[] args) {  
        Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150;  
  
        System.out.println(f1 == f2);//結果為true  
        System.out.println(f3 == f4);//結果為false  
    }  
}  

  3.靜態代碼塊:靜態代碼塊在類加載時執行,且只執行一次
ps: 在new對象之前加載 例:

public class StaticTest {
	public static void main(String[] args){
		new Test1();
		new Test1();
	}
}
class Test1{
	public Test1(){
		System.out.println("Test1構造方法");
	}
	
	static{
		System.out.println("我是靜態代碼塊,先執行我!!");			
	}
	
}

  執行結果

我是靜態代碼塊,先執行我!!  
Test1構造方法  
Test1構造方法  

  4.jvm內存中棧stack 堆heap 方法區method area

棧:定義基本數據變量,對象引用,函數調用的現場保存
堆:new關鍵字 創建對象 GC(垃圾收集器管理)的主要區域
方法區和堆都是各個線程共享的內存區域,

String str = new String("hello");
str放在棧中,new的字符串對象放在堆中, hello放在方法區的常量池中

https://www.cnblogs.com/dingyingsi/p/3760730.html  

  
5.StringBuffer與StringBuider區別

StringBuffer支持並發操作,線程安全,適合多線程, 作用:String是不可改變
其屬性不可改變,當對String對象操作的時候可能會產生大量的中間字符串對象,造成
因此使用可以改變的StringBuffer
StringBuider 不支持並發操作,線程不安全,不適合多線程,單線程中性能高

https://www.cnblogs.com/A_ming/archive/2010/04/13/1711395.html  

  str.intern() 的作用:會將共享池中的字符串與外部的字符串s進行比較,如果共享池中已經有
與之相等的字符串,則不會將外部的字符串放入共享池,返回的也是共享池中的
字符串,如果不同則將外部的字符串放入共享池中,並返回其字符串的句柄
-------這樣做的好處就是節省空間。

//常量池中本來就不含有jva字符,所以new的jva會放入常量池,屬於同一個對象,返回true  
        String s1 = new StringBuilder("j").append("va").toString();  
        System.out.println(s1.intern()==s1);//true  
        //常量池中本身就有字符串java所以返回的並不是同一個字符串 s2.intern()返回常量池中的  
        //java s2為new的字符所以不相等返回false  
        String s2 = new StringBuilder("ja").append("va").toString();  
        System.out.println(s2.intern()==s2);//false  
         */  

  6.泛型:

https://www.cnblogs.com/lwbqqyumidi/p/3837629.html  

  

java基礎知識匯總(持續更新中....)