JDK,Java Development Kit 的簡稱,java的開發工具包,提供了java開發和運行環境;java
JRE,Java Runtime Environment 的簡稱,java運行環境,爲java的運行提供了所需環境,包含了java虛擬機,java基礎類庫;數組
具體來講,JDK其實包含了JRE,同時還包含了編譯java源碼的編譯器javac,還包含了不少java程序調試和分析的工具。安全
簡單來講:若是你須要運行java程序,只須要安裝JRE就能夠了,若是你須要編寫java程序,須要安裝JDK。多線程
對於==,若是做用於基本數據類型的變量,則直接比較其存儲的值是否相等;工具
若是做用於引用類型的變量,則比較的是所指向的對象的地址性能
對於equals方法,注意:equals方法不能做用於基本數據類型的變量開發工具
若是沒有對equals方法進行重寫,則比較的是引用類型的變量所指向的對象的地址;ui
諸如String、Date等類對equals方法進行了重寫的話,比較的是所指向的對象的內容spa
不對,兩個對象的hashCode()相同,equals也不必定爲true。 線程
首先直接回答不必定。
在java中,equals和hashcode是有設計要求的,equals相等,則hashcode必定相等,反之則否則。
重寫equals()方法,必須重寫hashCode()方法,以保證equals方法相等時兩個對象 hashcode返回相同的值。
若是重寫了hashCode方法就極可能出現hashCode相同equals爲false的狀況。
比較兩個對象是否相等就能夠重寫hashCode和equals方法,使用equals就能判斷是否相等。
final修飾的類叫最終類,該類不能被繼承
final修飾的方法不能被重寫
final修飾的變量叫常量,常量必須初始化,初始化以後不能被修改
等於-1;由於數軸上取值時,中間值(0.5)向右取整,因此正0.5是往上取整,負0.5直接捨棄
不屬於。
基礎數據類型有八種:
整數型:byte、short、int、long
浮點數型:float、double(默認是double類型,若加後綴F爲float類型)
布爾類型:boolean
字符類型:char
而String屬於對象
操做字符串的類有3個:String、StringBuffer、StringBuilder
區別:
String與其餘兩個的區別在於:String聲明的是不可變得對象,底層運用了一個不可變的字符數組(final char[]),每次操做都會生成新的String對象,而後將指針指向新的String對象,而其餘兩個能夠在原有對象的基礎上進行操做,因此在常常改變字符串內容的狀況下最好不要使用String。
StringBuffer和StringBuilder最大的區別在於:StringBuffer是線程安全的,而StringBuilder是非線程安全的,但StringBuilder的性能卻高於StringBuffer,因此在單線程環境下推薦使用StringBuilder,多線程環境下推薦使用StringBuffer。
不同,由於內存的分配方式不同。
String str="i"的方式,java虛擬機會將其分配到常量池中
String str=new String("i")則會被分到堆內存中
使用StringBuilder或StringBuffer的reverse()方法
indexOf():返回指定字符的索引 charAt():返回指定索引處的字符
replac():字符串替換 trim():去除字符串兩段的空白
split():分割字符串,返回一個分割後的字符串數組
getBytes():返回字符串的byte類型數組 length():返回字符串長度
toLowerCase():將字符串轉成小寫字母 toUpperCase():將字符串轉成大寫字符
substring():截取字符串 equals():字符串比較
不是必須的
普通類不能包含抽象方法,抽象類能夠包含抽象方法
抽象類不能直接實例化,普通類能夠直接實例化
不能
定義抽象類就是讓其餘類繼承的,若是定義爲final該類就不能不被繼承,這樣彼此就會產生矛盾
他們都不能實例化對象,均可以包含抽象方法,並且抽方法必須被繼承的類所有實現
區別:
1.抽象類的子類使用extends來繼承;接口必須使用implements來實現接口
2.抽象類要被子類繼承,接口要被類實現
3.接口只能作方法申明,抽象類中能夠作方法申明,也能夠作方法實現
4.接口定義的只能公共靜態常量(public static final ),抽象類中的變量是普通變量
5.抽象類裏的抽象方法必須所有被子類所實現,若是子類不能所有實現父類抽象方法,那麼該子類只能是抽象類。一樣,一個實現接口的時候,如不能所有實現接口方法,那麼該類也只能爲抽象類。
6.接口中的方法默認使用public修飾;抽象類中的方法能夠是任意訪問修飾符
7.類能夠實現多個接口,但只能繼承一個超類