java培訓(xùn)有哪些?
Java核心基礎(chǔ):
Java入門語法、流程控制結(jié)構(gòu)、面向?qū)ο蠛诵?、異常體系、集合與泛型、反射體系、線程機制、IO流、網(wǎng)絡(luò)編程、設(shè)計模式、JDK8-15新特性、綜合項目:EMS管理系統(tǒng)/客戶管理系統(tǒng)/考試管理系統(tǒng)/銀行管理系統(tǒng)
數(shù)據(jù)庫關(guān)鍵技術(shù):
DB、DBMS、SQL的理解、常見數(shù)據(jù)庫關(guān)系系統(tǒng)的對比和認(rèn)識、DML、DQL、DCL、DDL、數(shù)據(jù)的增刪改查、數(shù)據(jù)庫和表的管理、DQL數(shù)據(jù)查詢語言、分組查詢、子查詢、join查詢、union查詢等、常見函數(shù)、存儲過程和視圖、事務(wù)以及事務(wù)的隔離級別、觸發(fā)器、索引和優(yōu)化、貫穿案例:Employees員工管理系統(tǒng)
Web網(wǎng)頁技術(shù):
HTML與CSS與JavaScript、XML與Tomcat、HTTP協(xié)議與Servlet、Thymeleaf、會話控制、Vue.js、Ajax、Filter、Listener:ServletContextListener、貫穿項目:尚硅谷書城
開發(fā)必備框架技術(shù):
Spring、SpringMVC、MyBatis、SSM整合、Maven、Linux、Redis6、SSM整合案例
Java高薪提升課:
Git與GitHub、MySQL高級、Mycat、Nginx、Docker、Elasticsearch7、RabbitMQ、SpringBoot、SpringCloud、JVM/GC、JUC、Zookeeper、Dubbo
前沿技術(shù)大型企業(yè)級項目:在線預(yù)約掛號平臺:尚醫(yī)通
Spring全家桶項目:尚籌網(wǎng)、大型金融項目:尚融寶、分布式項目:美年旅游、前后端分離項目:尚課吧、微服務(wù)架構(gòu)項目:尚品匯
大廠必備面試題精講:
基礎(chǔ)系列面試題、開源框架源碼解析專題、高性能架構(gòu)專題、性能優(yōu)化專題、并發(fā)編程專題、微服務(wù)架構(gòu)專題、大廠面試題真實題目詳解
求java考題,筆試題
Java面向?qū)ο?/p>
1. super()與this()的區(qū)別?
This():當(dāng)前類的對象,super父類對象。
Super():在子類訪問父類的成員和行為,必須受類繼承規(guī)則的約束
而this他代表當(dāng)前對象,當(dāng)然所有的資源都可以訪問.
在構(gòu)造函數(shù)中,如果第一行沒有寫super(),編譯器會自動插入.但是如果父類沒有不帶參數(shù)的構(gòu)造函數(shù),或這個函數(shù)被私有化了(用private修飾).此時你必須加入對父類的實例化構(gòu)造.而this就沒有這個要求,因為它本身就進行實例化的構(gòu)造.
而在方法中super和this使用的方法就差不多了.只不過super 要考慮是否能訪問其父類的資源.
2. 作用域public,protected,private,以及不寫時的區(qū)別?
Public:不同包、 同一包、 類內(nèi)都可用
Private: 類內(nèi)
Protected:不同包的子類、同一包、 類內(nèi)都可用
不寫時: 同一包內(nèi)、類內(nèi)
3. 編程輸出如下圖形。
* * * * *
* * * *
* * *
* *
*
代碼如下:
public class Print {
publicstatic void main(String[] args) {
for(int i = 0; i 5; i++) {
for(int j = 5; j i; j--) {
System.out.print("*");
}
System.out.println();
}
}
}
4. JAVA的事件委托機制和垃圾回收機制
Java事件委托機制的概念,一個源產(chǎn)生一個事件并將它送到一個或多個監(jiān)聽器那里。在這種方案中,監(jiān)聽器簡單的等待,直到它收到一個事件。一旦事件被接受,監(jiān)聽器將處理這個事件,然后返回。
垃圾回收機制垃圾收集是將分配給對象但不再使用的內(nèi)存回收或釋放的過程。如果一個對象沒有指向它的引用或者其賦值為null,則次對象適合進行垃圾回收
5. 在JAVA中,如何跳出當(dāng)前的多重嵌套循環(huán)?
用break; return 方法。
6. 什么是java序列化,如何實現(xiàn)java序列化?(寫一個實例)
序列化:處理對象流的機制,所謂對象流也就是將對象的內(nèi)容進行流化??梢詫α骰蟮膶ο筮M行讀寫操作,也可將流化后的對象傳輸于網(wǎng)絡(luò)之間。序列化是為了解決在對對象流進行讀寫操作時所引發(fā)的問題。
序列化的實現(xiàn):將需要被序列化的類實現(xiàn)Serializable接口,該接口沒有需要實現(xiàn)的方法,implementsSerializable只是為了標(biāo)注該對象是可被序列化的,然后使用一個輸出流(如:FileOutputStream)來構(gòu)造一個ObjectOutputStream(對象流)對象,接著,使用ObjectOutputStream對象的writeObject(Object obj)方法就可以將參數(shù)為obj的對象寫出(即保存其狀態(tài)),要恢復(fù)的話則用輸入流。
7. 一個".java"源文件中是否可以包括多個類(不是內(nèi)部類)?有什么限制?
可以。如果這個類的修飾符是public,其類名與文件名必須相同。
8. 排序都有哪幾種方法?請列舉。用JAVA實現(xiàn)一個快速排序?
排序的方法有:插入排序(直接插入排序、希爾排序),交換排序(冒泡排序、快速排序),選擇排序(直接選擇排序、堆排序),歸并排序,分配排序(箱排序、基數(shù)排序)
快速排序的偽代碼。
9. Overload和Override的區(qū)別。Overloaded的方法是否可以改變返回值的類型?
重寫Override,子類覆蓋父類的方法,將子類傳與父類的引用調(diào)用的還是子類的方法。
重載Overloading 一個類多個方法,名稱相同,參數(shù)個數(shù)類型不同。
兩者都是Java多態(tài)性的不同表現(xiàn)。
Overloaded的方法是可以改變返回值的類型。
1, public class Ctest(){
Public static void main(){
System.out.prinln(8+8+”88”+8+8);
}
} 168888
(方法的重寫Overriding和重載Overloading是Java多態(tài)性的不同表現(xiàn)。重寫Overriding是父類與子類之間多態(tài)性的一種表現(xiàn),重載Overloading是一個類中多態(tài)性的一種表現(xiàn)。如果在子類中定義某方法與其父類有相同的名稱和參數(shù),我們說該方法被重寫 (Overriding)。子類的對象使用這個方法時,將調(diào)用子類中的定義,對它而言,父類中的定義如同被“屏蔽”了。如果在一個類中定義了多個同名的方法,它們或有不同的參數(shù)個數(shù)或有不同的參數(shù)類型,則稱為方法的重載(Overloading)。
Overloaded的方法是可以改變返回值的類型。)
10. Final類有什么特點?
屬性常量 方法不可以overridding 類不可以繼承
11. 繼承時候類的執(zhí)行順序問題,一般都是選擇題,問你將會打印出什么?
答:父類:
package test;
public class FatherClass {
public FatherClass() {
System.out.println("FatherClassCreate");
}
}
子類:
package test;
import test.FatherClass;
public class ChildClass extends FatherClass{
public ChildClass() {
System.out.println("ChildClassCreate");
}
public static void main(String[] args) {
FatherClass fc = new FatherClass();
ChildClass cc = new ChildClass();
}
}
輸出結(jié)果:
C:java test.ChildClass
FatherClass Create
FatherClass Create
ChildClass Create
12. 內(nèi)部類的實現(xiàn)方式?
package test;
public class OuterClass {
private class InterClass {
Public Interlass(){
System.out.println("InterClassCreate");
}
}
public OuterClass(){
InterClass ic = new InterClass();
System.out.println("OuterClassCreate");
}
public static void main(String[] args){
OuterClass oc = new OuterClass();
}
}
輸出結(jié)果:
C:java test/OuterClass InterClass Create OuterClass Create
13. 用JAVA實現(xiàn)一種排序,JAVA類實現(xiàn)序列化的方法(二種)?
14. 如在COLLECTION框架中,實現(xiàn)比較要實現(xiàn)什么樣的接口?
15. 用插入法進行排序代碼如下
package test;
import java.util.*;
class InsertSort {
ArrayList al;
public InsertSort(int num,int mod) {
al = new ArrayList(num);
Random rand = new Random();
System.out.println("The ArrayList SortBefore:");
for (int i=0;inum ;i++ ){
al.add(new Integer(Math.abs(rand.nextInt())% mod + 1));
System.out.println("al["+i+"]="+al.get(i));
}
}
public void SortIt(){
Integer tempInt;
int MaxSize=1;
for(int i=1;ial.size();i++){
tempInt = (Integer)al.remove(i);
if(tempInt.intValue()=((Integer)al.get(MaxSize-1)).intValue()){
al.add(MaxSize,tempInt);
MaxSize++;
System.out.println(al.toString());
} else {
for (int j=0;jMaxSize ;j++ ){
if(((Integer)al.get(j)).intValue()=tempInt.intValue()){
al.add(j,tempInt);
MaxSize++;
System.out.println(al.toString());
break;
}
}
}
}
System.out.println("The ArrayList SortAfter:");
for(int i=0;ial.size();i++) {
System.out.println("al["+i+"]="+al.get(i));
}
}
public static void main(String[] args) {
InsertSort is = new InsertSort(10,100);
is.SortIt();
}
}
JAVA類實現(xiàn)序例化的方法是實現(xiàn)java.io.Serializable接口
Collection框架中實現(xiàn)比較要實現(xiàn)Comparable 接口和 Comparator 接口
16. 編程:編寫一個截取字符串的函數(shù),輸入為一個字符串和字節(jié)數(shù),輸出為按字節(jié)截取的字符串。但是要保證漢字不被截半個,如"我ABC"4,應(yīng)該截為"我AB",輸入"我ABC漢DEF",6,應(yīng)該輸出為"我ABC"而不是"我ABC+漢的半個"。
public static void split(String source,intnum) throws Exception{
intk=0;
Stringtemp="";
for(int i = 0; i source.length(); i++){
byte[]b=(source.charAt(i)+"").getBytes();
k=k+b.length;
if(knum){
break;
}
temp=temp+source.charAt(i);
}
System.out.println(temp);
}
15、Java編程,打印昨天的當(dāng)前時刻
public class YesterdayCurrent{
public void main(String[] args){
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DATE, -1);
System.out.println(cal.getTime());
}
}
16、文件讀寫,實現(xiàn)一個計數(shù)器
public int getNum(){
int i = -1;
try{
String stri="";
BufferedReader in = new BufferedReader(newFileReader(f));
while((stri=in.readLine())!=null){
i = Integer.parseInt(stri.trim());
}
in.close();
}catch(Exception e){
e.printStackTrace();
}
return i;
}
public void setNum(){
int i = getNum();
i++;
try{
PrintWriter out=new PrintWriter(newBufferedWriter(new FileWriter(f,false)));
out.write(String.valueOf(i)); //可能是編碼的原因,如果直接寫入int的話,將出現(xiàn)java編碼和windows編碼的混亂,因此此處寫入的是String
out.close() ;
}catch(Exception e){
e.printStackTrace();
}
}
17、指出下面程序的運行結(jié)果。
class A{
static{
System.out.print("1");
}
public A(){
System.out.print("2");
}
}
class B extends A{
static{
System.out.print("a");
}
public B(){
System.out.print("b");
}
}
public class Hello{
public static void main(String[] ars){
A ab = new B(); //執(zhí)行到此處,結(jié)果: 1a2b
ab = new B(); //執(zhí)行到此處,結(jié)果: 1a2b2b
}
}注:類的static 代碼段,可以看作是類首次加載(被虛擬機加載)執(zhí)行的代碼,而對于類的加載,首先要執(zhí)行其基類的構(gòu)造,再執(zhí)行其本身的構(gòu)造
18、抽象類和接口的區(qū)別?
(1)接口可以被多重implements,抽象類只能被單一extends(2)接口只有定義,抽象類可以有定義和實現(xiàn)(3)接口的字段定義默認(rèn)為:publicstatic final, 抽象類字段默認(rèn)是"friendly"(本包可見)
當(dāng)功能需要累積時用抽象類,不需要累積時用接口。
19、什么是類的反射機制?
通過類(Class對象),可以得出當(dāng)前類的fields、method、construtor、interface、superClass、modified等,同是可以通過類實例化一個實例、設(shè)置屬性、喚醒方法。Spring中一切都是返射、struts、hibernate都是通過類的返射進行開發(fā)的。
20、類的返射機制中的包及核心類?
①java.lang.Class②java.lang.refrection.Method③java.lang.refrection.Field
④java.lang.refrection.Constructor⑤java.lang.refrection.Modifier⑥java.lang.refrection.Interface
21、得到Class的三個過程是什么?
①對象.getClass()②類.class或Integer.type(int) Integer.class(java.lang.Integer)③Class.forName();
22、如何喚起類中的一個方法?
①產(chǎn)生一個Class數(shù)組,說明方法的參數(shù)②通過Class對象及方法參數(shù)得到Method③通過method.invoke(實例,參數(shù)值數(shù)組)喚醒方法
23、如何將數(shù)值型字符轉(zhuǎn)換為數(shù)字(Integer,Double)?
Integer.parseInt(“1234”) Double.parseDouble(“123.2”)
24、如何將數(shù)字轉(zhuǎn)換為字符?
1+”” 1.0+””
25、如何去小數(shù)點前兩位,并四舍五入。
double d=1256.22d; d=d/100; System.out.println(Math.round(d)*100);
26、如何取得年月日,小時分秒?
Calendar c=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,31);
System.out.println(c.get(Calendar.YEAR)+" "+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
27、如何取得從1970年到現(xiàn)在的毫秒數(shù)
Java.util.Date dat=new Date(); long now=dat.getTime();
或System.currentTimeMillis()
28、如何獲取某個日期是當(dāng)月的最后一天?
當(dāng)前日期加一天,若當(dāng)前日期與結(jié)果的月份不相同,就是最后一天。
取下一個月的第一天,下一個月的第一天-1
public static void main(String[] args){
Calendarc=Calendar.getInstance();
c.set(Calendar.YEAR,2004);
c.set(Calendar.MONTH,0);
c.set(Calendar.DAY_OF_MONTH,30);
Calendarc1=(Calendar)c.clone();
System.out.println(c.get(Calendar.YEAR)+""+(c.get(Calendar.MONTH)+1)+" "+c.get(Calendar.DAY_OF_MONTH));
c.add(Calendar.DAY_OF_MONTH,1);
if(c.get(Calendar.MONTH)!=c1.get(Calendar.MONTH)){
System.out.println("是最后一天");
}else{
System.out.println("不是取后一天");
}
}
29、如何格式化日期?
Import java.text. SimpleDateFormat;
SimpleDateFormat sdf=newSimpleDateFormat("yyyy-MM-dd hh:mm:ss");
Date dat=new Date();
String str=sdf.format(dat); //把日期轉(zhuǎn)化為字符串
System.out.println(str);
Java.util.Date d1=sdf.parse(“yyyy-mm-dd”); //將字符串轉(zhuǎn)化為日期
30、編碼轉(zhuǎn)換,怎樣實現(xiàn)將GB2312編碼的字符串轉(zhuǎn)換為ISO-8859-1編碼的字符串。
String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a=new String("中".getBytes("iso-8859-1"));
應(yīng)該是String a=new String("中".getBytes("gb2312"),"iso-8859-1");
String a1=newString(a.getBytes("iso-8859-1"));
java一面和二面什么區(qū)別
下面列出了一面問到的問題:
synchronized與lock的區(qū)別,使用場景??催^synchronized的源碼沒
JVM自動內(nèi)存管理,Minor GC與Full GC的觸發(fā)機制
了解過JVM調(diào)優(yōu)沒,基本思路是什么
如何設(shè)計存儲海量數(shù)據(jù)的存儲系統(tǒng)
緩存的實現(xiàn)原理,設(shè)計緩存要注意什么
淘寶熱門商品信息在JVM哪個內(nèi)存區(qū)域
操作系統(tǒng)的頁式存儲
volatile關(guān)鍵字的如何保證內(nèi)存可見性
happen-before原則
Lucene全文搜索的原理
阿里二面
下面是面試過程中的問題:
自我介紹下自己,不超過3分鐘(我的自我介紹仍然不超過1分鐘)
你說你熟悉并發(fā)編程,那么你說說Java鎖有哪些種類,以及區(qū)別(果然深度不一樣)
如何保證內(nèi)存可見性
Http請求的過程與原理
TCP連接的特點
TCP連接如何保證安全可靠的
為什么TCP連接需要三次握手,兩次不可以嗎,為什么
AOP的原理
動態(tài)代理與cglib實現(xiàn)的區(qū)別(這個,醉得很厲害)
那么你說說代理的實現(xiàn)原理唄
看過Spring源碼沒,說說Ioc容器的加載過程吧
阿里三面(總監(jiān)面)
先問項目,從項目問起
了解什么分布式數(shù)據(jù)一致性算法,具體說說
MySQL事務(wù)隔離級別以及MVCC機制
Redis緩存雪崩、緩存穿透以及如何解決?
問了設(shè)計秒殺系統(tǒng)
說說同步和異步,什么時候用同步,什么時候用異步
mysql的innodb索引數(shù)據(jù)結(jié)構(gòu)為什么是b+樹,用hash來實現(xiàn)可以嗎?
分布式事務(wù)的實現(xiàn)?
如何解決redis和mysql數(shù)據(jù)一致性?
常見的MySQL主從同步方案有哪些?優(yōu)劣勢比較過?
阿里四面(總監(jiān)面)
自我介紹
手畫自己項目架構(gòu)圖,然后針對架構(gòu)和中間件提問
四面總結(jié)
一面和二面總結(jié)
一面大概面了50多分鐘,可以看出一面的問題不是很難,但是要得到面試官比較高的評價,還是需要一-定的表達(dá)能力和對技術(shù)比較本質(zhì)的認(rèn)識的,如果在回答問題的時候能夠做一些適當(dāng)?shù)臄U展,自然會讓面試官對你有不一樣的評價。
二面面試官問的問題都比較直接,答案也是知道就知道,不知道就不知道。這些問題-部分是基礎(chǔ),一部分是根據(jù)你的專業(yè)技能的來提問的。面完后面試官對我的評價是:中規(guī)中矩,有機會下次面試。雖說是中規(guī)中矩,但聽到面試官說有機會下次面試就感覺這次面試應(yīng)該過了。
三面總結(jié)
三面是交叉面,沒想到是阿里的總監(jiān)面試。由于具體的技術(shù)問題在前兩輪面試中已經(jīng)問過了,所以三面后不會有具體的技術(shù)問題,總結(jié)來看,對自己做過的項目一定要深入,包括使用使用到的技術(shù)原理、為什么要使用這些技術(shù)。
針對項目,面試官關(guān)注的無非以下幾點:
1.項目中某個比較重要的點是如何實現(xiàn)的(需要深入技術(shù)的原理)
2.遇到的最大困難是什么(有哪些),你怎么解決的?
3.如果需要擴展某個功能,如何降低系統(tǒng)的耦合度
4.如果針對某個功能進行優(yōu)化,你會怎么設(shè)計和優(yōu)化
四面總結(jié)
雖然這面比較輕松,也沒有什么具體的技術(shù)問題,但對項目仍然是面試官關(guān)注的,后面了解到總監(jiān)面除了看你的基礎(chǔ),主要看你的潛力(就是有沒有培養(yǎng)的價值),這個東西看起來挺虛的,但是從你平時的學(xué)習(xí)中仍然是可以看得出來的。所以,作為一名開發(fā)人員。平時對技術(shù)的研究也是很重要的
最后
其實一步一步走過來,不單單只靠面試之前刷題那么簡單,更多的還是平時的積累。小編整理出一篇Java進階架構(gòu)師之路的核心知識,同時也是面試時面試官必問的知識點,篇章也是包括了很多知識點,其中包括了有基礎(chǔ)知識、Java集合、JVM、多線程并發(fā)、spring原理、微服務(wù)、Netty 與RPC 、Kafka、日志、設(shè)計模式、Java算法、數(shù)據(jù)庫、Zookeeper、分布式緩存、數(shù)據(jù)結(jié)構(gòu)等
想要免費獲取這份完整版文檔的朋友,點贊、關(guān)注、轉(zhuǎn)發(fā)之后,私信【學(xué)習(xí)】即可免費獲取
最后是總重要的技能環(huán)節(jié),分享給大家一份核心面試文檔
JavaOOP
Java集合/泛型
由于篇幅限制,無法全部展現(xiàn)出來,文末有完整版獲取方式
Java異常
Java中的IO與NIO
Java反射
Java序列化
什么是java序列化,如何實現(xiàn)java序列化?
保存(持久化)對象及其狀態(tài)到內(nèi)存或者磁盤
序列化對象以字節(jié)數(shù)組保持-靜態(tài)成員不保存
序列化用戶遠(yuǎn)程對象傳輸
Serializable 實現(xiàn)序列化
writeObject 和 readObject 自定義序列化策略
序列化 ID
序列化并不保存靜態(tài)變量
Transient 關(guān)鍵字阻止該變量被序列化到文件中
序列化(深 clone 一中實現(xiàn))
多線程并發(fā)
JAVA 并發(fā)知識庫
Java中實現(xiàn)多線程有幾種方法
繼承 Thread 類
實現(xiàn) Runnable 接口。
ExecutorService、 Callable、 Future 有返回值線程
基于線程池的方式
4 種線程池
如何停止一個正在運行的線程
notify()和notifyAll()有什么區(qū)別?
sleep()和wait() 有什么區(qū)別?
volatile 是什么?可以保證有序性嗎?
JVM
java中會存在內(nèi)存泄漏嗎,請簡單描述。
64 位 JVM 中,int 的長度是多數(shù)?
Serial 與 Parallel GC 之間的不同之處?
32 位和 64 位的 JVM,int 類型變量的長度是多數(shù)?
Java 中 WeakReference 與 SoftReference 的區(qū)別?
JVM 選項 -XX:+UseCompressedOops 有什么作用?為什么要使用
怎樣通過 Java 程序來判斷 JVM 是 32 位 還是 64位?
32 位 JVM 和 64 位 JVM 的最大堆內(nèi)存分別是多數(shù)?
JRE、JDK、JVM 及 JIT 之間有什么不同?
解釋 Java 堆空間及 GC?
Mysql
數(shù)據(jù)庫存儲引擎
InnoDB(B+樹)
TokuDB( Fractal Tree-節(jié)點帶數(shù)據(jù))
Memory
數(shù)據(jù)庫引擎有哪些
InnoDB與MyISAM的區(qū)別
索引
常見索引原則有
數(shù)據(jù)庫的三范式是什么
第一范式(1st NF - 列都是不可再分)
Redis
什么是 Redis?
Redis 與其他 key-value 存儲有什么不同?
Redis 的數(shù)據(jù)類型?
使用 Redis 有哪些好處?
Redis 相比 Memcached 有哪些優(yōu)勢?
Memcache 與 Redis 的區(qū)別都有哪些?
Redis 是單進程單線程的?
一個字符串類型的智能存儲最大容量是多少?
Redis持久化機制
緩存雪崩、緩存穿透、緩存預(yù)熱、緩存更新、緩存降級等問題
Memcached
Memcached 是什么,有什么作用?
memcached 服務(wù)在企業(yè)集群架構(gòu)中有哪些應(yīng)用場景?
Memcached 服務(wù)分布式集群如何實現(xiàn)?
Memcached 服務(wù)特點及工作原理是什么?
簡述 Memcached 內(nèi)存管理機制原理?
memcached 是怎么工作的?
memcached 最大的優(yōu)勢是什么?
memcached 和 MySQL 的 query
memcached 和服務(wù)器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么優(yōu)缺點?
memcached 的 cache 機制是怎樣的?
memcached 如何實現(xiàn)冗余機制?
MongoDB
mongodb是什么?
mongodb有哪些特點?
你說的NoSQL數(shù)據(jù)庫是什么意思?NoSQL與RDBMS直接有什么區(qū)別?為什么要使用和不使用NoSQL數(shù)據(jù)庫?說一說NoSQL數(shù)據(jù)庫的幾個優(yōu)點?
NoSQL數(shù)據(jù)庫有哪些類型?
MySQL與MongoDB之間最基本的差別是什么?
你怎么比較MongoDB、CouchDB及CouchBase?
MongoDB成為最好NoSQL數(shù)據(jù)庫的原因是什么?
journal回放在條目(entry)不完整時(比如恰巧有一個中途故障了)會遇到問題嗎?
分析器在MongoDB中的作用是什么?
名字空間(namespace)是什么?
Spring
不同版本的 Spring Framework 有哪些主要功能?
什么是 Spring Framework?
列舉 Spring Framework 的優(yōu)點。
Spring Framework 有哪些不同的功能?
Spring Framework 中有多少個模塊,它們分別是什么?
什么是 Spring 配置文件?
Spring 應(yīng)用程序有哪些不同組件?
使用 Spring 有哪些方式?
什么是 Spring IOC 容器?
什么是依賴注入?
Spring Boot
什么是 Spring Boot?
為什么要用SpringBoot
Spring Boot 有哪些優(yōu)點?
Spring Boot 的核心注解是哪個?它主要由哪幾個注解組成的?
運行Spring Boot有哪幾種方式
如何理解 Spring Boot 中的 Starters?
如何在Spring Boot啟動的時候運行一些特定的代碼?
Spring Boot 需要獨立的容器運行嗎?
Spring Boot中的監(jiān)視器是什么?
如何使用Spring Boot實現(xiàn)異常處理?
Spring Cloud
什么是 Spring Cloud?
使用 Spring Cloud 有什么優(yōu)勢?
服務(wù)注冊和發(fā)現(xiàn)是什么意思?Spring Cloud 如何實現(xiàn)?
負(fù)載平衡的意義什么?
什么是 Hystrix?它如何實現(xiàn)容錯?
什么是 Hystrix 斷路器?我們需要它嗎?
什么是 Netflix Feign?它的優(yōu)點是什么?
什么是 Spring Cloud Bus?我們需要它嗎?
什么是微服務(wù)
什么是服務(wù)熔斷?什么是服務(wù)降級
RabbitMQ
什么是 rabbitmq
為什么要使用 rabbitmq
使用 rabbitmq 的場景
如何確保消息正確地發(fā)送至 RabbitMQ? 如何確保消息接收方消費了消息?
如何避免消息重復(fù)投遞或重復(fù)消費?
消息基于什么傳輸?
消息如何分發(fā)?
消息怎么路由?
如何確保消息不丟失?
使用 RabbitMQ 有什么好處?
Dubbo
為什么要用 Dubbo?
Dubbo 的整體架構(gòu)設(shè)計有哪些分層?
默認(rèn)使用的是什么通信框架,還有別的選擇嗎?
服務(wù)調(diào)用是阻塞的嗎?
一般使用什么注冊中心?還有別的選擇嗎?
默認(rèn)使用什么序列化框架,你知道的還有哪些?
服務(wù)提供者能實現(xiàn)失效提出是什么原理?
服務(wù)上線怎么不影響舊版本?
如何解決服務(wù)調(diào)用鏈過長的問題?
說說核心的配置有哪些?
MyBatis
什么是 Mybatis?
Mybaits 的優(yōu)點
MyBatis 框架的缺點
MyBatis 框架適用場合
MyBatis 與 Hibernate 有哪些不同?
#{}和${}的區(qū)別是什么?
當(dāng)實體類中的屬性名和表中的字段名不一樣 ,怎么辦 ?
模糊查詢 like 語句該怎么寫?
通常一個 Xml 映射文件,都會寫一個 Dao 接口與之對應(yīng),請問,這個 Dao 接口的工作原理是什么?Dao 接口里的方法,參數(shù)不同時,方法能重載嗎?
如何獲取自動生成的(主)鍵值?
ZooKeeper
什么是Zookeeper?
Zookeeper 如何保證了分布式一致性特性?
ZooKeeper 提供了什么?
Zookeeper 文件系統(tǒng)
ZAB 協(xié)議?
四種類型的數(shù)據(jù)節(jié)點 Znode
Zookeeper Watcher 機制 -- 數(shù)據(jù)變更通知
客戶端注冊 Watcher 實現(xiàn)
服務(wù)端處理 Watcher 實現(xiàn)
客戶端回調(diào) Watcher
數(shù)據(jù)結(jié)構(gòu)
棧(stack)
隊列(queue)
鏈表(Link)
散列表(Hash Table)
排序二叉樹
前綴樹
紅黑樹
B-TREE
位圖
Elasticsearch
elasticsearch 了解多少,說說你們公司 es 的集群架構(gòu),索引數(shù)據(jù)大小,分片有多少,以及一些調(diào)優(yōu)手段 。
elasticsearch 的倒排索引是什么
elasticsearch 索引數(shù)據(jù)多了怎么辦,如何調(diào)優(yōu),部署
elasticsearch 是如何實現(xiàn) master 選舉的
詳細(xì)描述一下 Elasticsearch 索引文檔的過程
詳細(xì)描述一下 Elasticsearch 搜索的過程?
Elasticsearch 在部署時,對 Linux 的設(shè)置有哪些優(yōu)化方法
lucence 內(nèi)部結(jié)構(gòu)是什么?
Elasticsearch 是如何實現(xiàn) Master 選舉的?
Elasticsearch 中的節(jié)點(比如共 20 個),其中的 10 個選了一個 master,另外 10 個選了另一個 master,怎么辦?
Kafka
Kafka 是什么
partition 的數(shù)據(jù)文件(offset, MessageSize, data)
數(shù)據(jù)文件分段 segment(順序讀寫、分段命令、二分查找)
負(fù)載均衡(partition 會均衡分布到不同 broker 上)
批量發(fā)送
壓縮(GZIP 或 Snappy)
消費者設(shè)計
Consumer Group
如何獲取 topic 主題的列表
生產(chǎn)者和消費者的命令行是什么?
微服務(wù)
微服務(wù)架構(gòu)有哪些優(yōu)勢?
微服務(wù)有哪些特點?
設(shè)計微服務(wù)的最佳時間是什么?
微服務(wù)架構(gòu)如何運作?
微服務(wù)架構(gòu)的優(yōu)缺點是什么?
單片,SOA 和微服務(wù)架構(gòu)有什么區(qū)別?
在使用微服務(wù)架構(gòu)時,您面臨哪些挑戰(zhàn)?
SOA 和微服務(wù)架構(gòu)之間的主要區(qū)別是什么?
微服務(wù)有什么特點?
Linux
絕對路徑用什么符號表示?當(dāng)前目錄、上層目錄用什么表示?主目錄用什么表示? 切換目錄用什么命令?
怎么查看當(dāng)前進程?怎么執(zhí)行退出?怎么查看當(dāng)前路徑?
怎么清屏?怎么退出當(dāng)前命令?怎么執(zhí)行睡眠?怎么查看當(dāng)
Ls 命令執(zhí)行什么功能? 可以帶哪些參數(shù),有什么區(qū)別?
查看文件有哪些命令
列舉幾個常用的Linux命令
你平時是怎么查看日志的?
建立軟鏈接(快捷方式),以及硬鏈接的命令
目錄創(chuàng)建用什么命令?創(chuàng)建文件用什么命令?復(fù)制文件用什么命令?
查看文件內(nèi)容有哪些命令可以使用?
面試,難還是不難?最終結(jié)果好還是不好?取決于面試者的底蘊(氣場+技能)、心態(tài)和認(rèn)知以及溝通技巧。而一些主流的大型互聯(lián)網(wǎng)公司面試(阿里巴巴、京東、美團、滴滴)更是需要你在面試時展現(xiàn)出自己的能力,從而獲得面試官的欣賞和肯定。
而程序員在應(yīng)聘時更是需要經(jīng)歷層層面試。俗話說,磨刀不誤砍柴工,做好面試前的準(zhǔn)備工作可以幫助大家更好的應(yīng)對面試官的問題以及面試中的突發(fā)情況。
不用出國也能買到60多萬的真皮腰帶!機會難得,快來試試
精選推薦
?廣告
?
面試題2
104閱讀·0評論·0點贊
2020年11月25日
66個求職應(yīng)聘技巧性問答(三)
955閱讀·0評論·0點贊
2015年5月26日
凱捷Java二面問題總結(jié)
84閱讀·1評論·0點贊
2022年10月24日
程序員面試中一面、二面、三面有什么區(qū)別?
2697閱讀·1評論·3點贊
2023年1月5日
純干貨分享!百度Java一、二、三面面經(jīng)總結(jié),本人已成功拿到offer!
5987閱讀·7評論·8點贊
2021年4月11日
Java 虛擬機系列一:一文搞懂 JVM 架構(gòu)和運行時數(shù)據(jù)區(qū)
460閱讀·2評論·0點贊
2020年1月23日
阿里后端開發(fā)Java面經(jīng),附上我的面試真題復(fù)盤,希望對大家有幫助!
1429閱讀·0評論·0點贊
2021年4月22日
華為OD(外包)社招技術(shù)二面,總結(jié)復(fù)盤
1.4W閱讀·4評論·7點贊
2020年9月28日
java二面技術(shù)面試經(jīng)驗_網(wǎng)易java開發(fā)面試:一面+二面+三面以及 面試經(jīng)驗總結(jié)
280閱讀·0評論·0點贊
2021年3月1日
java一面和二面_釘釘面經(jīng),Java面試題,一面二面整理
268閱讀·0評論·0點贊
2021年3月10日
阿里Java研發(fā)2面,都會問什么?斬獲阿里P6+的“他”告訴你答案
200閱讀·2評論·0點贊
2021年5月19日
網(wǎng)易java程序員面試_網(wǎng)易Java程序員兩輪面試 請問你能答對幾個?
106閱讀·0評論·0點贊
2021年3月8日
java二面問什么_java面試題,拼多多面試題分享(java二面)
2792閱讀·0評論·1點贊
2021年3月11日
阿里高級Java面試題(首發(fā),70道,帶詳細(xì)答案)
408閱讀·0評論·0點贊
2022年8月19日
四年開發(fā),待業(yè)半年本想放棄Java,抱著試試的心態(tài)面試某C輪金融科技公司居然過了!
1866閱讀·18評論·6點贊
2020年11月21日
阿里第2面,都會問什么?
1426閱讀·0評論·0點贊
2019年11月15日
阿里二面(主問項目和開發(fā)性問題)
875閱讀·0評論·0點贊
2018年7月28日
阿里java研發(fā)崗五面(HR面+技術(shù)四面),附面試路線分享!
372閱讀·0評論·1點贊
2021年7月26日
華為技術(shù)支持面試
7450閱讀·1評論·3點贊
2011年11月18日
去首頁
看看更多熱門內(nèi)容
評論1
?
jiasiyan
?
贊
請問大佬,校招不會問得這么難吧