1. 程式人生 > >2017最新java工程師面試筆試題集錦(三)

2017最新java工程師面試筆試題集錦(三)

找工作有一段時間啦,走了不少彎路;特此提醒,基礎很重要,筆試題是開啟大門的鑰匙;機會雖然很多,但一定要牢牢把握住每一次;擁有選擇的權利,不論是心情還是未來都將是無怨無悔的!

Struts只是一個MVC框架(Framework),用於快速開發Java Web應用。Struts實現的重點在C(Controller),包括ActionServlet/RequestProcessor和我們定製的Action,也為V(View)提供了一系列定製標籤(Custom Tag)。但Struts幾乎沒有涉及M(Model),所以Struts可以採用JAVA實現的任何形式的商業邏輯。

  Spring是一個輕型容器(light-weight container),其核心是Bean工廠(Bean Factory),用以構造我們所需要的M(Model)。在此基礎之上,Spring提供了AOP(Aspect-Oriented Programming, 面向層面的程式設計)的實現,用它來提供非管理環境下申明方式的事務、安全等服務;對Bean工廠的擴充套件ApplicationContext更加方便我們實現J2EE的應用;DAO/ORM的實現方便我們進行資料庫的開發;Web MVC和Spring Web提供了Java Web應用的框架或與其他流行的Web框架進行整合。

Hibernate是一個開放原始碼的物件關係對映框架,它對JDBC進行了非常輕量級的物件封裝,它將POJO與資料庫表建立對映關係,是一個全自動的orm框架,hibernate可以自動生成SQL語句,自動執行,使得Java程式設計師可以隨心所欲的使用物件程式設計思維來操縱資料庫。 Hibernate可以應用在任何使用JDBC的場合,既可以在Java的客戶端程式使用,也可以在Servlet/JSP的Web應用中使用,最具革命意義的是,Hibernate可以在應用EJB的J2EE架構中取代CMP,完成資料持久化的重任。
Hibernate的核心API一共有6個,分別為:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通過這些介面,可以對持久化物件進行存取、事務控制。

 java的所有類的根類java.lang.Object


Nginx是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器;特點是佔有記憶體少,併發能力強;
    [

[email protected] home]#tar zxvf nginx-0.7.65.tar.gz    
    [[email protected] home]#cd nginx-0.7.65    
    [[email protected]]#./configure \    
    --with-http_stub_status_module  --prefix=/opt/nginx    
    [[email protected] nginx-0.7.65]#make    
    [[email protected] nginx-0.7.65]#make install


linux基本shell命令:
ls:列出檔案; cp a b複製 ; cat 檔案 檢視; touch a 建立 ;rm -i a 提示刪除a
mkdir b 建立目錄;rmdir ; echo/cat 輸出或新增(echo "ni hao" >> a.txt);
mv a b移動或重新命名; cd ..返回; ls -la | grep a.txt搜尋檔案;
rz/sz上傳下載;head/tail顯示首尾行;pwd當前目錄 ;file a檢視檔案型別;
more/less:分屏顯示; uniq a刪除重複行; wc -lwc a 顯示檔案行數/單詞數/字元數
locate 檔名/關鍵字:查詢路徑 ;gzip [-vd9] /gunzip [-v] a 壓縮/解壓縮;
whoami/hostname使用者/主機名; cal 日曆;date;chmod ;

chmod +rwx hello ; gcc -o hello hello.c  ;  ./hello
java 類名.class ; java 類名 ; cat IODemo.log ;


1.資料夾名 init (本地倉庫初始化)
   git status(檢視倉庫所新增的檔案)
   git checkout -- 1.txt返回上一狀態

2.git add 檔名

3.git commit -m '說明'

4.git remote add origin 地址

5.git push -u origin master


   與書中的索引一樣,資料庫中的索引使您可以快速找到表或索引檢視中的特定資訊。索引包含從表或檢視中一個或多個列生成的鍵,以及對映到指定資料的儲存位置的指標。通過建立設計良好的索引以支援查詢,可以顯著提高資料庫查詢和應用程式的效能。索引可以減少為返回查詢結果集而必須讀取的資料量。索引還可以強制表中的行具有唯一性,從而確保表資料的資料完整性。
資料庫索引好比是一本書後的索引,能加快資料庫的查詢速度。
例如這樣一個查詢:SELECT * FROM TABLE1 WHERE ID=44。如果沒有索引,必須遍歷整個表,直到ID等於44的這一行被找到為止;有了索引之後(必須是在ID這一列上建立的索引),直接在索引裡面找44,就可以得知這一行的位置,也就是找到了這一行。可見,索引是用來定位的。
索引分為聚簇索引和非聚簇索引兩種,聚簇索引是按照資料存放的物理位置為順序的,而非聚簇索引就不一樣了;聚簇索引能提高多行檢索的速度,而非聚簇索引對於單行的檢索很快。

SELECT * FROM mytable WHERE category_id=1 AND user_id=2;
CREATE INDEX mytable_categoryid_userid ON mytable (category_id,user_id);表名_欄位1名_欄位2名
alter table 'mytable' add index index_name('列名1','列名');新增索引

對查詢進行優化,應儘量避免全表掃描,首先應考慮在 where 及 order by涉及的列上建立索  ;

儘可能的使用 varchar/nvarchar 代替 char/nchar,因為首先變長欄位儲存空間小,可以節省儲存空間,其次對於查詢來說,在一個相對較小的欄位內搜尋效率顯然要高些;

資料庫優化:建立索引,配置快取,slow_query_log慢查詢日誌分析,分庫分表,子查詢優化,sql優化;



實現多執行緒:

1)繼承Thread類實現多執行緒
Thread本質上也是實現了Runnable介面的一個例項,它代表一個執行緒的例項,並且啟動執行緒的唯一方法就是通過Thread類的start()例項方法。start()方法是一個native方法,它將啟動一個新執行緒,並執行run()方法。這種方式實現多執行緒很簡單,通過自己的類直接extend Thread,並複寫run()方法,就可以啟動新執行緒並執行自己定義的run()方法。例如:
public class MyThread extends Thread {
  public void run() {
   System.out.println("MyThread.run()");
  }
}
在合適的地方啟動執行緒如下:
MyThread myThread1 = new MyThread();
myThread1.start();

2)實現Runnable介面方式實現多執行緒
如果自己的類已經extends另一個類,就無法直接extends Thread,此時,必須實現一個Runnable介面,如下:
public class MyThread extends OtherClass implements Runnable {
  public void run() {
   System.out.println("MyThread.run()");
  }
}
為了啟動MyThread,需要首先例項化一個Thread,並傳入自己的MyThread例項:
MyThread myThread = new MyThread();
Thread thread = new Thread(myThread);
thread.start();


構造方法和例項方法的區別:
一、主要的區別在於三個方面:修飾符、返回值、命名
1、和例項方法一樣,構造器可以有任何訪問的修飾符,public、private、protected或者沒有修飾符   ,都可以對構造方法進行修飾。不同於例項方法的是構造方法不能有任何非訪問性質的修飾符修飾,例如static、final、synchronized、abstract等都不能修飾構造方法。
2、返回型別是非常重要的,例項方法可以返回任何型別的值或者是無返回值(void),而構造方法是沒有返回型別的,void也不行。
3、至於命名就是構造方法與類名相同,當然了例項方法也可以與類名相同,但是習慣上我們為例項方法命名的時候通常是小寫的,另一方面也是與構造方法區分開。
4、java語言中規定每個類至少要有一個構造方法(可以有多個),為了保證這一點,當用戶沒有給java類定義明確的構造方法的時候,java為我們提供了一個預設的構造方法,這個構造方法沒有引數,修飾符是public並且方法體為空。


String []a = new String[10];則:a[0]~a[9] = null; a.length = 10

如果是int []a = new int[10];則:a[0]~a[9] = 0;  a.length = 10


執行緒分為守護執行緒和非守護執行緒(即使用者執行緒)。
只要當前JVM例項中尚存在任何一個非守護執行緒沒有結束,守護執行緒就全部工作;只有當最後一個非守護執行緒結束時,守護執行緒隨著JVM一同結束工作。守護執行緒最典型的應用就是 GC (垃圾回收器)


11. 存在使i + 1 < i的數嗎()答案:存在

解析:如果i為int型,那麼當i為int能表示的最大整數時,i+1就溢位變成負數了,此時不就<i了嗎。

擴充套件:存在使i > j || i <= j不成立的數嗎()答案:存在

解析:比如Double.NaN或Float.NaN


Map與Set的本質區別有:Set不能包含重複的元素,最多有一個空值,繼承自Collection介面,底層是Map實現機制。Map不能包含重複的鍵,每個鍵最多對應一個對映的值,不能有空值鍵。
List 是連結串列(介面),是可以允許出現重複值的。它的具體實現類:ArrayList和LinkedList
set  是集合(介面),不允許出現重複值。它的具體實現類HashSet
java提供的迭代器介面進行java collection的遍歷。Iterator模式是用於遍歷類的標準訪問方法


java中的訪問許可權控制符有四個.default預設為friendly:

作用域         當前類          同一package           子孫類                其他package
public           √                  √                √                       √
protected        √                  √                 √                      ×
friendly         √                  √                 ×                       ×
private          √                  ×                 ×                       ×


Math.floor(-4.7)=-5.0取小;Math.round(-4.7)=-5.0四捨五入;Math.ceil(-4.7)=-4.0取大;



==是比較地址,equals比較內容
Java中equals和==的區別

java中的資料型別,可分為兩類:
1.基本資料型別,也稱原始資料型別。byte,short,char,int,long,float,double,boolean
他們之間的比較,應用雙等號(==),比較的是他們的值。
2.複合資料型別(類)
當他們用(==)進行比較的時候,比較的是他們在記憶體中的存放地址,所以,除非是同一個new出來的物件,他們的比較後的結果為true,否則比較後結果為false。 JAVA當中所有的類都是繼承於Object這個基類的,在Object中的基類中定義了一個equals的方法,這個方法的初始行為是比較物件的記憶體地 址,但在一些類庫當中這個方法被覆蓋掉了,如String,Integer,Date在這些類當中equals有其自身的實現,而不再是比較類在堆記憶體中的存放地址了。
對於複合資料型別之間進行equals比較,在沒有覆寫equals方法的情況下,他們之間的比較還是基於他們在記憶體中的存放位置的地址值的,因為Object的equals方法也是用雙等號(==)進行比較的,所以比較後的結果跟雙等號(==)的結果相同。

相關推薦

2017最新java工程師面試試題集錦()

找工作有一段時間啦,走了不少彎路;特此提醒,基礎很重要,筆試題是開啟大門的鑰匙;機會雖然很多,但一定要牢牢把握住每一次;擁有選擇的權利,不論是心情還是未來都將是無怨無悔的! Struts只是一個MVC框架(Framework),用於快速開發Java Web應用。Strut

2017最新java工程師面試試題集錦(一)

找工作有一段時間啦,走了不少彎路;特此提醒,基礎很重要,筆試題是開啟大門的鑰匙;機會雖然很多,但一定要牢牢把握住每一次;擁有選擇的權利,不論是心情還是未來都將是無怨無悔的! struts2: Struts2是一個基於MVC設計模式的Web應用框

新浪PHP開發工程師面試試題

新浪筆試面試 php面試筆試 找實習找的心累,於是在學校bbs上找了一個新浪的散招。先做了一份筆試題,題目如下。1、列舉一下你知道的Unix信號,並說明其用途2、給你一個ip地址,寫出其無符號32位的表示法3、給你一些http的東西post請求,數據,cookie,URL,寫一個http頭。4、簡述一

今日頭條2017後端工程師實習生試題 - 題解

進制 true 字符串 從右到左 試題 imp 最終 create head 今日頭條2017後端工程師實習生筆試題 最大映射 題意 給n(不超過50)個字符串,每個字符串(長度不超過12)由A-J的大寫字符組成。要求將每個字符映射為0-9,使得每個字符串可以看作一個整數(

69道Java Spring 面試&試題

目錄 Spring 概述 依賴注入 Spring beans Spring註解 Spring資料訪問 Spring面向切面程式設計(AOP) Spring MVC Spring 概述 1. 什麼是spring? Spring 是個java企業級應用的開源開發

分享18道Java基礎面試試題面試實拍)

上圖來自Java技術棧微信群裡的群友分享,看起來比較基礎,但不一定人人都答得上來。圖片比較模糊,小編把題目進行了文字化。1.你最常上的兩個技術站和最常使用的兩個app分別進什麼?主要解決你什麼需求?2.請簡述http協議中get請求和post請求的區別.3.請簡述sessio

運維工程師面試試題總結(二)

1、Linux啟動大致過程? 1)POST:通電自檢 2)BIOS:BOIS自檢,載入硬碟 3)讀取MBR,進行MBR引導 4)grub引導選單 5)載入核心 Kernel(ramdisk) 6)啟動init程序,依據inittab檔案設定執行級別 7)init程序,執行rc.sysin

JAVA工程師面試常見問題集錦

https://www.cnblogs.com/wwmiert/p/9451546.html 集錦一:  一、面試題基礎總結 1、 JVM結構原理、GC工作機制詳解 答:具體參照:JVM結構、GC工作機制詳解     ,說到GC,記住兩點:1、

Java工程師常見面試題集錦(二)網際網路人必看!(附答案及視訊教程,持續更新)

大牛也怕面試題,尤其是基礎題,在面試中如果出現一兩題回答不準確很有可能你就被拒之門外了。CSDN學院年終傾情奉獻,海量面試題(附答案)免費分享,幫助大家順利過關。 本週繼續更新10道面試題。 Java工程師常見面試題集錦(一)網際網路人必看! https://blog.csdn

Java工程師常見面試題集錦)網際網路人必看!(附答案及視訊教程,持續更新!)

不積跬步,無以至千里;不積小流,無以成江海。  本期繼續更新10道Java面試題:涉及IO流,多執行緒,類,MySQL資料庫等知識點。 Java工程師常見面試題集錦(一)網際網路人必看! https://blog.csdn.net/CSDNedu/article/de

2017年終巨獻阿裏、騰訊最新Java程序員面試題,準備好進BAT了嗎

電商 als 下載 坐標 序列化 equals 比較 通過 研究 Java基礎 進程和線程的區別; Java的並發、多線程、線程模型; 什麽是線程池,如何使用? 數據一致性如何保證;Synchronized關鍵字,類鎖,方法鎖,重入鎖; Java中實現多態的機制是什麽; 如

java面試-試題總結

一、java和框架 -4.菱形的列印 /** * Created by david on 2018/8/28 * 列印菱形 */ public class Test1 { public static void main(String[] args) { int

java面試試題彙總(陸續補充)

最近自己也在準備面試的一方面東西,遇到一些不太熟悉的地方我會陸續補充上來。 1.選擇排序和氣泡排序 /** * 選擇排序 * @param arr * @return */ public static int[] ChooseSor

Java軟體工程師面試常見問題集錦之一

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

透露一下Java軟體工程師面試常見問題集錦之一

1、面向物件的特徵有哪些方面 1.抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不用部分細節。抽象包括兩個方面,一是過程抽象,二是資料抽象。 2.繼承:繼承是一種聯結類的層次模型,並且允許和鼓勵類的重用,它提

透露一下Java軟件工程師面試常見問題集錦之一

contain oge 移動 我們 生命周期 tor string類 行為 servlet 1、面向對象的特征有哪些方面 1.抽象:抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地註意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫

科大訊飛Java面試試題

單選題 1、下列關於繼承的描述錯誤的是(  ) A.  在Java中允許定義一個父類的引用,指向子類物件 B.  在Java中繼承是通過extends關鍵字來描述的,而且只允許繼承自一個直接父類 C.  在Java中抽象類之間也允許出現繼承關係 D.  在Jav

【經典】《Java170道面試試題全面含答案》涉及java/資料庫/Spring框架/JVM/資料結構演算法/設計模式相關

《Java170道面試筆試題全集》 -更新版-8.302018/4/7 日常修復2017/12/28 更新文章1、新增二級目錄2、對部分問題進行了補充9/24緊急修改以下問題(存在嚴重錯誤)問題3;完善問題10、11問題目錄:1、面向物件的特徵有哪些方面?2、訪問修飾符pub

Java面試試題大彙總(最全+詳細答案)

宣告:有人說, 有些面試題很變態,個人認為其實是因為我們基礎不紮實或者沒有深入。本篇文章來自一位很資深的前輩對於最近java面試題目所做的總結歸納,有170道題目 ,知識面很廣 ,而且這位前輩對於每個題都自己測試給出了答案 ,如果你對某個題有疑問或者不明白,可以電腦端登入

java面試試題大彙總

java面試筆試題大彙總  JAVA相關基礎知識  1、面向物件的特徵有哪些方面  1.抽象:  抽象就是忽略一個主題中與當前目標無關的那些方面,以便更充分地注意與當前目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫時不