java面試題及答案
Java語(yǔ)言是一門經(jīng)久不衰的語(yǔ)言,發(fā)展至今已經(jīng)超過(guò)20 年。20年的時(shí)間可以改變很多事情,但是最火爆的語(yǔ)言之一還是有Java。所以現(xiàn)在依然有很多人選擇學(xué)習(xí)Java語(yǔ)言。
2017年最新java面試題及答案
Java具有簡(jiǎn)單性、面向?qū)ο、分布式、健壯性、安全性、平立與可移植性、多線程、動(dòng)態(tài)性等特點(diǎn)。下面是小編整理的關(guān)于最新java面試題及答案,歡迎大家試題!
最新前端工程師面試題
一、問(wèn)答題(共兩題每題5分)
1、在軟件開(kāi)發(fā)的形式中,有單獨(dú)開(kāi)發(fā)和團(tuán)隊(duì)開(kāi)發(fā),請(qǐng)您分析兩種開(kāi)發(fā)形式的利弊?
2、除了工資還有什么福利對(duì)你具有吸引力?
二、案例分析(共四題每題5分)
1、案例一:項(xiàng)目經(jīng)理陳經(jīng)理所在的項(xiàng)目組接到總監(jiān)分配的一項(xiàng)緊急任務(wù),要求在2天內(nèi)完成A項(xiàng)目,陳經(jīng)理馬上召集其下屬工程師小張和小黃進(jìn)行工作分配并分析項(xiàng)目要點(diǎn)和各個(gè)要點(diǎn)的主要做法2017年Java工程師面試題2017年Java工程師面試題。時(shí)間已經(jīng)過(guò)去了1天半,工程師小張發(fā)現(xiàn),根據(jù)陳經(jīng)理對(duì)項(xiàng)目要點(diǎn)的主要做法行不通,但時(shí)間已經(jīng)所剩不多了。
問(wèn)題一:如果你是小張,你會(huì)怎么做?為什么?
問(wèn)題二:由于項(xiàng)目做法的問(wèn)題導(dǎo)致項(xiàng)目的進(jìn)度無(wú)法按總監(jiān)的要求在2天內(nèi)完成,總監(jiān)怪罪下來(lái),你認(rèn)為這是誰(shuí)的責(zé)任,為什么?
2、案例二:工程師小李和工程師小陳分別在同一個(gè)項(xiàng)目組負(fù)責(zé)軟件開(kāi)發(fā)工作,他倆是同時(shí)進(jìn)入公司的,而且被分配在鄰座,因此關(guān)系非常好。工程師小李最近發(fā)現(xiàn)小陳經(jīng)常在上班時(shí)間做一些與本公司業(yè)務(wù)無(wú)關(guān)的'工作,并且在一次偶然的機(jī)會(huì)讓小李發(fā)現(xiàn),小陳的薪資比自己的薪資要高一倍多。
問(wèn)題一:如果你是小李,你會(huì)怎么做,為什么?
問(wèn)題二:如果你是小陳,你發(fā)現(xiàn)做的事情被小李發(fā)現(xiàn)了,你會(huì)怎么做,為什么?
2017年java面試題及答案
Java語(yǔ)言作為靜態(tài)面向?qū)ο缶幊陶Z(yǔ)言的代表,極好地實(shí)現(xiàn)了面向?qū)ο罄碚,允許程序員以優(yōu)雅的思維方式進(jìn)行復(fù)雜的編程。下面是小編整理的關(guān)于2017年java面試題及答案,歡迎大家練習(xí)!
java面試題及答案
1、String 是最基本的數(shù)據(jù)類型嗎?
答:不是。Java中的基本數(shù)據(jù)類型只有8個(gè):byte、short、int、long、float、double、char、boolean;除了基本類型(primitive type),剩下的都是引用類型(reference type),Java 5以后引入的枚舉類型也算是一種比較特殊的引用類型。
2、float f=3.4;是否正確?
答:不正確。3.4是雙精度數(shù),將雙精度型(double)賦值給浮點(diǎn)型(float)屬于下轉(zhuǎn)型(down-casting,也稱為窄化)會(huì)造成精度損失,因此需要強(qiáng)制類型轉(zhuǎn)換float f =(float)3.4; 或者寫成float f =3.4F;。
3、short s1 = 1; s1 = s1 + 1;有錯(cuò)嗎?short s1 = 1; s1 += 1;有錯(cuò)嗎?
答:對(duì)于short s1 = 1; s1 = s1 + 1;由于1是int類型,因此s1+1運(yùn)算結(jié)果也是int 型,需要強(qiáng)制轉(zhuǎn)換類型才能賦值給short型。而short s1 = 1; s1 += 1;可以正確編譯,因?yàn)閟1+= 1;相當(dāng)于s1 = (short)(s1 + 1);其中有隱含的強(qiáng)制類型轉(zhuǎn)換。
java面試題及答案
據(jù)悉,2016年元旦放假安排為2016年1月1日至1月3日,恰好是一個(gè)周五加上周末的三整天時(shí)間。昨日互聯(lián)網(wǎng)、電話購(gòu)票已經(jīng)可以預(yù)訂2015年最后一天即12月31日的車票。今日,2016年元旦當(dāng)日火車票將正式開(kāi)售,旅客可以通過(guò)12306網(wǎng)站、手機(jī)客戶端或電話訂票熱線進(jìn)行購(gòu)票。
另外,鐵路部門也推出了3元的鐵路旅客人身意外傷害保險(xiǎn)服務(wù),最高保障30萬(wàn)元意外身故、傷殘和3萬(wàn)元意外醫(yī)療,購(gòu)買選項(xiàng)將隨付款頁(yè)面一起出現(xiàn),旅客可自愿選擇是否購(gòu)買。
另?yè)?jù)了解,2016年寒假學(xué)生優(yōu)惠火車票也已開(kāi)始發(fā)售,學(xué)生旅客可憑有效學(xué)生證及身份證件,購(gòu)買12月1日以后最低半價(jià)優(yōu)惠的火車票。
火車票代售點(diǎn)和火車站窗口兩天后開(kāi)始發(fā)售
需要注意的是,由于火車票車站窗口、車站自助售票機(jī)和代售點(diǎn)的預(yù)售期較短,今天還不能發(fā)售元旦車票。車站窗口、車站自助售票機(jī)只銷售未來(lái)3天火車票,市區(qū)代售點(diǎn)銷售提前58天火車票,通過(guò)這些渠道今天還不能買到元旦車票;疖嚻贝埸c(diǎn)和火車站窗口兩天后開(kāi)始發(fā)售。另外,2016年2月8日為春節(jié),12月10日互聯(lián)網(wǎng)將開(kāi)始發(fā)售除夕火車票。
2016年寒假學(xué)生優(yōu)惠火車票已開(kāi)始發(fā)售
據(jù)了解,2016年寒假學(xué)生優(yōu)惠火車票也已開(kāi)始發(fā)售,學(xué)生旅客可憑有效學(xué)生證及身份證件,購(gòu)買12月1日以后最低半價(jià)優(yōu)惠的火車票。
中短途游客不必太早買票
鐵路人士提醒,對(duì)于中短途旅客,比如上海往南京、杭州、溫州等方向,車次相對(duì)沒(méi)有那么緊張,因此不必太早買票,在出行前1-2周買票就可以了;而去往北京、廈門、沈陽(yáng)等方向的長(zhǎng)途旅客,則建議盡快購(gòu)票,避開(kāi)元旦前的購(gòu)票高峰。根據(jù)慣例,鐵路部門會(huì)在元旦小長(zhǎng)假等出行高峰時(shí)段,安排多個(gè)方向增開(kāi)列車,屆時(shí)還會(huì)有一些車票放出。
JAVA面試題小練習(xí)題3,參考答案
T142面試題小練習(xí)參考答案(總分100’) Java-OOP&SQL Server部分1) try {}里有一個(gè)return語(yǔ)句,那么緊跟在這個(gè)try后的finally {}里的code會(huì)不會(huì)被執(zhí)行,什么時(shí)
候被執(zhí)行,在return前還是后? (8’)
會(huì)執(zhí)行,finally中的代碼比return 和break語(yǔ)句后執(zhí)行。
拓展:演示FinallyTest1和FinallyTest代碼。
2) String s = new String("xyz"),創(chuàng)建了幾個(gè)對(duì)象?為什么?(10’)
3) x.equals(y)==true,x,y可有不同的hash code,這句話對(duì)不對(duì)?(5’)
不對(duì)
如果兩個(gè)hashCode()返回的結(jié)果相等,則兩個(gè)對(duì)象的equals方法不一定相等。 拓展:
一致性
在 Java 應(yīng)用程序執(zhí)行期間,在對(duì)同一對(duì)象多次調(diào)用 hashCode 方法時(shí),必須一致地返回相同的整數(shù),前提是將對(duì)象進(jìn)行hashcode比較時(shí)所用的信息沒(méi)有被修改。
equals
如果根據(jù) equals(Object) 方法,兩個(gè)對(duì)象是 相等的,那么對(duì)這兩個(gè)對(duì)象中的每個(gè)對(duì)象調(diào)用 hashCode 方法都必須生成相同的整數(shù)結(jié)果,
如果根據(jù)equals(java.lang.Object)方法,兩個(gè)對(duì)象不相等,那么對(duì)這兩個(gè)對(duì)象中的任一對(duì)象上調(diào)用 hashCode 方法不一定生成不同的整數(shù)結(jié)果。
java面試題大全帶答案2016
以下是應(yīng)屆畢業(yè)生小編給大家整理關(guān)于Java面試題的內(nèi)容,希望對(duì)你們有幫助,快來(lái)閱讀參考吧。
Java面試題和答案【1】
封裝
封裝給對(duì)象提供了隱藏內(nèi)部特性和行為的能力。對(duì)象提供一些能被其他對(duì)象訪問(wèn)的方法來(lái)改變它內(nèi)部的數(shù)據(jù)。在Java當(dāng)中,有3種修飾符:public,private和protected。每一種修飾符給其他的位于同一個(gè)包或者不同包下面對(duì)象賦予了不同的訪問(wèn)權(quán)限。
下面列出了使用封裝的一些好處:
通過(guò)隱藏對(duì)象的屬性來(lái)保護(hù)對(duì)象內(nèi)部的狀態(tài)。
提高了代碼的可用性和可維護(hù)性,因?yàn)閷?duì)象的行為可以被單獨(dú)的改變或者是擴(kuò)展。
禁止對(duì)象之間的不良交互提高模塊化。
參考這個(gè)文檔獲取更多關(guān)于封裝的細(xì)節(jié)和示例。
多態(tài)
多態(tài)是編程語(yǔ)言給不同的底層數(shù)據(jù)類型做相同的接口展示的一種能力。一個(gè)多態(tài)類型上的操作可以應(yīng)用到其他類型的值上面。
繼承
繼承給對(duì)象提供了從基類獲取字段和方法的能力。繼承提供了代碼的重用行,也可以在不修改類的情況下給現(xiàn)存的類添加新特性。
抽象
抽象是把想法從具體的實(shí)例中分離出來(lái)的步驟,因此,要根據(jù)他們的功能而不是實(shí)現(xiàn)細(xì)節(jié)來(lái)創(chuàng)建類。Java支持創(chuàng)建只暴漏接口而不包含方法實(shí)現(xiàn)的抽象的類。這種抽象技術(shù)的主要目的是把類的行為和實(shí)現(xiàn)細(xì)節(jié)分離開(kāi)。
抽象和封裝的不同點(diǎn)
抽象和封裝是互補(bǔ)的概念。一方面,抽象關(guān)注對(duì)象的行為。另一方面,封裝關(guān)注對(duì)象行為的細(xì)節(jié)。一般是通過(guò)隱藏對(duì)象內(nèi)部狀態(tài)信息做到封裝,因此,封裝可以看成是用來(lái)提供抽象的一種策略。
高級(jí)Java面試題及答案2016
java高級(jí)面試有哪些常見(jiàn)問(wèn)題呢?下面yjbys為大家分享最新java常見(jiàn)面試題及答案解析,僅供參考!
什么是可變參數(shù)?
可變參數(shù)允許調(diào)用參數(shù)數(shù)量不同的方法。請(qǐng)看下面例子中的求和方法。此方法可以調(diào)用1個(gè)int參數(shù),或2個(gè)int參數(shù),或多個(gè)int參數(shù)。
//int(type) followed ... (three dot's) is syntax of a variable argument.
public int sum(int... numbers) {
//inside the method a variable argument is similar to an array.
//number can be treated as if it is declared as int[] numbers;
int sum = 0;
for (int number: numbers) {
sum += number;
}
return sum;
}
public static void main(String[] args) {
VariableArgumentExamples example = new VariableArgumentExamples();
//3 Arguments
System.out.println(example.sum(1, 4, 5));//10
2017年java中高級(jí)筆試面試題及答案
本文很多面試題是網(wǎng)友面試BAT親身經(jīng)歷碰到的。整理分享出來(lái)希望更多的前端er共同進(jìn)步吧,不僅適用于求職者,對(duì)于鞏固復(fù)習(xí)js更是大有裨益。
中級(jí)Javascript:
1.實(shí)現(xiàn)一個(gè)函數(shù)clone,可以對(duì)JavaScript中的5種主要的數(shù)據(jù)類型(包括Number、String、Object、Array、Boolean)進(jìn)行值復(fù)制
考察點(diǎn)1:對(duì)于基本數(shù)據(jù)類型和引用數(shù)據(jù)類型在內(nèi)存中存放的是值還是指針這一區(qū)別是否清楚
考察點(diǎn)2:是否知道如何判斷一個(gè)變量是什么類型的
考察點(diǎn)3:遞歸算法的設(shè)計(jì)
1 // 方法一:
2 Object.prototype.clone = function(){ 3 var o = this.constructor === Array ? [] : {}; 4 for(var e in this){ 5 o[e] = typeof this[e] === "object" ? this[e].clone() : this[e]; 6 } 7 return o; 8 } 9 10 //方法二:11 /**
12 * 克隆一個(gè)對(duì)象
13 * @param Obj
14 * @returns
15 */ 16 function clone(Obj) {
17 var buf;
18 if (Obj instanceof Array) {
java面試題及答案
1)抽象類和接口有什么區(qū)別?
1.abstract class 在 Java 語(yǔ)言中表示的是一種繼承關(guān)系,一個(gè)類只能使用一次繼承關(guān)系。但是,一個(gè)類卻可以實(shí)現(xiàn)多個(gè)interface。
2.在abstract class 中可以有自己的數(shù)據(jù)成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數(shù)據(jù)成員(也就是必須是static final的,不過(guò)在 interface中一般不定義數(shù)據(jù)成員),所有的成員方法都是abstract的。
3.abstract class和interface所反映出的設(shè)計(jì)理念不同。其實(shí)abstract class表示的是"is-a"關(guān)系,interface表示的是"like-a"關(guān)系。
4.實(shí)現(xiàn)抽象類和接口的類必須實(shí)現(xiàn)其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實(shí)現(xiàn)方法。
5.接口中定義的變量默認(rèn)是public static final 型,且必須給其初值,所以實(shí)現(xiàn)類中不能重新定義,也不能改變其值。
6.抽象類中的變量默認(rèn)是 friendly 型,其值可以在子類中重新定義,也可以重新賦值。
7.接口中的方法默認(rèn)都是 public,abstract 類型的。
2)能說(shuō)一下java的反射(reflection)機(jī)制嗎?
開(kāi)放性和原因連接(causally-connected)是反射系統(tǒng)的兩大基本要素
廣州合生元Java開(kāi)發(fā)工程師面試題及答案
1:如果查詢數(shù)據(jù)庫(kù)時(shí),速度比較慢,你怎么樣從數(shù)據(jù)庫(kù)端進(jìn)行優(yōu)化
2:你用什么方法統(tǒng)計(jì)網(wǎng)站的當(dāng)前在線人數(shù)
3:寫出你做的比較滿意的系統(tǒng)并簡(jiǎn)述,說(shuō)出他們的體系結(jié)構(gòu)
java網(wǎng)頁(yè)中怎樣統(tǒng)計(jì)在線人數(shù)
1.用session超時(shí),session為null就表示下線了
2.也可以采用數(shù)據(jù)庫(kù)中設(shè)置 臨時(shí)表 來(lái)處理
一個(gè)用戶登陸時(shí)向表中插進(jìn)一條記錄,用戶離開(kāi)時(shí)候刪除該記錄
如想統(tǒng)計(jì)在線人數(shù),簡(jiǎn)單地執(zhí)行
select count(*) from table… 即可
3.application對(duì)象中可以記住現(xiàn)在的人數(shù),application的生命周期和服務(wù)器的生命周期一樣長(zhǎng)。
4.還有一種方法要用到一個(gè)文件global.jsa ,方法是(在JSP中)是sessionDestroy(),其中它是以session對(duì)象為參數(shù)的。還有要把global.jsa文件必須房子和JSP程序相同的文件目錄內(nèi)才行。
5.網(wǎng)頁(yè)自動(dòng)刷新的代碼是:
在文件頭部加上
刷新間隔時(shí)間是15秒
6.在session中加入監(jiān)聽(tīng)類,類的示例代碼如下:
onLineUser.java
import javax.servlet.http.*;
import javax.servlet.*;
import java.util.*;
public class onLineUser implements HttpSessionBindingListener {
2016年java多線程面試題及答案
Java舍棄了C語(yǔ)言中容易引起錯(cuò)誤的指針(以引用取代)、運(yùn)算符重載(operator overloading)、多重繼承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的對(duì)象所占據(jù)的內(nèi)存空間,使得程序員不用再為內(nèi)存管理而擔(dān)憂。那么在java面試中,有哪些面試試題呢?
1)現(xiàn)在有T1、T2、T3三個(gè)線程,你怎樣保證T2在T1執(zhí)行完后執(zhí)行,T3在T2執(zhí)行完后執(zhí)行?
這個(gè)線程問(wèn)題通常會(huì)在第一輪或電話面試階段被問(wèn)到,目的是檢測(cè)你對(duì)”join”方法是否熟悉。這個(gè)多線程問(wèn)題比較簡(jiǎn)單,可以用join方法實(shí)現(xiàn)。
2)在Java中Lock接口比synchronized塊的優(yōu)勢(shì)是什么?你需要實(shí)現(xiàn)一個(gè)高效的緩存,它允許多個(gè)用戶讀,但只允許一個(gè)用戶寫,以此來(lái)保持它的完整性,你會(huì)怎樣去實(shí)現(xiàn)它?
lock接口在多線程和并發(fā)編程中最大的優(yōu)勢(shì)是它們?yōu)樽x和寫分別提供了鎖,它能滿足你寫像ConcurrentHashMap這樣的高性能數(shù)據(jù)結(jié)構(gòu)和有條件的阻塞。Java線程面試的問(wèn)題越來(lái)越會(huì)根據(jù)面試者的回答來(lái)提問(wèn)。我強(qiáng)烈建議在你去參加多線程的面試之前認(rèn)真讀一下Locks,因?yàn)楫?dāng)前其大量用于構(gòu)建電子交易終統(tǒng)的客戶端緩存和交易連接空間。
3)在java中wait和sleep方法的不同?
通常會(huì)在電話面試中經(jīng)常被問(wèn)到的Java線程面試問(wèn)題。最大的不同是在等待時(shí)wait會(huì)釋放鎖,而sleep一直持有鎖。Wait通常被用于線程間交互,sleep通常被用于暫停執(zhí)行。