大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 15道基礎Java編程面試題

15道基礎Java編程面試題

更新時間:2020-10-15 17:00:17 來源:動力節點 瀏覽2948次

在現在的互聯網大環境下,程序員和工程師的職位需求在提高,相應的想投入到工程師行業的人也在變多,所以很多大公司對于面試工程師職位的人要求也在逐漸提高,但是在java面試中,面試官著重考察的還是基礎知識是否扎實,基礎java編程面試題是在面試前必須要做的功課,下面整理了15道基礎java編程面試題,有要參加java面試的朋友們可以學習下面的內容。

image.png

1、java語言層次安全性表現在哪里?

答:Java取消了強大但又危險的指針,而代之以引用。由于指針可進行移動運算,指針可隨便指向一個內存區域,而不管這個區域是否可用,這樣做是危險的,因為原來這個內存地址可能存儲著重要數據或者是其他程序運行所占用的,并且使用指針也容易數組越界。

垃圾回收機制:不需要程序員直接控制內存回收,由垃圾回收器在后臺自動回收不再使用的內存。避免程序忘記及時回收,導致內存泄露。避免程序錯誤回收程序核心類庫的內存,導致系統崩潰。

異常處理機制:Java異常機制主要依賴于try、catch、finally、throw、throws五個關鍵字。

強制類型轉換:只有在滿足強制轉換規則的情況下才能強轉成功。

2、JDK、JRE、JVM三者關系是什么?

答:jdk是JAVA程序開發時用的開發工具包,其內部也有JRE運行環境JRE。JRE是java程序運行時需要的運行環境,就是說如果你光是運行JAVA程序而不是去搞開發的話,只安裝JRE就能運行已經存在的JAVA程序了。JDk、JRE內部都包含java虛擬機JVM,java虛擬機內部包含許多應用程序的類的解釋器和類加載器等等。

3、if多分支語句和switch多分支語句的異同點?

答:相同之處:都是分支語句,多超過一種的情況進行判斷處理。

不同之處:switch更適合用于多分支情況,就是有很多種情況需要判斷處理,判斷條件類型單一,只有一個入口,在分支執行完后(如果沒有break跳出),不加判斷地執行下去;而if—elseif---else多分枝主要適用于分支較少的分支結構,判斷類型不是單一,只要一個分支被執行后,后邊的分支不再執行。switch為等值判斷(不允許比如>= <=),而if為等值和區間都可以,if的使用范圍大。

4、&和&&的區別和聯系

答:&和&&的聯系:&和&&都可以用作邏輯與運算符,但是要看使用時的具體條件來決定。操作數1&操作數2,操作數1&&操作數2,表達式1&表達式2,表達式1&&表達式2。

情況1:當上述的操作數是boolean類型變量時,&和&&都可以用作邏輯與運算符。

情況2:當上述的表達式結果是boolean類型變量時,&和&&都可以用作邏輯與運算符。

表示邏輯與(and),當運算符兩邊的表達式的結果或操作數都為true時,整個運算結果才為true,否則,只要有一方為false,結果都為false。

&和&&的區別(不同點):&邏輯運算符稱為邏輯與運算符,&&邏輯運算符稱為短路與運算符,也可叫邏輯與運算符。無論任何情況,&兩邊的操作數或表達式都會參與計算。對于&&:當&&左邊的操作數為false或左邊表達式結果為false時,&&右邊的操作數或表達式將不參與計算,此時最終結果都為false。

綜上所述,如果邏輯與運算的第一個操作數是false或第一個表達式的結果為false時,對于第二個操作數或表達式是否進行運算,對最終的結果沒有影響,結果肯定是false。

5、基本數據類型轉換規則?

答:基本類型轉換分為自動轉換和強制轉換。

自動轉換規則:容量小的數據類型可以自動轉換成容量大的數據類型,也可

以說低級自動向高級轉換。這兒的容量指的不是字節數,而是指類型表述的范圍。

強制轉換規則:高級變為低級需要強制轉換。如何轉換:(1)賦值運算符“=”右邊的轉換,先自動轉換成表達式中級別最高的數據類型,再進行運算。(2)賦值運算符“=”兩側的轉換,若左邊級別>右邊級別,會自動轉換;若左邊級別 == 右邊級別,不用轉換;若左邊級別 < 右邊級別,需強制轉換。(3)可以將整型常量直接賦值給byte, short, char等類型變量,而不需要進行強制類型轉換,前提是不超出其表述范圍,否則必須進行強制轉換。

6、if多分支語句和switch多分支語句的異同之處在哪里?

答:相同之處:都是分支語句,多超過一種的情況進行判斷處理。

不同之處:switch更適合用于多分支情況,就是有很多種情況需要判斷處理,判斷條件類型單一,只有一個入口,在分支執行完后(如果沒有break跳出),不加判斷地執行下去;而if—elseif---else多分枝主要適用于分支較少的分支結構,判斷類型不是單一,只要一個分支被執行后,后邊的分支不再執行。switch為等值判斷(不允許比如>= <=),而if為等值和區間都可以,if的使用范圍大。

7、while和do-while循環的區別是什么?

答:while先判斷后執行,第一次判斷為false,循環體一次都不執行;do while先執行 后判斷,最少執行1次;如果while循環第一次判斷為true, 則兩種循環沒有區別。

image.png

8、break和continue的作用?

答:break: 結束當前循環并退出當前循環體。break還可以退出switch語句。

continue: 循環體中后續的語句不執行,但是循環沒有結束,繼續進行循環條件的判斷(for循環還會i++)。continue只是結束本次循環。

9、數組的特征都有什么?

答:數組是(相同類型數據)的(有序)(集合);

數組會在內存中開辟一塊連續的空間,每個空間相當于之前的一個變量,稱為數組的元素element;

每個數組元素有默認值 double 0.0 boolean false int 0;

數組元素有序的,不是大小順序,是索引的順序;

數組中可以存儲基本數據類型,可以存儲引用數據類型;但是對于一個數組而言,數組的類型是固定的,只能是一個;

length:數組的長度,數組的長度是固定的,一經定義,不能再發生變化(數組的擴容)。

10、一個數如果恰好等于它的因子之和, 這個數就稱為”完數”,例如 6 = 1+2+3。編程找出0-1000以內的所有完數

public class WanShu {
????private static boolean isWanShu(int shu){
????????int sum = 0;
????????for (int i = 1; i < shu; i++) {
????????????if(shu%i==0){
????????????????sum+= i;
????????????}
????????}
????????if(sum==shu){
????????????return true;
????????}else{ ?????????
????????????return false;
????????} ?
????}
????public static void main(String[] args) {
????????for (int i = 1; i < 1000; i++) {
????????????if(isWanShu(i)){
????????????????System.out.println(i);
????????????};
????????}
????}
}

11、下面程序輸出的結果是(A)

static boolean foo(char c) {
????????System.out.print(c);
????????return true;
????}
public static void main(String[] args) {
????????int i = 0;
????????for (foo('A'); foo('B') && (i < 2); foo('C')) {
????????????i++;
????????????foo('D');
????????}
}?

A. ABDCBDCB B. ABDCDBCB C. ABDBCDCB D. ABDBCDCB

解析:首先,必定是ABDC打頭,排除C、D,隨后執行foo('B') && (i < 2)這一項,結果為B,可得出結果為A。執行順序--foo('A')--foo('B')&&true--foo('D')--foo('C')--foo('B')&&true--foo('D')--foo('C')--foo('B')&&false--end

12、當 n = 5 時,下列函數的返回值是:(A)

int foo(int n)
????{
????????if(n<2)return n;
????????return foo(n-1)+foo(n-2);
????}
A.5 B.7 C.8 D.1
解析:Result=foo(4)+foo(3)
foo(4)=foo(3)+foo(2)
foo(3)=foo(2)+foo(1)
foo(2)=foo(1)+foo(0)
foo(1)=1
foo(0)=0
所以foo(2)=1,foo(3)=2,foo(4)=3

13、寫出插入排序的代碼

:package com.bjsxt;
public class TestInsertSort {
public static void sort(int arr[]) {
int i, j;
for (i = 1; i < arr.length; i++) {
int temp = arr[i];
for (j = i; j > 0 && temp < arr[j - 1]; j--) {
arr[j] = arr[j - 1];
}
arr[j] = temp;
}
}
}

14、final、finally、finalize的區別?

答:final修飾符(關鍵字)如果一個類被聲明為final,意味著它不能再派生出新的子類,不能作為父類被繼承例如:String類、Math類等。將變量或方法聲明為final,可以保證它們在使用中不被改變。被聲明為final的變量必須在聲明時給定初值,而在以后的引用中只能讀取,不可修改。被聲明為final的方法也同樣只能使用,不能重寫,但是能夠重載。 使用final修飾的對象,對象的引用地址不能變,但是對象的值可以變。

finally在異常處理時提供 finally 塊來執行任何清除操作。如果有finally的話,則不管是否發生異常,finally語句都會被執行。一般情況下,都把關閉物理連接(IO流、數據庫連接、Socket連接)等相關操作,放入到此代碼塊中。

finalize方法名。Java 技術允許使用 finalize() 方法在垃圾收集器將對象從內存中清除出去之前做必要清理工作。finalize() 方法是在垃圾收集器刪除對象之前被調用的。它是在 Object 類中定義的,因此所有的類都繼承了它。子類覆蓋 finalize() 方法以整理系統資源或者執行其他清理工作。一般情況下,此方法由JVM調用,程序員不要去調用。

15、字符型常量和字符串常量的區別?

答:形式上:字符常量是單引號引起的一個字符;字符串常量是雙引號引起的若干個字符。含義上:字符常量相當于一個整形值(ASCII值),可以參加表達式運算;字符串常量代表一個地址值(該字符串在內存中存放位置)。占內存大小:字符常量只占一個字節;字符串常量占若干個字節(至少一個字符結束標志)。

以上是今天為朋友們整理的基礎java編程面試題,這15道題肯定不能說是有最全面的java編程知識,但肯定是基礎的常考的內容,會有很大的出現在java面試中的概率,所以希望大家可以好好學上面的內容,再及時的通過java基礎教程來學習更多的java知識。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 曰本一级毛片 | 一区二区三区四区在线 | 国产国语高清在线视频二区 | 草草影院第一页 | 九九热这里有精品 | 2022国产91精品久久久久久 | 久久综合给合久久狠狠狠色97 | 奇米影视第四色7777 | 2019天天干天天操 | 一级一级女人18毛片 | 狠狠色噜噜狠狠狠狠2021天天 | 狠狠狠色丁香婷婷综合久久五月 | 最近中文字幕免费版在线3 最近中文字幕无吗高清视频 | 中文字幕免费视频精品一 | 青青久久精品 | 九色国产 | 国产亚洲欧美在线观看的 | 九九热视频免费 | 国产精品一级香蕉一区 | 久久99国产精品二区不卡 | 日韩免费观看 | 国产香蕉在线视频一级毛片 | 一 级做人爱全视频在线看 一a级毛片 | 国内精品久久久久久不卡影院 | 天天射天天射 | 国产一极毛片 | 最新国产三级久久 | 精品在线播放视频 | 亚洲欧美综合区自拍另类 | 国产成人精品日本亚洲语音1 | 亚洲国产精品综合福利专区 | 离线枕边人在线观看 | 99热久久这里只有精品9 | 精品一区二区三区18 | 四虎影视永久免费观看网址 | 日本成人一区二区三区 | 国产精品自在自线免费观看 | 四虎影视最新网站在线播放 | 2020国产精品视频 | 深夜福利网址 | 中文字幕在线观看日本 |