當前位置:首頁 » 編程語言 » java面試數據

java面試數據

發布時間: 2022-08-27 09:54:05

java面試題

1抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是數據抽象。

2繼承:繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提供了一種明確表述共性的方法。對象的一個新類可以從現有的類中派生,這個過程稱為類繼承。新類繼承了原始類的特性,新類稱為原始類的派生類(子類),而原始類稱為新類的基類(父類)。派生類可以從它的基類那裡繼承方法和實例變數,並且類可以修改或增加新的方法使之更適合特殊的需要。

3封裝:封裝是把過程和數據包圍起來,對數據的訪問只能通過已定義的界面。面向對象計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的對象,這些對象通過一個受保護的介面訪問其他對象。

4多態性:多態性是指允許不同類的對象對同一消息作出響應。多態性包括參數化多態性和包含多態性。多態性語言具有靈活、抽象、行為共享、代碼共享的優勢,很好的解決了應用程序函數同名問題。

5.基本數據類型包括byte、char 、chort、int、long、float、double、boolean
java.lang.String類是final類型的,因此不可以繼承這個類、不能修改這個類。為了提高效率節省空間,我們應該用StringBuffer類

6.Java 提供兩種不同的類型:引用類型和原始類型(或內置類型)。Int是java的原始數據類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。
原始類型封裝類booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble
引用類型和原始類型的行為完全不同,並且它們具有不同的語義。引用類型和原始類型具有不同的特徵和用法,它們包括:大小和速度問題,這種類型以哪種類型的數據結構存儲,當引用類型和原始類型用作某個類的實例數據時所指定的預設值。對象引用實例變數的預設值為 null,而原始類型實例變數的預設值與它們的類型有關。

7.JAVA平台提供了兩個類:String和StringBuffer,它們可以儲存和操作字元串,即包含多個字元的字元數據。這個String類提供了數值不可改變的字元串。而這個StringBuffer類提供的字元串進行修改。當你知道字元數據要改變的時候你就可以使用StringBuffer。典型地,你可以使用StringBuffers來動態構造字元數據。

8.異常表示程序運行過程中可能出現的非正常狀態,運行時異常表示虛擬機的通常操作中可能遇到的異常,是一種常見運行錯誤。java編譯器要求方法必須聲明拋出可能發生的非運行時異常,但是並不要求必須聲明拋出未被捕獲的運行時異常。

9.Servlet被伺服器實例化後,容器運行其init方法,請求到達時運行其service方法,service方法自動派遣運行與請求對應的doXXX方法(doGet,doPost)等,當伺服器決定將實例銷毀的時候調用其destroy方法。
與cgi的區別在於servlet處於伺服器進程中,它通過多線程方式運行其service方法,一個實例可以服務於多個請求,並且其實例一般不會銷毀,而CGI對每個請求都產生新的進程,服務完成後就銷毀,所以效率上低於servlet。

10.ArrayList和Vector都是使用數組方式存儲數據,此數組元素數大於實際存儲的數據以便增加和插入元素,它們都允許直接按序號索引元素,但是插入元素要涉及數組元素移動等內存操作,所以索引數據快而插入數據慢,Vector由於使用了synchronized方法(線程安全),通常性能上較ArrayList差,而LinkedList使用雙向鏈表實現存儲,按序號索引數據需要進行前向或後向遍歷,但是插入數據時只需要記錄本項的前後項即可,所以插入速度較快。

② 面試java一般問到數據結構的知識有哪些。

看你面的是什麼公司了 單純web的話 一般不會問 因為基本用不到這些東西 頂多就是各種排序

做應用的話 那就多了吧 各種排序 各種實現

總之 排序還是很重要的 最起碼把名記住 讓你寫個冒泡 這個必須得會。。。

我感覺這樣的問題也有可能遇上:怎麼在java中實現隊列出隊進隊的操作(或者的棧的進棧和出棧)

③ java面試題:將一個20G的數據,存入一個運行2G的電腦里,每個數據佔一行,怎麼去重

這題考的是大數據去重,數據量大於內存,即無法直接在內存中去重,那麼有兩個方案:
1、內存外去重
也就是將數據存入資料庫,然後利用資料庫進行排序並去重。
優缺點:
1)優點:簡單直接
2)缺點:消耗大
2、演算法去重
題目中說明是20G數據,假設每行數據是1k,則數據行數是20M(如果每行數據是512位元組,則數據行數是40M),可使用MD5對每行數據進行映射,獲得16位元組映射嗎,即總共需要內存空間320M(或640M),滿足內存內去重的需求。
優缺點:
1)優點:在內存內進行處理,速度明顯比內存為要快。
2)缺點:需要進行額外的編碼,程序復雜度和效率要求較高。

④ java基礎面試題有哪些

下面是10道java基礎面試題,後附答案

1.什麼是 Java 虛擬機?為什麼 Java 被稱作是「平台無關的編程語言」?

Java 虛擬機是一個可以執行 Java 位元組碼的虛擬機進程。Java 源文件被編譯成能被 Java 虛擬機執行的位元組碼文件。

Java 被設計成允許應用程序可以運行在任意的平台,而不需要程序員為每一個平台單獨重寫或者是重新編譯。Java 虛擬機讓這個變為可能,因為它知道底層硬體平台的指令長度和其他特性。

2.「static」關鍵字是什麼意思?Java 中是否可以覆蓋(override)一個 private 或者是static 的方法?

「static」關鍵字表明一個成員變數或者是成員方法可以在沒有所屬的類的實例變數的情況下被訪問。

Java 中 static 方法不能被覆蓋,因為方法覆蓋是基於運行時動態綁定的,而 static 方法是編譯時靜態綁定的。static 方法跟類的任何實例都不相關,所以概念上不適用。

3.JDK 和 JRE 的區別是什麼?

Java 運行時環境(JRE)是將要執行 Java 程序的 Java 虛擬機。它同時也包含了執行 applet 需要的瀏覽器插件。Java 開發工具包 (JDK)是完整的 Java 軟體開發包,包含了 JRE,編譯器和其他的工具(比如:JavaDoc,Java 調試器),可以讓開發者開發、編譯、執行 Java 應用程序。

4.是否可以在 static 環境中訪問非 static 變數?

static 變數在 Java 中是屬於類的,它在所有的實例中的值是一樣的。當類被 Java 虛擬機載入的時候,會對 static 變數進行初始化。如果你的代碼嘗試不用實例來訪問非 static 的變數,編譯器會報錯,因為這些變數還沒有被創建出來,還沒有跟任何實例關聯上。

5.Java 支持的數據類型有哪些?什麼是自動拆裝箱?

Java 語言支持的 8 中基本數據類型是:

byte

short

int

long

float

double

boolean

char

自動裝箱是 Java 編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把 int 轉化成 Integer,double 轉化成 double,等等。反之就是自動拆箱。

6.Java 支持多繼承么?

不支持,Java 不支持多繼承。每個類都只能繼承一個類,但是可以實現多個介面。

7.Java 中,什麼是構造函數?什麼是構造函數重載?什麼是復制構造函數?

當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,Java 編譯器會為這個類創建一個默認的構造函數。

Java 中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。

Java 不支持像 C++中那樣的復制構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java 不會創建默認的復制構造函數。

8.Java 中的方法覆蓋(Overriding)和方法重載(Overloading)是什麼意思?

Java 中的方法重載發生在同一個類裡面兩個或者是多個方法的方法名相同但是參數不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。

9.介面和抽象類的區別是什麼?

Java 提供和支持創建抽象類和介面。它們的實現有共同點,不同點在於:

介面中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。

類可以實現很多個介面,但是只能繼承一個抽象類

類如果要實現一個介面,它必須要實現介面聲明的所有方法。但是,類可以不實現抽象類聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。

抽象類可以在不提供介面方法實現的情況下實現介面。

Java 介面中聲明的變數默認都是 final 的。抽象類可以包含非 final 的變數。

Java 介面中的成員函數默認是 public 的。抽象類的成員函數可以是 private, protected 或者是 public。

介面是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含 main 方法的話是可以被調用的。

10.什麼是值傳遞和引用傳遞?

對象被值傳遞,意味著傳遞了對象的一個副本。因此,就算是改變了對象副本,也不會影響源對象的值。

對象被引用傳遞,意味著傳遞的並不是實際的對象,而是對象的引用。因此,外部對引用對象所做的改變會反映到所有的對象上。

最後祝你面試順利!

⑤ 對於一般的java方向的面試,在資料庫這塊主要考的是哪些,求重點!

你幾年經驗了?
如果你面的項目用ORM框架的話,大概會考你一些實際配置層面的操作,對於緩存的理解,實體關系比如一對多多對多多對一之類的應用范疇,那個實體來維護update操作。

然後你還應該看下事務,事務隔離級別啊,事務分段式提交具體含義,這是但凡涉及資料庫就肯定會用到的知識,跟語言無關。對了還有XA。

然後就是一些設計具體資料庫的知識了,根據你的職位不同可能要求也不同,會有比如錶行列轉換,優化一條sql語句,描述一下執行計劃,join和子查詢哪個效率高等等,或者是考你一個應用場景,大概會用到設計一張實體屬性表之類的。

面試時間緊的話,你要根據那個職位做取捨。筆試題一般都多表更新,聯合查詢之類的。
祝你好運

⑥ Java面試筆試,數據結構和演算法考到什麼程度

你說的那個數據結構不一定考的。
Java面試就那麼點東西,各個公司也不一樣。
有的分筆試和機試。這些公司想看看實際面試人員的能力,節省了以後的時候。
筆試中,無非就是一些概念性的東西巴了。
比如:jsp是servlet嗎?
servlet的生存周期;還有一些面向對象的知識。這些平常用心的話都沒問題,即使臨陣磨槍也行。
那麼機試就的要看你自己的能力了,對框架的屬性程度。還有就是在也不能常見的對數據
庫的CRUD也就是增刪改查操作。機試都好這口。
其實面試如果也沒筆試機試那麼就問幾道題的話,如果是技術人,幾道題下來就知道你的底子了,在問些邏輯上的也就知道要你還是不要你了。
在有你要對一些資料庫知識了解一些。
做java的
oracle
得達到掌握
sql
server
了解就行
基本語法啥的就可以了
mysql
這個也得達到掌握
別的就不要會用到

⑦ 面試JAVA程序員時會被問些關於資料庫的哪方面內容

你好 yxif
如果是筆試的話一般會考些多表查詢,統計,分頁等,也可能在要求你完成某項功能時一起完成資料庫操作。
面試的話,資料庫一些常見概念,如存儲過程與函數的區別,什麼是觸發器、事務等,其次就是資料庫優化方面,若是應聘java EE方向的話,也會涉及到連接池、JDBC等。
部分公司會單純從資料庫角度出發,不會與JAVA相關。所以你應該盡可能去了解多一些。
你可以去網上搜集一些關於資料庫面試的資料,把常見的概念搞清楚,一些優化或運用熟悉下。
最後,祝你求職成功!

⑧ java面試時的一個數據結構問題

importjava.util.Random;

publicclassShuiji{

String[]result;

intindex=0;

Randomran=newRandom();

publicShuiji(){

result=newString[100];

getResult();

for(inti=0;i<result.length;i++){

if(i%10==9){

System.out.println(""+result[i]+",");

}else{

System.out.print(""+result[i]+",");

}

}

}

publicstaticvoidmain(String[]args){

newShuiji();

}

publicvoidgetResult(){

for(inti=0;i<result.length;i++){

StringaddValue=getString();

if(containsValue(addValue)==true){

i--;

}else{

result[i]=addValue;

index++;

}

}

}

publicbooleancontainsValue(StringpValue){

booleancont=false;

for(inti=0;i<index;i++){

if(result[i].equals(pValue)){

cont=true;

break;

}

}

returncont;

}

publicStringgetString(){

intfirst=ran.nextInt(36);

StringBuffersb=newStringBuffer();

if(first<10){

sb.append((char)(48+first));

}else{

sb.append((char)(87+first));

}

intsecond=ran.nextInt(36);

if(second<10){

sb.append((char)(48+second));

}else{

sb.append((char)(87+second));

}

returnsb.toString();

}

}

我也不知道這種演算法是不是夠簡單,可以參考一下。

⑨ 大數據分析師面試必備:java與mysql解析

【導讀】作為大數據工程師,其必須要掌握的基礎知識就是java與mysql的關系、交互和連接,作為基礎,也是面試考官經常會考的內容,為了幫助大家都能順利通過考試,今天小編就來和大家嘮一嘮java與mysql的關系、交互和連接,好了,開始今天的內容大數據分析師面試必備:java與mysql解析。

1. SQL語言四大類:

DQL 數據查詢語言 select

DML 數據操作語言 insert、update、delete

DDL 數據界說語言 create、alter

DCL 數據控制語言 grant許可權

2. mysql資料庫中的decimal類型(是數值型,不能存放字元串):

舉例:decimal(18,0) 常用於身份證號碼,但是帶x的不可以。

舉例:decimal(5,2)

狀況一:假設小數點前面是3位,後邊是2位,正常狀況。

狀況二:5指的是小數點前後不能超過5位,小數點後有必要是2位。

3. mysql中InnoDB和MyISAM引擎的差異:

innodb支撐:事務和主外鍵

myisam不支撐:事務和主外鍵

4. 【不需要背誦,選擇題考點】向mysql中,a向表中添加數據的幾種寫法,題目:id int 主鍵自增,name varchar(11)
不為空。

5. 操作mysql資料庫表有兩種方式,第一種:點八點吧;第二種:寫代碼。【不需要背誦,只需要了解,考試選擇題會出】

6. 在Java中,簡述面向對象三大特徵。

7. 在Java中,常用關鍵字:

1. 定義類的關鍵字是什麼? class

2. 繼承的關鍵字是什麼? extends

3. 定義介面的關鍵字是什麼? interface

4. 實現介面的關鍵字是什麼? implements

5. 抽象類的關鍵字是什麼? abstract

8. 在Java中,抽象類和介面的區別:

1. 抽象類中可以包含普通方法和抽象方法,介面中只能包含抽象方法

2. 抽象類中可以有構造方法,介面中沒有構造方法

3. 抽象類只能單繼承,可以實現多個介面

9. Java介面中有哪些成員?

1. 構造方法,沒有

2. 常量,默認訪問修飾符public static final,沒有變數

3. 抽象方法,默認訪問修飾符public abstract

10. 在Java中,抽象類和抽象方法的關系:

1. 抽象類中可以包含普通方法和抽象方法,抽象方法一定存在抽象類中。

2. 子類繼承抽象父類,必須實現|重寫抽象方法,除非子類也是抽象類。

3. 【判斷題】抽象類中必須包含抽象方法?【錯誤×】

4. 【判斷題】抽象方法一定存在抽象類中?【正確√】

11. Java重載的特點:

1. 在同一個類中

2. 方法名相同

3. 參數列表(個數、類型、順序)不同

4. 與返回值類型和訪問修飾符無關

12. Java重寫的特點:

1. 在父子類中

2. 方法名相同

3. 參數列表相同

4. 返回值類型相同,或是其子類

5. 訪問修飾符相同,或不能嚴於父類

13. 列舉幾種Java實現多態的形式:

1. 繼承的存在

2. 父類引用指向子類對象 | 向上轉型

3. 父類作為方法的返回值類型,父類作為方法的參數

14. Java介面的特性:單根性和傳遞性

15. 在Java中,throws和throw的區別:

1. throws 聲明異常,用在定義方法小括弧的後面

2. throw 拋出異常,寫在方法體內

以上就是小編今天給大家整理發送的關於大數據分析師面試必備:java與mysql解析的相關內容,希望對各位考生有所幫助,想知道更多關於數據分析師的基本要求有哪些,關注小編持續更新數據分析師崗位解析。

⑩ 求JAVA面試關於數據查詢答案

思路是b表和c表查出每個單號所用的總價格,然後和a表關聯,難點是b表和c表怎樣得到每個單號所用的總價格,在如下sql中的括弧內,查詢語句如下:

SELECTa.a_username,
bc.totalprice
FROMaa
LEFTJOIN
(SELECTb.b_no,
SUM(b.b_num*c.c_price)totalprice
FROMbb
LEFTJOINcc
ONb.b_goods=c.c_goods
GROUPBYb.b_no
)bcONa.a_no=bc.b_no;


附上測試用的建表語句及數據:

createtablea(a_idnumber,a_usernamevarchar2(24),a_novarchar2(24));
createtableb(b_novarchar2(24),b_goodsvarchar2(24),b_numnumber);
createtablec(c_goodsvarchar2(24),c_pricenumber);

insertintoavalues(001,'2s','01a');
insertintoavalues(002,'ls','02b');
insertintoavalues(003,'ww','03c');
insertintobvalues('01a','Aa',5);
insertintobvalues('02b','Aa',1);
insertintobvalues('01a','Bb',2);
insertintobvalues('03c','Cc',4);
insertintobvalues('03c','Bb',3);
insertintocvalues('Aa',11);
insertintocvalues('Bb',20);
insertintocvalues('Cc',7);
熱點內容
asm源碼編譯 發布:2025-01-17 03:54:24 瀏覽:287
如何配置svi介面的ip地址 發布:2025-01-17 03:48:09 瀏覽:44
微軟怎麼解壓縮文件 發布:2025-01-17 03:43:06 瀏覽:203
有沒有手機可以用的java編譯器 發布:2025-01-17 03:38:56 瀏覽:542
手把手教你學c語言版 發布:2025-01-17 03:38:52 瀏覽:781
最優化遺傳演算法 發布:2025-01-17 03:35:24 瀏覽:547
四代飛度家用需要加裝哪些配置 發布:2025-01-17 03:34:28 瀏覽:877
安卓手機貓和老鼠怎麼換號 發布:2025-01-17 03:23:58 瀏覽:469
安卓系統怎麼下蝙蝠 發布:2025-01-17 03:20:07 瀏覽:19
加密解密文件 發布:2025-01-17 03:16:32 瀏覽:83