2020年java軟件工程師面試基本題_第1頁
2020年java軟件工程師面試基本題_第2頁
2020年java軟件工程師面試基本題_第3頁
2020年java軟件工程師面試基本題_第4頁
2020年java軟件工程師面試基本題_第5頁
已閱讀5頁,還剩28頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

2020年java軟件工程師面試基本題

在項(xiàng)目中主要遇到的困難?

講一下對Springmvc的理解?

SpringMvc是基于過濾器對servlet進(jìn)行了封裝

的一個框架,;

SpringMvc工作時主要是通過

DispatcherServlet管理接收到的請求并進(jìn)行處

理。

Spring用的是注釋還是配置文件

注釋

講一下Spring常用的注解

autowrite

Resource

Qualifier

repository

service

controller

requestMapper

responseBody

requestParam

ModelAttribute

Scope

Session和cookie的區(qū)別?怎么動手清除cookie?

用代碼?

session打開瀏覽器創(chuàng)建的,每個瀏覽器對應(yīng)一

個session

cookie是在客戶端本地,不會隨著瀏覽器關(guān)閉

而消失

用戶能夠自己清除本地cookie,也能夠在程序

中使用代碼清除

“記住我”怎么實(shí)現(xiàn)?吧什么存到session?

使用cookie記住加密的賬號和密碼

怎么把MyBatis整合到spring?MyBatis的#和

$區(qū)別?

MyBatis最重要的配置是數(shù)據(jù)庫連接、

SqlSession的創(chuàng)建和sql映射文件

能夠?qū)ybatis的數(shù)據(jù)庫連接和SqlSession和

對sql映射文件的掃描配置到spring配置文件

mybatis中#能夠表示任何數(shù)據(jù)類型都能夠,$單

獨(dú)表示數(shù)字

Mybites支持延遲加碼嗎?原理是什么?

mybatis支持延遲加載

在查詢的時候不會加載出關(guān)聯(lián)表,但是需要用到

關(guān)聯(lián)表的時候,不需要再單獨(dú)寫查詢語句,

mybatis會自動查詢出需要的關(guān)聯(lián)表信息

多態(tài)的了解?Java支持多繼承嗎?

多態(tài)按字面的意思就是“多種狀態(tài)”。在面向?qū)?/p>

象語言中,接口的多種不同的實(shí)現(xiàn)方式即為多態(tài)

不支持

String和stringbuffer的區(qū)別?什么時候用

string,什么時候用stringbuffer?

String和StringBuffer的區(qū)別在于String的

內(nèi)容是不能夠修改的,而StringBuffer能夠被

修改,

String一旦被修改或者重新賦值,就會創(chuàng)建出

一個新的對象

Hashmap和hashtable的區(qū)別?Hashmap是有序還

是無序?

繼承的父類不同,hashtable繼承自Dictionary

類,HashMap繼承自AbstractMap類

HashTable線程安全,應(yīng)為它每個方法都加入了

Synchronize,而HashMap是線程不安全的

怎么保證Java的線程安全?Spring的I0C和

A0P?

使用Synchronized關(guān)鍵字,也能夠使用特殊變

量Volatile

IOC控制反轉(zhuǎn),就是將設(shè)計(jì)好的對象交給spring

容器來控制,對象內(nèi)獲取依賴對象的方式,由原

來的通過New來創(chuàng)建依賴對象,改變?yōu)?/p>

通過Spring容器來獲取依賴對象

AOP,面向切面編程,它是一種思想,而不是一

種實(shí)現(xiàn),Java對Aop的實(shí)現(xiàn)有兩種方式,F(xiàn)ilter

和代理模式,

Spring的A0P是通過JAVA的代理模式來實(shí)現(xiàn)的,

它是一種動態(tài)代理,以Spring的聲明式事務(wù)來

說,調(diào)用Service層的方法時,根據(jù)

原來Service層的方法和Spring中配置的事務(wù)

級別,來動態(tài)生成一個代理類,執(zhí)行代理類的代

碼而不是執(zhí)行原來Service層中的代碼

數(shù)據(jù)庫用的是什么?MySQL怎么創(chuàng)建或者自定義

函數(shù)?

mysql

delimiter//

createfunctionfunction_name(參數(shù)列表)

returns返回值類型

begin

方法內(nèi)部執(zhí)行的代碼

end//

觸發(fā)器用過沒有?怎么在一個存儲過程里面記住

一個日志?

觸發(fā)器沒有用過

游標(biāo)有用過嗎?MySQL怎么實(shí)現(xiàn)分頁的?如果一個

SQL語句orderby一個字段性能比較慢要怎么

做?常用的SQL優(yōu)化手段?

游標(biāo)沒用過

mysql使用limit關(guān)鍵字實(shí)現(xiàn)分頁

orderby性能慢能夠在orderby的字段建立索

前臺做的多不,JQuery有幾種選擇器?

九種

常用的是基本選擇器、層次選擇器

和"的區(qū)別?Html的代碼是從上往下執(zhí)

行區(qū)還是從下往上?

#是Id選擇器,.是類選擇器

HTML代碼是從上到下執(zhí)行的

有用過easyUI嗎?Ajax中post和get的區(qū)別?

EasyUI沒用過

get一般傳送一些簡單數(shù)據(jù),大小在1KB以下,

數(shù)據(jù)會追加到url中

post的傳送的數(shù)據(jù)量比get要大,因?yàn)樗褦?shù)

據(jù)作為HTTP消息的實(shí)體內(nèi)容發(fā)送給WEB服務(wù)器

圖片服務(wù)器?圖片后臺上傳的?圖片上傳怎么實(shí)

現(xiàn)?

圖片服務(wù)器怎么顯示嗎?是http的地址還是什

么?

直接寫Nginx的路徑,通過Nginx訪問圖片服務(wù)

你自己負(fù)責(zé)的是什么?推薦商品的表是怎么設(shè)計(jì)

的?

講一下springmvc?springmvc的核

心?springmvc做配制的時候,怎么配制?返回是

Json還是數(shù)據(jù)?

SpringMVC是一個基于MVC設(shè)計(jì)模式的框架,它

的核心是HandlerMapping,SpringMVC的配置很

簡單,只需要配置一個

InternalResourceViewResolver,解析邏輯視圖

名,,需要配置一個Servlet,配置SpringMVC

的攔截路徑,

有用到maven嗎?怎么在本地倉庫書寫一個架

包?Tomcat怎么部署,session的過期時間的優(yōu)

先級?消息隊(duì)列?了解過嗎?Spingboot有了解沒?

maven是用過的

一般來說,一個jar包要添加到項(xiàng)目中,是要添

加到專門管理jar包的父工程中,其它模塊直接

依賴父工程中的jar包就能夠了

tomcat的部署,tomcat是依賴于jdk的,部署

tomcat之前,首先要先安裝jkd,有了jdk,

tomcat直接部署和到電腦或服務(wù)器上就能夠了

程序中的配置>>tomcat的配置

講一下hibernate?hibernate和mybatis的最

大區(qū)別?性能上的區(qū)別?

hibernate是一個全自動化的orm實(shí)現(xiàn),內(nèi)部封

裝了jdbc操作和大量的sql語句

hibernate和mybatis最大的區(qū)別就是對orm的

實(shí)現(xiàn)一個是半自動化,一個是全自動化,

簡單來說就是mybatis需要編寫sql語句,所以

他的移植性比hibernate差,

如果換了一個數(shù)據(jù)庫,hibernate只需要將方言

修改一個,而mybatis基本上需要修改所有的

sql語句

講一下面向?qū)ο驩OP?什么是面向?qū)ο缶幊?Java

中的構(gòu)造函數(shù)?

面向?qū)ο笫腔谌f物皆對象這個哲學(xué)觀點(diǎn).把

一個對象抽象成類,具體上就是把一個對象的靜

態(tài)特征和動態(tài)特征抽象成屬性和方法

什么是構(gòu)造函數(shù)?什么是死鎖?JVM的垃圾回收機(jī)

制?

構(gòu)造函數(shù)就是在實(shí)例化對象的時候調(diào)用的方法

死鎖就是在程序運(yùn)行時,兩個或兩個以上的進(jìn)程

由于競爭資源或彼此通信造成的一種阻塞的現(xiàn)

jvm運(yùn)行時,堆用來存放對象實(shí)例和數(shù)組,垃圾

回收機(jī)制的主要作用就是自動釋放堆里面對象

實(shí)例所占用的內(nèi)存,

有引用指向?qū)ο蟮臅r候計(jì)數(shù)器會+1,不再被引用

的時候計(jì)數(shù)器-1,GC會標(biāo)記所有活著,也就是

計(jì)數(shù)器大于1的實(shí)例,將沒有被標(biāo)記的實(shí)例全部

回收,釋放內(nèi)存

抽象和封裝的不同點(diǎn)?怎么喚醒一個線程?儲存

過程用過嗎?怎么創(chuàng)建一個儲存過程?怎么建立

一下索引?oracle的優(yōu)化?在mybiets中怎么執(zhí)

行批量處理?為什么說Mybites是半自動化的

ORM的?與全自動化的區(qū)別?

抽象就是將類的特性提取出來,

而封裝是將類的屬性包裝起來,提供一套

get/set方法,供外界訪問,外界只需要知道

他的值是多少,而不需要知道他的其它信息

喚醒線程的話首先要講線程阻塞或休眠,能夠使

用suspend方法使線程進(jìn)入阻塞狀態(tài),resume()

方法能夠?qū)⒕€程從阻塞狀態(tài)喚醒

創(chuàng)建存儲過程

delimiter//

createprocedureprocedure_name(參數(shù)歹1J表)

begin

需要執(zhí)行的sql語句

end//

創(chuàng)建索引

createindexindexnameon

table_name(columnname);

oracle優(yōu)化:合理的使用索引、使用where代替

having、避免使用〃*〃進(jìn)行查詢、減少對數(shù)據(jù)庫

的訪問次數(shù)

批量處理能夠使用存儲過程

mybatis之所以是半自動化的orm實(shí)現(xiàn),是因?yàn)?/p>

他的sql語句需要開發(fā)人員自己編寫,

這導(dǎo)致了它跟全自動化的0rm實(shí)現(xiàn)比較起來,移

植性低,但是整體來說比較輕量級,在中小型項(xiàng)

目中,mybatis的性能會高過hibernate

12、Xml映射文件會寫一個dao接口和工作原理

是什么?

xml?是mybatis的映射文件嗎?

mybatis的映射文件提供了一個dao接口,接口

只提供方法的聲明,而沒有方法的實(shí)現(xiàn),映射文

件為接口中的方法提供實(shí)現(xiàn)

用戶發(fā)送請求到控制器,控制器調(diào)用業(yè)務(wù)處理,

業(yè)務(wù)處理調(diào)用dao層查詢數(shù)據(jù)庫,mybatis會在

初始化的時候提供將mybatis的所有sql語句解

析成mappedstatement對象

對象的id就是對應(yīng)接口中的方法名,業(yè)務(wù)層調(diào)

用dao層接口中的方法時,mybatis會根據(jù)方法

名也就是id來調(diào)用mappedstatement對象,執(zhí)

行sql語句

用過Javascript用ajax嗎?Ajax有什么參數(shù)?

一般用到什么?在項(xiàng)目中有沒有用到日志?Xml有

哪些解析技術(shù)?

ajax常用到的參數(shù)主要有:type、data、

datatype>success、error>url

日志是用的log4j

DOM、SAX

Nginx怎么配制的?配制到哪里?你了解反向代理

嗎?原理是什么?

Nginx的配置主要是配置它的配置文件中的

server

首先是端口listen

然后是urlserver_name

再來是location配置要讀取的文件路徑、url

真實(shí)路徑

Springmvc?Struts了解不?Struts和Springmvc

的區(qū)別?Websrvice了解嗎?

struts用過但是了解不深

struts是類級別的攔截,Springmvc是方法級別

的攔截

Springmvc中方法基本上是獨(dú)立的,每個方法獨(dú)

享一個request、response數(shù)據(jù)

struts方法雖然也是獨(dú)立的,但是方法之間是

共享一個request、response

講一下WebService的理解?JMS有了解嗎?講一

下?

WebService是一種跨語言、跨平臺的遠(yuǎn)程調(diào)用

技術(shù)。

WebService分為服務(wù)器端和客戶端

服務(wù)器端暴露出Service接口,客戶端調(diào)用

service接口得到想要的數(shù)據(jù)

JMS,Java消息服務(wù),JMS的客戶端能夠通過JMS

服務(wù)進(jìn)行異步消息傳輸

JMS有兩種消息模型,P2P點(diǎn)對點(diǎn)和PUB/SUB發(fā)

布訂閱

點(diǎn)對點(diǎn)的概念就是發(fā)送者發(fā)送一條消息到消息

隊(duì)列,接收者接受這條消息(消費(fèi)),接收者成

功接收消息之后需要向隊(duì)列應(yīng)答成功

Xml有什么解析技術(shù)?對面向編程的理解?什么是

對象?

使用DOM解析XML

使用SAX解析XML

string是最基本的數(shù)據(jù)類型嗎?Java中有哪幾

種基本數(shù)據(jù)類型?

String不是基本數(shù)據(jù)類型,String在Java中是

引用類型

Java中的基本類型有八種

char、boolean、byte、int>long>short>double>

float

String是什么數(shù)據(jù)類型?Int和integer的區(qū)別?

String是引用類型

int和Integer的區(qū)別就在于int是java的基

本數(shù)據(jù)類型是一個值類型,Integer是包裝類型,

是對int的包裝

構(gòu)造器能夠被重寫嗎?重寫和重載的區(qū)別?

構(gòu)造器不能被重寫,重寫和重載的去別在于

重寫:在子類在繼承父類的時候,繼承了父類的

方法,但有時候父類的方法需要做一些調(diào)整,這

時候我們能夠在子類中將父類的方法重寫一個

方法名相同,參數(shù)相同的方法

重載:重載指在同一個類中能夠有幾個同名的方

法,但是方法之間的參數(shù)是不同的

怎么創(chuàng)建儲存過程?講一下事務(wù)?為什么用到事

務(wù)?它的應(yīng)用場景?

創(chuàng)建存儲過程

createprocedureproc_name(params)

begin

sql

end

事務(wù)是指作為單個邏輯工作單元執(zhí)行的一系列

操作,要么完全地執(zhí)行,要么完全地不執(zhí)行

在有些業(yè)務(wù)中,比如電商項(xiàng)目的收款,收款的同

時,要將用戶的賬戶余額或銀行卡余額扣款,商

品的數(shù)量減少,改變訂單狀態(tài)等等操作,涉及到

的不止是一張表

一張以上的表如果同時修改的話,有可能會應(yīng)為

其中某一張表的操作出現(xiàn)錯誤,導(dǎo)致其它操作也

不能正常執(zhí)行。這時候就需要用到事務(wù)來管理這

個操作

數(shù)據(jù)庫mySQL常用函數(shù)?

count>avg>sum>max、min>year、month>day>

hour>

簡單說一下Java集合?集合排序?

集合就是一個放數(shù)據(jù)的容器,準(zhǔn)確的說是放數(shù)據(jù)

對象引用的容器。

Hashtable?Hashtale和hashmap哪個是線程安

全的?

hashtable線程是安全的

單點(diǎn)登陸怎么實(shí)現(xiàn)的?

單點(diǎn)登錄主要是實(shí)現(xiàn)在分布式系統(tǒng)中用戶只需

要在一個模塊登錄,登錄的信息會共享到所有的

模塊中

首先用戶登錄的話,要跳轉(zhuǎn)到sso模塊的登錄頁

面中,或者將登錄信息發(fā)送到sso中,如果用戶

信息正確,登錄成功,則將用戶信息存入redis

用redis來保存用戶信息,這時候要生成一段口

令,用來作為用戶信息保存在redis中的鍵,將

口令保存到cookie中,其它模塊只需要根據(jù)

cookie中的口令

來查詢redis中是否有這個用戶信息,就能夠判

斷出用戶是否登錄

消息隊(duì)列MQ有幾種模式?

點(diǎn)對點(diǎn)模式和發(fā)布/訂閱模式

分布式的理解?Dubbo

分布式就是將程序的模塊拆分出來,每個功能模

塊負(fù)責(zé)自己的事情,各個模塊之間通過

webservice服務(wù)來互相通信

dubbo是一個分布式服務(wù)框架

經(jīng)常使用的框架有哪些?

SSM框架

簡單說一下Springmvc實(shí)現(xiàn)邏輯?怎么走的?

首先用戶發(fā)送一個請求到DispatcherServlet

DispatcherServlet查找handlermapping找到

處理請求的controller

controller調(diào)用業(yè)務(wù)處理

處理完之后返回modelandview

DispatcherServlet查詢視圖解析器找到

modelandview指定是視圖

解析視圖,渲染視圖,返回結(jié)果

Redis有用到嗎?怎樣創(chuàng)建Redis?標(biāo)示redis創(chuàng)

建成功的圖形是什么?

在linux環(huán)境中,將redis的解壓包解壓縮

使用make命令編譯文件夾

單機(jī)版的redis就創(chuàng)建好了

圖形是redis是圖標(biāo),一個立體的圖標(biāo)

構(gòu)建maven有遇到什么問題?本地倉庫?下載報(bào)

錯怎么處理?

jar包的沖突

刪除之前下載的錯誤的jar包,重新下載,如果

還是有問題,能夠考慮換一個鏡像地址

前端主要用了JQuery?類選擇器;標(biāo)簽選擇器;

ID選擇器分別怎么用的?

類選擇器使用〃.〃+class的名稱

ID選擇器使用〃#〃+id的名稱

標(biāo)簽選擇器能夠直接根據(jù)標(biāo)簽的名稱來使用

數(shù)據(jù)庫主用要用什么?轉(zhuǎn)換日期用的是什么?

(MySQL中的)

說一下SQL性能的優(yōu)化?創(chuàng)建一個索引之后,在

查詢的時候什么情況下失效?

簡單說一下對MVC模式的理解?http協(xié)議請求的

方法里面有幾種形式?它們有什么區(qū)別?

除Tomcat沒有用過其它服務(wù)器?Tomcat配制服

務(wù)器怎么做的?

對ajax的理解?異步怎么設(shè)置成同步?需要增加

什么?

Jsp和servlet的區(qū)別?

在商家促銷中的限時搶購是怎么實(shí)現(xiàn)的?時間是

怎么控制的?怎么判斷這個商品是搶購商品?優(yōu)

惠券是怎么發(fā)給客戶的?項(xiàng)目有沒有手機(jī)端?商

品交易管理的投訴管理是怎么實(shí)現(xiàn)的?投訴管理

功能實(shí)現(xiàn)用了幾張表?投訴管理中怎么區(qū)別商家

和用戶發(fā)送信息的時間?這個功能模塊的思路?

有與物流集成嗎?

Solr全文搜索服務(wù)器有哪幾種?

除了Jquery用過其它的框架嗎?

解析XML的幾種形式?

Jsp的內(nèi)置對象?

在EL表中常用到哪些?Ifelse什么情況下使用?

Switchcase什么情況下使用?文件獲取有沒有

用過?

現(xiàn)在有現(xiàn)在有一個文件,你怎么把文件拿出來?

并且讀出文件里面的內(nèi)容?簡單說一下你的解析

思路

Java的設(shè)計(jì)模式有哪些?23種?說一下單例模式?

或者23種中常用的?

對Tomcat服務(wù)器的優(yōu)化?有哪幾種方式?

Java集合類框架有哪些集合?往集合里添加元素

那個不能添加重復(fù)的元素?

Arraylist和linkedlist的區(qū)別?你比較常用的

數(shù)據(jù)庫的函數(shù)中對字符操作的函數(shù)有那些?

Oracle數(shù)據(jù)庫連接查詢有哪幾種方式?

支付的話,主要實(shí)現(xiàn)了什么?支付寶、微信、銀

聯(lián)?怎么調(diào)用接口?怎么傳值?

Springmvc的核心?AOP、I0C的概念和理解?

Spring底層架構(gòu)是用的哪種設(shè)置模式?不用new

怎么實(shí)例化一個實(shí)例?加載的過程是什么樣的?

商城里高并發(fā)怎么處理的?兩個人同時占一個商

品怎么處理?

簡單說一下你對事務(wù)的理解?

用過Spring的定時器嗎?攔截器和過濾器

的區(qū)別?簡單說一下你對MVC的理解?

Java的JDK更新到什么版本?JDK和J2ee的區(qū)

別?

Static的環(huán)境下能訪問非Static變量嗎?

Java的基本類型中哪些是值傳遞?哪些是引用傳

遞?值傳遞和引用傳遞的區(qū)別?

多線程有沒有用過?創(chuàng)建多線程有幾種方式?

線程在執(zhí)行的時候有哪幾種狀態(tài)?內(nèi)連線、左連

線、右連線的區(qū)別?

Unionon和union有用過嗎?

數(shù)據(jù)庫oracle中的分頁怎么實(shí)現(xiàn)的?怎么創(chuàng)建

視圖?視圖和表的區(qū)別?數(shù)據(jù)庫刪掉表中的內(nèi)容

有幾種方式?

Delete和truncate的區(qū)別?哪個刪除之后能夠

恢復(fù)?用什么恢復(fù)?有

現(xiàn)在有一個需求,有一些商家信息是錯誤的。有

一個excel表格,里面有商家的正確信息,要把

這個表格里面的數(shù)據(jù)與需求中相匹配,怎么實(shí)現(xiàn)?

(直接用SQL操作)

HashMap和Hashtable都實(shí)現(xiàn)了Map接口,但決

定用哪一個之前先要弄清楚它們之間的分

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論