java面試不光有面試也會(huì)有筆試,整理了一些java筆試題及答案分享給大家,準(zhǔn)備或?qū)⒁獏⒓觠ava面試的朋友可以仔細(xì)閱讀,爭(zhēng)取一次通過,進(jìn)去自己心儀的企業(yè)工作。想看更多面試問題請(qǐng)關(guān)注WeiXin工縱浩“浙江優(yōu)就業(yè)”!
專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)禹州免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了數(shù)千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
一、九道選擇題
1.Java程序的種類有(BCD )
A.類(Class) B.Applet C.Application D.Servlet
2.下列說法正確的有( BCD)
A. 環(huán)境變量可在編譯source code時(shí)指定
B. 在編譯程序時(shí),所能指定的環(huán)境變量不包括class path
C. javac一次可同時(shí)編譯數(shù)個(gè)Java源文件
D. javac.exe能指定編譯結(jié)果要置于哪個(gè)目錄(directory)
3.下列標(biāo)識(shí)符不合法的有( ACD)
A.new B.$Usdollars C.1234 D.car.taxi
4.下列說法錯(cuò)誤的有( BCD)
A. 數(shù)組是一種對(duì)象
B. 數(shù)組屬于一種原生類
C. int number=={31,23,33,43,35,63}
D. 數(shù)組的大小可以任意改變
5.不能用來修飾interface的有(ACD )
A.private B.public C.protected D.static
6.下列正確的有(ACD )
A. call by value不會(huì)改變實(shí)際參數(shù)的數(shù)值
B. call by reference能改變實(shí)際參數(shù)的參考地址
C. call by reference不能改變實(shí)際參數(shù)的參考地址
D. call by reference能改變實(shí)際參數(shù)的內(nèi)容
7.下列說法錯(cuò)誤的有( ACD)
A. 在類方法中可用this來調(diào)用本類的類方法
B. 在類方法中調(diào)用本類的類方法時(shí)可直接調(diào)用
C. 在類方法中只能調(diào)用本類中的類方法
D. 在類方法中絕對(duì)不能調(diào)用實(shí)例方法
8.下列說法錯(cuò)誤的有(ABC )
A. Java面向?qū)ο笳Z(yǔ)言容許單獨(dú)的過程與函數(shù)存在
B. Java面向?qū)ο笳Z(yǔ)言容許單獨(dú)的方法存在
C. Java語(yǔ)言中的方法屬于類中的成員(member)
D. Java語(yǔ)言中的方法必定隸屬于某一類(對(duì)象),調(diào)用方法與過程或函數(shù)相同
9.下列說法錯(cuò)誤的有(BCD )
A. 能被java.exe成功運(yùn)行的java class文件必須有main方法
B. J2SDK就是Java API
C. Appletviewer.exe可利用jar選項(xiàng)運(yùn)行.jar文件
D. 能被Appletviewer成功運(yùn)行的java class文件必須有main方法
二、六道簡(jiǎn)答題
1、在java中如果聲明一個(gè)類為final,表示什么意思?
答:final是最終的意思,final可用于定義變量、方法和類但含義不同,聲明為final的類不能被繼承。
2、父類的構(gòu)造方法是否可以被子類覆蓋(重寫)?
答:父類的構(gòu)造方法不可以被子類覆蓋,因?yàn)楦割惡妥宇惖念惷遣豢赡芤粯拥摹?/p>
3、請(qǐng)講述String 和StringBuffer的區(qū)別。
答:String 類所定義的對(duì)象是用于存放“長(zhǎng)度固定”的字符串。
StringBuffer類所定義的對(duì)象是用于存放“長(zhǎng)度可變動(dòng)”的字符串。
4、如果有兩個(gè)類A、B(注意不是接口),你想同時(shí)使用這兩個(gè)類的功能,那么你會(huì)如何編寫這個(gè)C類呢?
答:因?yàn)轭怉、B不是接口,所以是不可以直接繼承的,但可以將A、B類定義成父子類,那么C類就能實(shí)現(xiàn)A、B類的功能了。假如A為B的父類,B為C的父類,此時(shí)C就能實(shí)現(xiàn)A、B的功能。
5、結(jié)合Java視頻Lesson5(多線程),分析sleep()和wait()方法的區(qū)別。
答: Sleeping睡眠的意思 : sleep() 方法用來暫時(shí)中止執(zhí)行的線程。在睡眠后,線程將進(jìn)入就緒狀態(tài)。
waiting等待的意思: 如果調(diào)用了 wait() 方法,線程將處于等待狀態(tài)。用于在兩個(gè)或多個(gè)線程并發(fā)運(yùn)行時(shí)。
6、談?wù)勀銓?duì)抽象類和接口的理解。
答:定義抽象類的目的是提供可由其子類共享的一般形式、子類可以根據(jù)自身需要擴(kuò)展抽象類、抽象類不能實(shí)例化、抽象方法沒有函數(shù)體、抽象方法必須在子類中給出具體實(shí)現(xiàn)。他使用extends來繼承。
接口:一個(gè)接口允許一個(gè)類從幾個(gè)接口繼承而來,Java 程序一次只能繼承一個(gè)類但可以實(shí)現(xiàn)幾個(gè)接口,接口不能有任何具體的方法,接口也可用來定義可由類使用的一組常量。其實(shí)現(xiàn)方式是interface來實(shí)現(xiàn)。
1、HashMap和Hashtable的區(qū)別。
都屬于Map接口的類,實(shí)現(xiàn)了將惟一鍵映射到特定的值上。HashMap 類沒有分類或者排序。它允許一個(gè)null 鍵和多個(gè)null 值。Hashtable 類似于HashMap,但是不允許null 鍵和null 值。它也比HashMap 慢,因?yàn)樗峭降?,是線程安全的。
2、sleep() 和wait() 有什么區(qū)別?
sleep是線程類(Thread)的方法,導(dǎo)致此線程暫停執(zhí)行指定時(shí)間,給執(zhí)行機(jī)會(huì)給其他線程,但是監(jiān)控狀態(tài)依然保持,到時(shí)后會(huì)自動(dòng)恢復(fù)。調(diào)用sleep不會(huì)釋放對(duì)象鎖。wait是Object類的方法,對(duì)此對(duì)象調(diào)用wait方法導(dǎo)致本線程放棄對(duì)象鎖,進(jìn)入等待此對(duì)象的等待鎖定池,只有針對(duì)此對(duì)象發(fā)出notify方法(或notifyAll)后本線程才進(jìn)入對(duì)象鎖定池準(zhǔn)備獲得對(duì)象鎖進(jìn)入運(yùn)行狀態(tài)。
3、Collection 和Collections的區(qū)別。
Collections是個(gè)java.util下的類,它包含有各種有關(guān)集合操作的靜態(tài)方法。
Collection是個(gè)java.util下的接口,它是各種集合結(jié)構(gòu)的父接口。
4、什么時(shí)候用assert.
assertion(斷言)在軟件開發(fā)中是一種常用的調(diào)試方式,很多開發(fā)語(yǔ)言中都支持這種機(jī)制。在實(shí)現(xiàn)中,assertion就是在程序中的一條語(yǔ)句,它對(duì)一個(gè)boolean表達(dá)式進(jìn)行檢查,一個(gè)正確程序必須保證這個(gè)boolean表達(dá)式的值為true;如果該值為false,說明程序已經(jīng)處于不正確的狀態(tài)下,系統(tǒng)將給出警告或退出。一般來說,assertion用于保證程序最基本、關(guān)鍵的正確性。assertion檢查通常在開發(fā)和測(cè)試時(shí)開啟。為了提高性能,在軟件發(fā)布后,assertion檢查通常是關(guān)閉的。
5、和的區(qū)別。
是兩個(gè)數(shù)相與,是位運(yùn)算符,是布爾邏輯運(yùn)算符,連接兩個(gè)條件表達(dá)式的,兩個(gè)條件表達(dá)式都為真時(shí),整個(gè)才為真
6、談?wù)刦inal, finally, finalize的區(qū)別。
final:修飾符(關(guān)鍵字)如果一個(gè)類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承。因此一個(gè)類不能既被聲明為abstract的,又被聲明為final的。將變量或方法聲明為final,可以保證它們?cè)谑褂弥胁槐桓淖?。被聲明為final的變量必須在聲明時(shí)給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重載。
finally:在異常處理時(shí)提供finally 塊來執(zhí)行任何清除操作。如果拋出一個(gè)異常,那么相匹配的catch 子句就會(huì)執(zhí)行,然后控制就會(huì)進(jìn)入finally 塊(如果有的話)。
finalize:方法名。Java 技術(shù)允許使用finalize() 方法在垃圾收集器將對(duì)象從內(nèi)存中清除出去之前做必要的清理工作。這個(gè)方法是由垃圾收集器在確定這個(gè)對(duì)象沒有被引用時(shí)對(duì)這個(gè)對(duì)象調(diào)用的。它是在Object 類中定義的,因此所有的類都繼承了它。子類覆蓋finalize() 方法以整理系統(tǒng)資源或者執(zhí)行其他清理工作。finalize() 方法是在垃圾收集器刪除對(duì)象之前對(duì)這個(gè)對(duì)象調(diào)用的。
7、Anonymous Inner Class (匿名內(nèi)部類) 是否可以extends(繼承)其它類,是否可以implements(實(shí)現(xiàn))interface(接口)?
匿名的內(nèi)部類是沒有名字的內(nèi)部類。不能繼承其它類,但一個(gè)內(nèi)部類可以作為一個(gè)接口,由另一個(gè)內(nèi)部類實(shí)現(xiàn)。
8、。Math.round(11.5)等於多少? Math.round(-11.5)等於多少?
Math.round(11.5)返回(long)12,Math.round(-11.5)返回(long)-11;因?yàn)榉祷刈罱咏鼌?shù)的long.通過加上1/2 將該結(jié)果舍入為整數(shù),取結(jié)果的基數(shù)并將其強(qiáng)制轉(zhuǎn)換為long 類型。換句話說,結(jié)果等于以下表達(dá)式的值:(long)Math.floor(a + 0.5d)
9、Static Nested Class 和Inner Class的不同,說得越多越好(面試題有的很籠統(tǒng))。
Static nested class(嵌套類)是將內(nèi)部類聲明為static.普通內(nèi)部類對(duì)象隱式地保存了一個(gè)引用,指向創(chuàng)建它的外圍類對(duì)象,不能有static數(shù)據(jù)和static字段。嵌套類意味著:1 要?jiǎng)?chuàng)建嵌套類的對(duì)象,并不需要其外圍類的對(duì)象;2不能從嵌套類的對(duì)象中訪問非靜態(tài)的外圍類的對(duì)象。
10、ArrayList和Vector的區(qū)別。
1同步性:Vector是線程安全的,也就是說是同步的,而ArrayList是線程序不安全的,不是同步的2數(shù)據(jù)增長(zhǎng):當(dāng)需要增長(zhǎng)時(shí),Vector默認(rèn)增長(zhǎng)為原來一培,而ArrayList卻是原來的一半。
關(guān)于多態(tài)網(wǎng)上歸納是這樣的
一、使用父類類型的引用指向子類的對(duì)象;
二、該引用只能調(diào)用父類中定義的方法和變量;
三、如果子類中重寫了父類中的一個(gè)方法,那么在調(diào)用這個(gè)方法的時(shí)候,將會(huì)調(diào)用子類中的這個(gè)方法;(動(dòng)態(tài)連接、動(dòng)態(tài)調(diào)用)
四、變量不能被重寫(覆蓋),”重寫“的概念只針對(duì)方法。
因?yàn)楦割惖姆椒ㄒ呀?jīng)被子類重寫了 所以調(diào)用的將是子類的方法啦。
2. 因?yàn)閙yName 是個(gè)靜態(tài)變量 static在不用實(shí)例化對(duì)象的情況下也能調(diào)用 jre會(huì)無視你函數(shù)返回值等 就看你那個(gè)靜態(tài)變量的值 所以打印兩次~
Java面向?qū)ο?/p>
1. super()與this()的區(qū)別?
This():當(dāng)前類的對(duì)象,super父類對(duì)象。
Super():在子類訪問父類的成員和行為,必須受類繼承規(guī)則的約束
而this他代表當(dāng)前對(duì)象,當(dāng)然所有的資源都可以訪問.
在構(gòu)造函數(shù)中,如果第一行沒有寫super(),編譯器會(huì)自動(dòng)插入.但是如果父類沒有不帶參數(shù)的構(gòu)造函數(shù),或這個(gè)函數(shù)被私有化了(用private修飾).此時(shí)你必須加入對(duì)父類的實(shí)例化構(gòu)造.而this就沒有這個(gè)要求,因?yàn)樗旧砭瓦M(jìn)行實(shí)例化的構(gòu)造.
而在方法中super和this使用的方法就差不多了.只不過super 要考慮是否能訪問其父類的資源.
2. 作用域public,protected,private,以及不寫時(shí)的區(qū)別?
Public:不同包、 同一包、 類內(nèi)都可用
Private: 類內(nèi)
Protected:不同包的子類、同一包、 類內(nèi)都可用
不寫時(shí): 同一包內(nèi)、類內(nèi)
3. 編程輸出如下圖形。
* * * * *
* * * *
* * *
* *
*
代碼如下:
public class Print {
publicstatic void main(String[] args) {
for(int i = 0; i 5; i++) {
for(int j = 5; j i; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
4. JAVA的事件委托機(jī)制和垃圾回收機(jī)制
Java事件委托機(jī)制的概念,一個(gè)源產(chǎn)生一個(gè)事件并將它送到一個(gè)或多個(gè)監(jiān)聽器那里。在這種方案中,監(jiān)聽器簡(jiǎn)單的等待,直到它收到一個(gè)事件。一旦事件被接受,監(jiān)聽器將處理這個(gè)事件,然后返回。
垃圾回收機(jī)制垃圾收集是將分配給對(duì)象但不再使用的內(nèi)存回收或釋放的過程。如果一個(gè)對(duì)象沒有指向它的引用或者其賦值為null,則次對(duì)象適合進(jìn)行垃圾回收
5. 在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?
用break; return 方法。
6. 什么是java序列化,如何實(shí)現(xiàn)java序列化?(寫一個(gè)實(shí)例)
序列化:處理對(duì)象流的機(jī)制,所謂對(duì)象流也就是將對(duì)象的內(nèi)容進(jìn)行流化??梢詫?duì)流化后的對(duì)象進(jìn)行讀寫操作,也可將流化后的對(duì)象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對(duì)對(duì)象流進(jìn)行讀寫操作時(shí)所引發(fā)的問題。
序列化的實(shí)現(xiàn):將需要被序列化的類實(shí)現(xiàn)Serializable接口,該接口沒有需要實(shí)現(xiàn)的方法,implementsSerializable只是為了標(biāo)注該對(duì)象是可被序列化的,然后使用一個(gè)輸出流(如:FileOutputStream)來構(gòu)造一個(gè)ObjectOutputStream(對(duì)象流)對(duì)象,接著,使用ObjectOutputStream對(duì)象的writeObject(Object obj)方法就可以將參數(shù)為obj的對(duì)象寫出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流。
7. 一個(gè)".java"源文件中是否可以包括多個(gè)類(不是內(nèi)部類)?有什么限制?
可以。如果這個(gè)類的修飾符是public,其類名與文件名必須相同。
8. 排序都有哪幾種方法?請(qǐng)列舉。用JAVA實(shí)現(xiàn)一個(gè)快速排序?
排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、基數(shù)排序)
快速排序的偽代碼。
9. Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
重寫Override,子類覆蓋父類的方法,將子類傳與父類的引用調(diào)用的還是子類的方法。
重載Overloading 一個(gè)類多個(gè)方法,名稱相同,參數(shù)個(gè)數(shù)類型不同。
兩者都是Java多態(tài)性的不同表現(xiàn)。
Overloaded的方法是可以改變返回值的類型。
1, public class Ctest(){
Public static void main(){
System.out.prinln(8+8+”88”+8+8);
}
} 168888
(方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個(gè)類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對(duì)象使用這個(gè)方法時(shí),將調(diào)用子類中的定義,對(duì)它而言,父類中的定義如同被“屏蔽”了。如果在一個(gè)類中定義了多個(gè)同名的方法,它們或有不同的參數(shù)個(gè)數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。
Overloaded的方法是可以改變返回值的類型。)
10. Final類有什么特點(diǎn)?
屬性常量 方法不可以overridding 類不可以繼承
11. 繼承時(shí)候類的執(zhí)行順序問題,一般都是選擇題,問你將會(huì)打印出什么?
答:父類:
package test;
public class FatherClass {
public FatherClass() {
System.out.println("FatherClassCreate");
}
}
子類:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass{
public ChildClass() {
System.out.println("ChildClassCreate");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
輸出結(jié)果:
C:java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
12. 內(nèi)部類的實(shí)現(xiàn)方式?
package test;
public class OuterClass {
private class InterClass {
Public Interlass(){
System.out.println("InterClassCreate");
}
}
public OuterClass(){
InterClass ic = new InterClass();
System.out.println("OuterClassCreate");
}
public static void main(String[] args){
OuterClass oc = new OuterClass();
}
}
輸出結(jié)果:
C:java test/OuterClass InterClass Create OuterClass Create
13. 用JAVA實(shí)現(xiàn)一種排序,JAVA類實(shí)現(xiàn)序列化的方法(二種)?
14. 如在COLLECTION框架中,實(shí)現(xiàn)比較要實(shí)現(xiàn)什么樣的接口?
15. 用插入法進(jìn)行排序代碼如下
package test;
import java.util.*;
class InsertSort {
ArrayList al;
public InsertSort(int num,int mod) {
al = new ArrayList(num);
Random rand = new Random();
System.out.println("The ArrayList SortBefore:");
for (int i=0;inum ;i++ ){
al.add(new Integer(Math.abs(rand.nextInt())% mod + 1));
System.out.println("al["+i+"]="+al.get(i));
}
}
public void SortIt(){
Integer tempInt;
int MaxSize=1;
for(int i=1;ial.size();i++){
tempInt = (Integer)al.remove(i);
if(tempInt.intValue()=((Integer)al.get(MaxSize-1)).intValue()){
al.add(MaxSize,tempInt);
MaxSize++;
System.out.println(al.toString());
} else {
for (int j=0;jMaxSize ;j++ ){
if(((Integer)al.get(j)).intValue()=tempInt.intValue()){
al.add(j,tempInt);
MaxSize++;
System.out.println(al.toString());
break;
}
}
}
}
System.out.println("The ArrayList SortAfter:");
for(int i=0;ial.size();i++) {
System.out.println("al["+i+"]="+al.get(i));
}
}
public static void main(String[] args) {
InsertSort is = new InsertSort(10,100);
is.SortIt();
}
}
JAVA類實(shí)現(xiàn)序例化的方法是實(shí)現(xiàn)java.io.Serializable接口
Collection框架中實(shí)現(xiàn)比較要實(shí)現(xiàn)Comparable 接口和 Comparator 接口
16. 編程:編寫一個(gè)截取字符串的函數(shù),輸入為一個(gè)字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。但是要保證漢字不被截半個(gè),如"我ABC"4,應(yīng)該截為"我AB",輸入"我ABC漢DEF",6,應(yīng)該輸出為"我ABC"而不是"我ABC+漢的半個(gè)"。
public static void split(String source,intnum) throws Exception{
intk=0;
Stringtemp="";
for(int i = 0; i source.length(); i++){
byte[]b=(source.charAt(i)+"").getBytes();
k=k+b.length;
if(knum){
break;
}
temp=temp+source.charAt(i);
}
System.out.println(temp);
}
15、Java編程,打印昨天的當(dāng)前時(shí)刻
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}
16、文件讀寫,實(shí)現(xiàn)一個(gè)計(jì)數(shù)器
public int getNum(){
int i = -1;
try{
String stri="";
BufferedReader in = new BufferedReader(newFileReader(f));
while((stri=in.readLine())!=null){
i = Integer.parseInt(stri.trim());
}
in.close();
}catch(Exception e){
e.printStackTrace();
}
return i;
}
public void setNum(){
int i = getNum();
i++;
try{
PrintWriter out=new PrintWriter(newBufferedWriter(new FileWriter(f,false)));
out.write(String.valueOf(i)); //可能是編碼的原因,如果直接寫入int的話,將出現(xiàn)java編碼和windows編碼的混亂,因此此處寫入的是String
out.close() ;
}catch(Exception e){
e.printStackTrace();
}
}
17、指出下面程序的運(yùn)行結(jié)果。
class A{
static{
System.out.print("1");
}
public A(){
System.out.print("2");
}
}
class B extends A{
static{
System.out.print("a");
}
public B(){
System.out.print("b");
}
}
public class Hello{
public static void main(String[] ars){
A ab = new B(); //執(zhí)行到此處,結(jié)果: 1a2b
ab = new B(); //執(zhí)行到此處,結(jié)果: 1a2b2b
}
}注:類的static 代碼段,可以看作是類首次加載(被虛擬機(jī)加載)執(zhí)行的代碼,而對(duì)于類的加載,首先要執(zhí)行其基類的構(gòu)造,再執(zhí)行其本身的構(gòu)造
18、抽象類和接口的區(qū)別?
(1)接口可以被多重implements,抽象類只能被單一extends(2)接口只有定義,抽象類可以有定義和實(shí)現(xiàn)(3)接口的字段定義默認(rèn)為:publicstatic final, 抽象類字段默認(rèn)是"friendly"(本包可見)
當(dāng)功能需要累積時(shí)用抽象類,不需要累積時(shí)用接口。
19、什么是類的反射機(jī)制?
通過類(Class對(duì)象),可以得出當(dāng)前類的fields、method、construtor、interface、superClass、modified等,同是可以通過類實(shí)例化一個(gè)實(shí)例、設(shè)置屬性、喚醒方法。Spring中一切都是返射、struts、hibernate都是通過類的返射進(jìn)行開發(fā)的。
20、類的返射機(jī)制中的包及核心類?
①java.lang.Class②java.lang.refrection.Method③java.lang.refrection.Field
④java.lang.refrection.Constructor⑤java.lang.refrection.Modifier⑥java.lang.refrection.Interface
21、得到Class的三個(gè)過程是什么?
①對(duì)象.getClass()②類.class或Integer.type(int) Integer.class(java.lang.Integer)③Class.forName();
22、如何喚起類中的一個(gè)方法?
①產(chǎn)生一個(gè)Class數(shù)組,說明方法的參數(shù)②通過Class對(duì)象及方法參數(shù)得到Method③通過method.invoke(實(shí)例,參數(shù)值數(shù)組)喚醒方法
23、如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)?
Integer.parseInt(“1234”) Double.parseDouble(“123.2”)
24、如何將數(shù)字轉(zhuǎn)換為字符?
1+”” 1.0+””
25、如何去小數(shù)點(diǎn)前兩位,并四舍五入。
double d=1256.22d; d=d/100; System.out.println(Math.round(d)*100);
26、如何取得年月日,小時(shí)分秒?
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,31);
System.out.println(c.get(Calendar.YEAR)+" "+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
27、如何取得從1970年到現(xiàn)在的毫秒數(shù)
Java.util.Date dat=new Date(); long now=dat.getTime();
或System.currentTimeMillis()
28、如何獲取某個(gè)日期是當(dāng)月的最后一天?
當(dāng)前日期加一天,若當(dāng)前日期與結(jié)果的月份不相同,就是最后一天。
取下一個(gè)月的第一天,下一個(gè)月的第一天-1
public static void main(String[] args){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,30);
Calendarc1=(Calendar)c.clone();
System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
c.add(Calendar.DAY_OF_MONTH,1);
if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH)){
System.out.println("是最后一天");
}else{
System.out.println("不是取后一天");
}
}
29、如何格式化日期?
Import java.text. SimpleDateFormat;
SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dat=new Date();
String str=sdf.format(dat); //把日期轉(zhuǎn)化為字符串
System.out.println(str);
Java.util.Date d1=sdf.parse(“yyyy-mm-dd”); //將字符串轉(zhuǎn)化為日期
30、編碼轉(zhuǎn)換,怎樣實(shí)現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。
String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a=new String("中".getBytes("iso-8859-1"));
應(yīng)該是String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a1=newString(a.getBytes("iso-8859-1"));
答案是B
3靜態(tài)代碼塊只要調(diào)用到類就執(zhí)行
所以優(yōu)先于main
但是后面又定義了static
int
x
所以覆蓋掉了上面的5
初始x=0
main方法
第一句x=-1
調(diào)用方法
y=-1+1(因?yàn)榇藭r(shí)執(zhí)行了x++)
所以y是0
x此時(shí)是1
打印1+0+2=3