摘要:廣州三本大三在讀,在廣州找實習。這篇文章其實主要是記錄一下自己的面試經歷,希望大家看完之后能有所了解進入中小公司究竟需要什么水平。時間復雜度盡量低一些使用快排的,將給出的隨機數做基準值返回的坐標就是了。
前言
只有光頭才能變強
這陣子跑去面試Java實習生啦~~~我來簡單介紹一下背景吧。
廣州三本大三在讀,在廣州找實習。大學開始接觸編程,一個非常平庸的人。
在學習編程時,跟我類似的人應該會有一個疑問:究竟學到什么程度才能找到一份實習/工作呢?
針對的是中小公司..
我是在6月1號開始投的簡歷找Java實習:
實習憎投了17份:
在前程無憂投了69份(沒有算今天剛投的):
在boss直聘溝通51個,可以發送8份簡歷出去:
下面是我的簡歷(我不會寫簡歷,需要修改的地方還請大家不吝在評論區留言)
可能投遞的公司是有重復的,可能我投遞的意向更多偏向于離家里比較近的,并不是全部投應屆/實習(其中1-3年的也投了)。
就上面所投和簡歷的情況,我拿到了5份面試機會。
這篇文章其實主要是記錄一下自己的面試經歷,希望大家看完之后能有所了解:進入中小公司究竟需要什么水平。
看面試題和實際面試時被問到的感覺是完完全全不一樣的(可能會沒聽明白面試官所想問的,也很有可能大腦就短路啦,就忘記啦)
一、公司A 1.1面試簡單介紹一下你的項目,說一下項目有什么模塊
剛才我進去注冊了一下你寫的網站,發現注冊失敗了。你的網站是做了郵箱校驗嗎?ps:后來查了一下,是我的郵箱驗證碼失效了,在后臺拋出異常,所以注冊失敗了
項目中的在線聊天功能是怎么實現的?有沒有去測試瀏覽器的兼容性問題?
我看你有用過ssm/Springboot,你的項目部署在哪里?ssm的項目打的什么包?springBoot打的什么包(指的是jar和war)
Java集合簡單說一下,HashMap是怎么實現key是唯一的
簡單說說nio是什么,是哪個版本開始有的?
aio是什么?了解過嗎?是哪個版本開始有的?與nio的區別知道嗎?
有了解過netty嗎?
我看你用過RESTful,你能簡單說說RESTful有什么特點嗎?使用RESTful的好處是什么?RESTful有什么缺點嗎?
電子移動商城和納稅服務系統是你做的嗎?
簡單說一下你是怎么理解AOP,方法攔截和AOP有什么區別?xxxx功能是否能用AOP實現
1.2公司A總結公司A是我第一家面試的,面了20多分鐘就完事了...沒有hr,自我介紹都沒說就直接開始了。當然了,面試官還是很nice的。
面試官都是針對簡歷寫的東西來提問,問的東西并沒有超出簡歷的范圍
經過這家面試,我知道我自己得多引導引導面試官。因為面試的時間太短了,基本都是一問一答,應該主動說出一些自己知道的東西,答得太少了。
最后拿到了offer二、公司B 2.1筆試單選題
關注Java3y公眾號的概率是5%,收藏Java3y的文章概率是20%,收藏Java3y的文章后會關注Java3y的公眾號的概率是20%,已知某開發者看到Java3y公眾號之后關注了。那么該開發者收藏過Java3y的文章概率是多少?
通俗解析:
1、關注概率=5%。 ??
2、關注有兩種情況,收藏關注,不收藏關注 。
3、收藏關注概率=0.2*0.2=0.04,那么不收藏關注的概論是0.01
4、在已知用戶購買的情況下:收藏的概率是0.04/(0.01+0.04)=80%
公式解析:
設A為關注,B為收藏。 已知P(A)=5%, P(B)=20%, P(A|B) = 20%。,所以P(B|A)=P(AB)/P(A) = P(A|B)P(B)/P(A) = 80%.
假設基準值為數組首元素的快速排序,要使得數組滿足非降序排列,下列數據分布導致快排算法效率最低的是____。
2-6-3-7-5-1-4
6-2-3-5-4-1-7
7-5-3-2-4-1-6
1-5-7-2-4-6-3
1-2-3-4-5-6-7
4-1-3-7-5-6-2
解析:基本有序的情況下:快排最慢。所以選擇的是1-2-3-4-5-6-7
下列程序運行結果:
false
true
0
1
解析:false,因為==默認比較的是地址,引用a和引用b所引用的地址是不一樣的。
String a = "hello";在常量池中創建了對象
String b = "he" + new String("llo");在常量池中創建了he,在堆中創建了llo"
關注線程和進行,描述正確的是(多選):
A:同一個進程的線程之間共享內存,包括堆和棧
B:線程在資源消耗上通常要比進程輕量
C:進程的隔離性要好于線程
D:進程間有途徑共享大量內存中的數據
解析:選擇BCD
A選項:棧數據是線程自有的
B選項:引出線程就是因為(管理/切換/創建/銷毀進程)進程消耗資源太多了
C選項:進程之間的資源是獨立的,子進程使用copy_on_write技術復制父進程的資源;而同一個進程中的線程共享資源,每個線程擁有自己的棧和相應的寄存器;
D選項:用于進程間通訊(IPC)的四種不同技術:
一、 消息傳遞(管道,FIFO,posix和system v消息隊列)
二、 同步(互斥鎖,條件變量,讀寫鎖,文件和記錄鎖,Posix和System V信號燈)
三、共享內存區(匿名共享內存區,有名Posix共享內存區,有名System V共享內存區)?
四、 過程調用(Solaris門,Sun RPC)?
在一個的程序中有A,B,C三個線程同時對一個文件進行讀寫操作,其中的A,B是寫進程只負責往里面寫數據,C是讀線程,同時把讀取的數據從文件中刪除,A線程多帶帶寫滿文件需要10小時,B線程多帶帶寫程序需要6小時,C線程需要15小時才能讀取完整個文件,不考慮三個線程之間的相互影響的情況下,現在_____小時才能寫滿文件。
A. 5
B. 6
C. 5.5
D. 4.5
E. 4.8
F. 5.3
解析:選擇A
不考慮三個線程之間的相互影響,突然回到了小學數學題:“兩個水龍頭注水,一個放水,問何時注滿水池”的感覺。這樣問題就簡單了:
總任務是單位1,A的寫工作效率是1/10,B的寫工作效率是1/6,C的讀工作效率是1/15,那么總工作效率是1/10 + 1/6 - 1/15 結果是1/5。于是,寫滿的總時間是:用單位1除以總工作效率五分之一,就是5小時。
mysql 數據庫有選課表 learn(student_id int,course_id int),字段分別表示學號和課程編號, 現在想獲取每個學生所選課程的個數信息,請問如下的 sql 語句正確的是:
select student_id,sum(course_id)from learn
select student_id,count(course_id)from learn group by student_id
select student_id,count(course_id)from learn
select student_id,sum(course_id)from learn group by student_id
解析:選擇B
獲取每個學生所選課程就按照學生分組,統計個數就用count
下列結果正確的是:
class Person { String name = "do1"; public Person(String name) { this.name = name; } } class Employee extends Person { String empId = "0001"; public Employee(String name) { empId = id; } } class Test{ public static void main(String[] args) { Employee e = new Employee("test"); System.out.println(e.empId); } }
A. 輸出do1
B. 編譯出錯
C. 輸出test
D. 輸出0001
解析:選擇B
這題主要考察對象創建的過程。如果子類的構造函數中沒有顯式調用父類的構造器,那么默認會調用父類無參的構造函數。但是代碼中沒有給出父類的無參構造函數,所以編譯時不通過的。
IDEA的提示也很準確:
如下javascript代碼y最終輸出的結果是:
var x= 1; var y = 0; function add(n){ n = n+1; } y = add(x);
A. 1
B. 2
C. 3
D. undefined
解析:選擇D
沒有明確的return,返回的是undefined
下列哪些是JSON格式結構(多選)
A. {id:"1",name:"do1"}
B. ["java","javascript"]
C. {"java","javascript"}
D. [id:"1",name:"do1"]
解析:選擇AB
經提示:在JSON的規范中,上面的都不能稱之為標準的JSON格式(解釋可看評論區)。
資料:http://www.ecma-international...
話說{"java","javascript"}這個在JavaScript算什么?會的麻煩在評論區告訴我一下哈~~
對類成員訪問權限的控制,是通過設置成員的訪問控制屬性實現的,下列屬于訪問控制屬性的是:
A. public
B. private
C. protected
D. volatile
解析:選擇ABC
這題Java基礎題,就很簡單了。volatile是一種輕量級的同步機制。
以下集合對象不是線程安全的:
A. ArrayList
B. Vector
C. Hashtable
D. Stack
解析:選擇A
這題也很簡單,如果對集合不太了解的同學可看我之前寫過的集合文章:https://segmentfault.com/a/1190000014403696
下面描述正確的是(多選):
A. session是代表與用于某個web應用程序相關的對象和屬性
B. request代表與Web客戶機發出的多個請求相關的對象和屬性
C. page代表與web客戶機的一次請求
D. application代表與整個Web應用程序相關的對象和屬性
解析:選擇AD
request代表與Web客戶機發出的一個請求相關的對象和屬性
page代表與一個頁面相關的對象和屬性
下列對正則表達式描述正確的是:
A. D匹配一個數字字符
B. s匹配任何不可見字符,包括空格,制表符,換頁符等等
C. 匹配一個換頁符
D. 匹配回車換行符
解析:選擇B
D匹配一個非數字字符。
s匹配任何不可見字符,包括空格、制表符、換頁符等等
匹配一個制表符。
匹配一個換行符。
匹配一個回車符
Linux解壓的命令(多選)
A. tar zxvf filename.tar
B. gzip -d filename.gz
C. gzip filename
D. tar czxf filename.tar
解析:選擇AB
考察Linux的解壓命令
2.2筆試簡答題已知一個包含10個隨機數字的數組,數字不重復,給定其中的兩個隨機數,獲取這兩個數在隨機數組從小到大排序后在數據中的坐標值。時間復雜度盡量低一些
使用快排的partition,將給出的隨機數做基準值返回的坐標就是了。兩個隨機數就調用兩次快排的partition。
// 支點左邊都比支點小,支點右邊都比支點大 public int partition(Integer[] nums, int target) { int lt = -1;//[0,lt]target int i = 0; while (i < gt) { if (nums[i] == target) i++; else if (nums[i] < target) { lt++; swap(nums, i, lt); i++; } else { gt--; swap(nums, gt, i); } } // 返回支點的坐標 return gt - 1; } private void swap(Integer[] nums, int i, int j) { int temp = nums[i]; nums[i] = nums[j]; nums[j] = temp; }
上邊代碼由HoldGone友情提供!
Error,Exception,RuntimeException區別
這部分的資料就很多了,我這里就不詳細答了。參考一下吧:
https://blog.csdn.net/zdwzzu2006/article/details/6568600
有一億條記錄,每條記錄有id,ip,時間組成。設計一個系統能夠快速查詢以下內容:給定ip和時間段(精確到分鐘)統計ip的訪問次數,請寫出創建SQL的語句
答:首先,1000億條記錄全部放到內存肯定不夠,那就是分成小文件了,然后整合;
公共的時間段,因為精確到分鐘,我們把這每一分鐘建成一個小文件,每個小文件肯定會有許多重復的ip,url;
現在統計每個小的文件中url的訪問量和ip的訪問次數,方法就是建立索引;
(建立索引的目的是為了減少查詢次數,但是隨著索引級數增多也會造成花更多的時間在建立索引上);
建立url的索引,假如是www.nowcoder.com/question,可以分別給www.nowcoder.com和question建立索引,那么來了一條url,先看一級索引是不是匹配,匹配再看二級索引,相同的話就是我們要的url目標;
ip的索引也是一樣,ip分成4段建立索引;
所以這里影響效率的就是在索引建立這塊,索引建立好那就是查詢的事了的,就會變得非常快。
假定給定了某個時間段,找出url的訪問量,那么先找到給定的時間段,對應著剛開始分割的小的文件(每一個分鐘)中搜索,通過索引找到相同的url之后,開始統計,直到搜索完所有的給定時間段內的所有的小的文件;
求ip的訪問次數也是一樣,按照給定的時間段,找到對應的小的文件,通過索引找到相同的ip后統計,直到搜索完了給定時間段內的所有的小的文件。
鏈接:https://www.nowcoder.com/ques...
來源:牛客網
簡單介紹一下你自己
面向對象有什么特性?你如何理解面向對象的
面向對象與面向過程哪個更好寫?
談談AOP,AOP在實際項目/實際能做什么?
如果讓你實現Spring的緩存@Cacheable,你會怎么實現?(面試官想問的是AOP,我把他帶到Map那邊了)后來才說到了AOP。
索引是怎么提高查詢的性能的?具體來說說索引。
既然說String是不可變的,那么String s = "aaa",為什么同樣可以執行 s = "bbb"?
String是怎么做到不可變的?final修飾的類中的成員變量是否可變?確定嗎?String什么時候被銷毀?
看你使用過Nginx,講講Nginx。正向代理與反向代理有什么區別?
看你使用過RESTful,講講PUT/GET/POST/DELETE分別的含義,使用RESTful和非RESTful的URL有什么區別?
看你用過Elasticsearch,你知道bool是什么嗎?Elasticsearch能使用root用戶執行嗎(我回答的是可以)?為什么?用root用戶執行和其他用戶執行有什么區別?
你項目是部署到Linux的,你記得Linux修改權限的命令是什么嗎?讀寫執行分別代表的是什么?777,每個7的代表什么。
密碼是用md5加密的,那md5是可逆的嗎?那如果現在想實現一個功能:用戶想要找回自己的密碼(不是修改密碼,單純找回密碼),那現在md5是不可逆的,那你怎么設計呢?
了解過多線程嗎?你知道線程池默認有哪幾種實現嗎?如果線程池滿了,那其余的線程怎么辦?工作隊列是怎么實現的?工作隊列是先進先出的嗎?可以優先執行工作隊列的某線程嗎?
你用過Redis嗎?,后面又問了一些Redis安全性的東西。
你知道什么是分布式和集群嗎?
在集群的環境下,Session一般怎么解決?
在集群中如果redis down掉了怎么辦?第二臺redis又down掉了怎么辦?
2.4復試簡單介紹一下你自己
面向對象有什么特性?你如何理解面向對象的
了解String常量池嗎?String s = "aaa";和String b = "aaa";相比,它倆會相等嗎?
簡單介紹一下你寫過的項目。
我看你用到了Shiro,Shiro是什么東西呢?簡單說說你在項目中是如何使用Shiro的
Elasticsearch又是什么東西呢?簡單說說你在項目中是如何使用Elasticsearch的
你一般用的數據庫是什么?Mysql的索引了解過嗎?可以簡單說說嘛?
Mysql有沒有比int類型還要小的整型類型?
來說說你項目還有什么功能。(我談了個人備忘錄,使用了Quartz任務調度框架-->cron表達式-->發郵件提醒)
現在有這么一個需求:一個用戶可以填寫多張調查問卷。調查問卷的數據是不確定的,可以是性別啊,工作年薪呀,等等等。現在你數據庫怎么設計呢?
2.5公司B面試總結經過上一家面試的總結,我帶了一個本子和筆去面試,面試官提問的時候我會在本子上寫寫,畫畫圖來告訴面試官表現我的思路。
公司B是我面的第二家公司:總的來說這次面試遇到了我一大堆不懂的東西,可以說被面試官虐了。面的題目都是相對開放的,問我某個功能如何設計、如何實現、是否可以使用某項技術實現這個功能。
對Redis/數據庫設計/數據庫SQL編寫/Elasticsearch知識點儲備還是不夠啊~~這些知識點得多加把勁了.
2018年6月21日12:52:05,今天早上拿到offer三、公司C 3.1筆試選擇題
下列關于注釋語句的描述中,正確的一項是。
A.以/開始,/結束的是單行注釋語句
B.以//開始的是多行注釋語句
C.以/*開始,/結束的是可以用于生成幫助文檔的注釋語句
D.以/*開始,/結束的是單行注釋語句
解析:選擇C
A是多行注釋
B的單行注釋
D是文檔注釋
為了區分重栽多態中同名的不同方法,要求
A. 形式參數個數或者類型不同
B. 返回值類型不同
C. 調用時用類名或對象名做前綴
D. 形式參數名稱不同
解析:選擇A
下列哪一個說法是正確的
A. Java程序經過編譯后會產生機器碼
B. Java程序經過編譯后會產生字節碼
C. Java程序經過編譯后會產生DLL文件
D. 以上都不正確
解析:選擇B
在Java中,下列運算符合法的是
A. &&
B. < >
C. if
D. :=
解析:選擇A
下面定義數組的格式中不正確的是
A. int a[10]
B. int a = new int[10]
C. int a[]
D. int[] a = new int[]{10}
解析:選擇B
下列哪一個說法是正確的:
A. 實例方法可以直接調用超類的實例方法
B. 實例方法可以直接調用超類的類方法
C. 實例方法可以直接調用其他類的實例方法
D. 實例方法可以直接調用本類的類方法
解析:選擇D
可以用來修飾interface的是
A. private
B. public
C. static
D. protected
解析:選擇B
以下哪個表達式是不合法的。
A.String x="hello";int y=9;x+=y;
B.String x="hello";int y=9;if(x=y){}
C.String x="hello";int y=9;x=x+y;
D.String x=null;int y=(x!=null)&&(x.length()>0)?x.length():0;
解析:選擇B
線性表采用鏈式存儲時,其地址:
A.必須是連續的
B.部分地址必須是連續的
C.一定是不連續的
D.連續與否均可以
解析:選擇D
關系數據庫中的“關系”是指:
A.各條記錄彼此都有一定關系
B.各字段數據被此都有-定關系
C.數據模型是一個滿足一定條件的二維表
D.表文件之間存在一定關系
解析:選擇C
以下對抽象類的描述正確的是:
A.抽象類沒有構造方法
B.抽象類必須提供抽象方法
C.有抽象方法的類一定是抽象類
D.抽象類可以通過new關鍵字直接實例化
解析:選擇C
A:抽象類是有構造方法的
B:抽象類未必需要提供抽象方法
D:抽象類既然是抽象的,怎么可以直接new實例化呢
以下對接口描述錯誤的有:
A.接口沒有提供構造方法
B.接口中的方法默認使用public、abstract修飾
C.接口中的屬性默認使用public、static、final修飾
D.接口不允許多繼承
解析:選擇D
以下對異常的描述不正確的有
A. 異常分為 Error 和 Exceptipn
B. Throwable是所有異常類的父類
C. Exception是所有異常類父類
D. Exception 包括 RuntimeException 和 RuntimeException 之外的異常
解析:選擇C
Throwable是所有異常類的父類
在try-catch-finally語句塊中,以下可以多帶帶與finally —起使用的是
A. catch
B. try
C. throws
D. throw
解析:選擇B
下列關于for循環和while循環的說法中哪個正確的?
A.while循環能實現的操作,for循環也都能實現
B.while循環判斷條件一般是程序結果,for循環判斷條件一般是非程序結采
C.兩種循環任何時候都可替換
D.兩種循環結構中都必須有循環體,循環體不能為空
解析:選擇A
B:判斷條件和結果無關系
C:for(init;test;;increment) ,while(test) 由此可見,當for語句的初始化及自增部分為空時才能替換
D:雖然空循環體沒意義,不過都是可用的.
下列關于構造方法的敘述中,錯誤的是:
A. Java語言規定構造方法名與類名必須相同
B. Java語言規定構造方法沒有返回值,但不用void聲明
C. Java語言規定構造方法不可以重載
D. Java語言規定構造方法只能通過new自動調用
解析:選擇C
構造方法當然可以重載了
下列哪些語句關于Java內存回收的說明是正確的?
A、 程序員必須創建一個線程來釋放內存
B、 內存回收程序負責釋放無用內存
C、 內存回收程序允許程序員直接釋放內存
D、 內存回收程序可以在指定的時間釋放內存對象
解析:選擇B
結構化程序設計所規定的三種基本控制結構是
A. 輸入、處理、輸出
B. 樹形、網形、環形
C. 順序、選擇、循環
D. 主程序、子程序、函數
解析:選擇C
給出以下代碼,請問該程序的運行結果是什么?
class Example{ public static void main (String args[]){ boolean b=true; System.out.println(b); } }
A.打印輸出true
B.打印輸出1。
C.編譯錯誤,因為sout的參數只能為整數 ..
D.編譯錯誤,如果把true改變為TRUE,則可使代碼編譯通過。
解析:選擇A
3.2筆試題不定選下列屬于關系型數據庫的是:
A. Oracle
B. MySqL
C. IMS
D. MongoDb
解析:選擇AB
C:是層次數據庫
D:是非關系數據庫
以下屬于面向對象的特征的是()。
A.重載
B.重寫
C.封裝
D.繼承
解析:選擇CD
在使用super和this關鍵字時,以下描述正確的是:
A. 在子類構造方法中使用super ()顯示調用父類的過早方法,super ()必須寫在子類構造方法的第一行,否則編譯不通過
B. super ()和this ()不一定要放在構造方法內第—行
C. this ()和super()可以同時出現在—個構造函數中
D. this ()和super()可以在static環境中使用,包括static方法和static 語句塊
解析:選擇A
1)調用super()必須寫在子類構造方法的第一行,否則編譯不通過。每個子類構造方法的第一條語句,都是隱含地調用super(),如果父類沒有這種形式的構造函數,那么在編譯的時候就會報錯。
2)super()和this()類似,區別是,super從子類中調用父類的構造方法,this()在同一類內調用其它方法。
3)super()和this()均需放在構造方法內第一行。
4)盡管可以用this調用一個構造器,但卻不能調用兩個。
5)this和super不能同時出現在一個構造函數里面,因為this必然會調用其它的構造函數,其它的構造函數必然也會有super語句的存在,所以在同一個構造函數里面有相同的語句,就失去了語句的意義,編譯器也不會通過。
6)this()和super()都指的是對象,所以,均不可以在static環境中使用。包括:static變量,static方法,static語句塊。
7)從本質上講,this是一個指向本對象的指針, 然而super是一個Java關鍵字。
以下關于final關鍵字說法錯誤的是:
A. final是java中的修飾符,可以修飾類、接口、袖象類、方法和屬性
B. final修飾的類肯定不能被繼承
C. final修飾的方法不能被重載;
D. final修飾的變量不允許被再次賦值
解析:選擇AC
final修飾類、方法、屬性!不能修飾抽象類,因為抽象類一般都是需要被繼承的,final修飾后就不能繼承了。
final修飾的方法不能被重寫而不是重載!?
final修飾屬性,此屬性就是一個常量,不能被再次賦值!?
訪問修飾符作用范圍由大到小是:
A. private-default-protected-public
B. public-default-protected-private
C. private-protected-default-public
D. public-protected-default-private
解析:選擇D
根據下面的代碼,String s = null;會拋出 NullPointerException 異常的有:
A. if( (s!=null) & (s. length()>0))
B. if( (sl=null) && (s. length()>0))
C. if( (s==null) | (s. length()=0))
D. if( (s=null) || (s. length()==0))
解析:選擇AC
出現異常主要是因為執行了s.length()這句話,所以A、B、C、D選項中只要沒有執行到這句話的都是不會報空指針異常的。然后考查的第二點是短路邏輯運算符和非短路邏輯運算符。&和|為非短路邏輯運算符,無論兩個語句為什么,一定會執行完畢,所以A、C兩個是會報出異常的。
Java中,哪個接口以鍵值的方式存儲對象
A. Collection
B. Map
C. List
D. Set
解析:選擇B
Java接口的修飾符可以為:
A. private
B. protected
C. final
D. abstract
解析:選擇CD
這里的題目應該是Java接口可以出現的修飾符有哪些,所以我將C選上了。就看個人的理解吧~
以下哪些代碼片斷正確:
A. private final int theNumber = 017;
B. public int theNumber = 017;
C. public int theNumber = (octal)17;
D. public int THE_NUMBER = 017;
解析:選擇ABD
以下哪些代碼片斷正確:
A. public transient static final int_FRAMEX =850;
B. private transient static final int_FRAMEX2 =850;
C. boolean b = 0;
D. this("a","b");
解析:選擇D
AB都沒有給出類型是什么
C明顯就是錯的
3.3筆試簡答題JRE/JDK/JVM分別指什么?他們的關系是怎么樣的?
參考:https://jingyan.baidu.com/article/425e69e6077283be15fc16ed.html
接口和抽象類的區別是什么?
參考:https://www.zhihu.com/question/20149818
Java中有幾種方法可以實現一個線程?用什么關鍵字修飾同步方法?stop()和suspend()方法為何不推薦使用了?
參考:https://zhidao.baidu.com/question/574496015.html
簡述Java的接口和C++的虛類的相同和不同處
參考:https://www.cnblogs.com/HeartStarer/p/8760864.html
JSP和Servlet有哪些相同和不通點,他們之間的聯系是什么?
參考:https://wenda.so.com/q/1458930266728038
什么是流,流經常按照哪幾種方式分類,每種方式又將流各分為哪幾類?他們之間的區別是什么?
https://www.cnblogs.com/qiuh/archive/2013/11/06/3411197.html
其實這些簡答題每個人寫出來可能都會不一樣,按自己的理解大膽寫就可以了!
3.4面試這次面試問的技術并不是很多,主要問的日常的東西~~~
Shiro你當時是用來干嘛的?有創建用戶與角色/權限的表來維護嗎?
你會使用Linux嗎?能搭建環境嗎?
簡單介紹一下你寫過的項目
3.5公司C總結做的筆試題都是Java基礎,挺合我胃口的(hahaha)
跟hr+技術聊
再跟hr聊
最后跟總經理聊
拿到了offer四、公司D 4.1筆試題
在拿到試題的時候,前臺告訴我限時40分鐘做完,我以為就她說說。后來40分鐘過去了,我剩下一題選擇題還沒做出來,卷子就收走了。我憑記憶簡單說一下題型吧。
選擇題:
給出先序和中序的遍歷結果,問后序的遍歷結果是什么
連續幾道關于|,||,&,&&的選擇題,寫程序結果是什么
一道是outer,inner的多循環判斷,其中一個地方break掉outer循環,問其中的變量值等于多少
String s = "a1";String s2 = "a"+1,連續幾道類似的題目,問結果
還有一些流程控制,問程序結果的題。
...其他的忘了...
SQL題:
根據名字模糊查詢,寫出sql
多表查詢(這題現在想起來,我還忘記做了......)
程序題/簡答題:
刪除某個文件目錄下的所有文件,包括目錄
遞歸刪除就可以了,參考:http://blog.sina.com.cn/s/blog_79333b2c0100xiu4.html
現在有一個線程A寫N個數據進隊列,有兩個線程往隊列取數據。
典型的生產者和消費者,參考:http://www.cnblogs.com/xiaotao726/p/5476644.html
類的加載過程
類加載的過程包括了加載、驗證、準備、解析、初始化五個階段
現在機子是2G內存,現在我有10G數據,現在我想對這些數據排序,如何設計呢?
這題沒找出對應的答案啊(我自己寫的是放在nosql數據庫中排序的)。類似的參考一下:https://zhuanlan.zhihu.com/p/28831563
4.2初面簡單介紹一下你自己
你覺得你在學校學習比較好的課程是什么?
你說你自學Java,你覺得自學和老師上課的方式這種有什么區別?
你覺得哪些是你自學沒學到,在老師那里學到的。還有就是哪些是你自學學到的,在老師那里沒學到的。
你覺得你擅長什么?可以簡單說說嘛?(我選了Java集合)
那你簡單說說ArrayList和LinkedList的東西吧(我就說我看過源碼,以及說了底層的一些東西)
為什么說ArrayList增刪慢呢?為什么說LinkedList查詢慢呢?
你說你知道ArrayList在增刪改的時候用的arraycopy()方法,你知道它是怎么實現的嗎?
看你用過Cookie,簡單說說Cookie是什么吧,為什么需要Cookie
Cookie一定是服務端發送過去的嗎?是怎么發送的?
使用的時候Cookie有什么弊端(需要注意些什么)?
get和post有什么區別?
使用post方式的時候,在url上可以拼接參數嗎?
來說說http的狀態碼有哪些
分別談談這些狀態碼都代表什么意思
上面已經說了get和post了,那你還知道http有其他的原語嗎
來說說https吧,https是什么東西
你知道https的工作流程嗎?
SSL???忘記問什么了,這個我不會。
4.3公司D總結筆試題大多都是考Java基礎,也不算難。就是題量有點多,就給40分鐘可能有點緊。
總的來說初面考HTTP的知識比較多,這方面還得深入加強一下。
2018年6月21日12:52:25,今天早上收到郵件,一面不過。五、公司E 5.1面試
這家也主要圍繞著簡歷來問:
簡單介紹一下你自己
你在學校時間有沒有做過什么課程設計?簡單說說
我看你做過商城項目,你當時是怎么做的呢?
你認為這個商城項目最難的地方是在哪?你實現了之后,能運行嗎?
那個商城項目有多少人在使用呢?
簡單講講Hibernate和Mybatis的區別
你學過Struts2啊,簡單說說與SpringMVC的區別
常用的NIO框架有哪些?除了netty你還知道有哪個嗎?
你的技術文章是寫在哪里的?
簡單介紹一下Java集合吧
短信驗證你是怎么實現的?
說說你是怎么理解SpringBoot的
Redis了解過嗎
5.2公司E總結主要問某項技術是如何理解的,看你是否理解了這項技術。
拿到offer六、總結
花了半個月時間吧,寫簡歷-->投簡歷-->收到面試邀請-->約面試時間-->面試-->(中公司有二面,大公司可能更多)-->拿到offer(或者拒絕)
最后的成績:面了5家公司,拿到4個offer。
至于在Java實習生廣州的薪酬方面,不同公司給出的薪酬都不一樣。有的公司按天數算(上班天數),也有按月算。呃,就我個人認為在廣州大部分給出的薪酬在2500-3500。
有的工資給得比較低,但中午是有餐補的,有提供住宿的。
有的工資給得比較高,但沒有餐補,沒有住宿。
通過這次面試,還是發現自己薄弱的地方有很多啊,得多補補才行,面試也沒想象中那么刁難。
下一篇我就整理點我在面試前找到的,或者覺得比較好的資料吧~~
好久沒寫過文章啦~~~實習了以后應該就不會像在學校的時候更新那么頻繁了,可能一個星期一篇?這我也不確定,反正文章總結我還是會寫的。還有好多好多想學的,想寫的呢。
如果文章有錯的地方歡迎指正,大家互相交流。習慣在微信看技術文章,想要獲取更多的Java資源的同學,可以關注微信公眾號:Java3y。為了大家方便,剛新建了一下qq群:742919422,大家也可以去交流交流。謝謝支持了!希望能多介紹給其他有需要的朋友
文章的目錄導航:https://zhongfucheng.bitcron.com/post/shou-ji/wen-zhang-dao-hang
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/71291.html
摘要:具體的時間線從月中旬,我開始關注牛客網的秋招內推信息。直至十月中下旬結束秋招。之前也寫過自己在廣州找實習的經歷,那次把面試的過程都具體貼出來了。我今年就完美錯過了春招實習經歷。 前言 只有光頭才能變強 離上次發文章已經快兩個月時間了,最近一直忙著秋招的事。今天是2018年10月22日,對于互聯網行業來說,秋招就基本結束了。我這邊的流程也走完了(不再筆試/面試了),所以來寫寫我的秋招經歷...
摘要:我在面試前針對基礎也花了不少的時間,期間也將自己寫過的博文粗略地刷了一遍,同時也在網上找了不少比較好的資料部分是沒看完的。看面試題也是校驗自己是否真正理解了這個知識點,也很有可能會有新的收獲。 一、前言 只有光頭才能變強 回顧前面: 廣州三本找Java實習經歷 上一篇寫了自己面試的經歷和一些在面試的時候遇到的題目(筆試題和面試題)。 我在面試前針對Java基礎也花了不少的時間,期間也將...
摘要:簡介試著,做了一個拉勾網數據分析師職位的數據分析。數據透視表統計,繪圖。看來,我們這些想做數據分析師的人,都無法逃離北上廣啊。總結對于數據分析崗,招聘公司主要位于南方,但是以北京公司最多。 簡介:試著,做了一個拉勾網數據分析師職位的數據分析。其實,雖然很想做數據分析師,但是是跨行,心里相當忐忑,做這個分析就相當于加深自己對數據分析這個行業的了解了。 思路 showImg(https...
摘要:看到網上各種說達內怎么怎么滴,我以自己親身經歷來講講我在達內的這段經歷吧。事先申明,中國很多城市都有達內,每個城市很可能不只一個達內培訓區,并且達內每一培訓期的情況可能不一樣。我只講我培訓時所在的達內培訓區。這些就是在達內個月基本的生活了。 看到知乎上很多說培訓班出來的人咋個了,甚至還有人說培訓3個月怎么能和大學四年如一日努力學習的人相比。想著我也是培訓出來的,那么就我自身經歷說一說吧...
摘要:由于協議中沒有定義任何狀態碼,所以除非在某些試驗條件下,服務器禁止向此類客戶端發送響應。表示要完成請求,需要進一步操作。 最近在廣州找工作,大四狗,讀著三本前兩年剛升二本的學校,文科生,好像一切條件都非常不利,但我還是毅然選擇這條路——拍黃片,人不能固步自封,還是要拓展一下自己的知識面,不能只學php而不拓展視野,還是要學學python、java、前端這些面試得有點心塞,各種因為學歷被...
閱讀 1448·2019-08-29 17:14
閱讀 1650·2019-08-29 12:12
閱讀 730·2019-08-29 11:33
閱讀 3266·2019-08-28 18:27
閱讀 1444·2019-08-26 10:19
閱讀 909·2019-08-23 18:18
閱讀 3529·2019-08-23 16:15
閱讀 2543·2019-08-23 14:14