公司面試問題總結
面試問題彙總
1. 中科柏誠科技股份有限公司
ssh,設計模式,業務邏輯,技術點,開發流程,表怎麼設計的,有多少表,sql優化會嗎,怎麼做的,前端會多少,會什麼,具體說說,你印象最深的模組,你印象最深的模組開發是遇到的問題,怎麼解決的,叢集的搭建
2. 優鍩科技&文思海輝
前端用的js有什麼
開發的時候前端都用了什麼
前端都會什麼東西
3. 文思海輝
3.1. Mybatis和Hibernate的區別?
Hibernate:
Hibernate是建立在若干POJO通過xml對映檔案(或註解)提供的規則對映到資料庫表上的。我們可以通過POJO直接操作資料庫的資料,他提供的是一種全表對映的模型。相對而言,
使用Hibernate進行程式設計有以下好處:
1,消除了程式碼的對映規則,它全部分離到了xml或者註解裡面去配置。
2,無需在管理資料庫連線,它也配置到xml裡面了。
3,一個會話中不需要操作多個物件,只需要操作Session物件。
4,關閉資源只需要關閉一個Session便可。
這就是Hibernate的優勢,在配置了對映檔案和資料庫連線檔案後,Hibernate就可以通過Session操作,非常容易,消除了jdbc帶來的大量程式碼,大大提高了程式設計的簡易性和可讀性。
Hibernate的缺點:
1,全表對映帶來的不便,比如更新時需要傳送所有的欄位。
2,無法根據不同的條件組裝不同的SQL。
3,對多表關聯和複雜的sql查詢支援較差,需要自己寫sql,返回後,需要自己將資料封裝為pojo。
4,不能有效的支援儲存過程。
5,雖然有HQL,但是效能較差,大型網際網路系統往往需要優化sql,而hibernate做不到。
Mybatis:
為了解決Hibernate的不足,Mybatis出現了,
Mybatis需要提供的對映檔案包含了一下三個部分:sql,對映規則,pojo。在Mybatis裡面你需要自己編寫sql,雖然比Hibernate配置多,但是Mybatis可以配置動態sql,解決了hibernate表名根據時間變化,不同條件下列不一樣的問題,同時你也可以對sql進行優化,通過配置決定你的sql對映規則,也能支援儲存過程,所以對於一些複雜和需要優化效能的sql查詢它就更加方便。Mybatis幾乎可以做到jdbc所有能做到的事情。
什麼時候使用Hibernate,Mybatis
Hibernate作為留下的Java orm框架,它確實程式設計簡易,需要我們提供對映的規則,完全可以通過IDE生成,同時無需編寫sql確實開發效率優於Mybatis。此外Hibernate還提供了快取,日誌,級聯等強大的功能,但是Hibernate的缺陷也是十分明顯,多表關聯複雜sql,資料系統許可權限制,根據條件變化的sql,儲存過程等場景使用Hibernate十分不方便,而效能又難以通過sql優化,所以註定了Hibernate只適用於在場景不太複雜,要求效能不太苛刻的時候使用。
如果你需要一個靈活的,可以動態生成對映關係的框架,那麼Mybatis確實是一個最好的選擇。它幾乎可以替代jdbc,擁有動態列,動態表名,儲存過程支援,同時提供了簡易的快取,日誌,級聯。但是它的缺陷是需要你提供對映規則和sql,所以開發工作量比hibernate要大些。
3.2. 對SSM框架的理解,為什麼要用這個,有什麼優勢?
SpringMVC + Spring + Mybatis,是標準的MVC設計模式,將整個系統劃分為顯示層,Controller層,Service層,DAO層四層。
v Spring是一個開源框架,Spring是一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器框架,還能更好的讓其他框架整合。物件之間的耦合越高,維護成本越高。因此物件的設計應使類和構件之間的耦合最小(低耦合高內聚),Spring就解決了這一點。(面向物件三大特性五大原則 + 低耦合高內聚)
v SpringMVC框架是有一個MVC框架,通過實現Model-View-Controller模式來很好地將資料、業務與展現進行分離。
v MyBatis 是一個基於Java的持久層框架
3.3. CSS樣式會修改嗎?
Jquery的css方法進行修改
$("p").css("background-color","yellow");
jQuery addClass() 方法
$("div").addClass("important");
3.4. 常用的設計模式有哪些?
單例模式、工廠模式、修飾者模式等。更多設計模式(菜鳥教程)
4. 海博智訊&北京國能智研資訊科技有限公司
Java基礎:
4.1. StringBuffer的實現方式。如何實現擴充。
StringBuffer初始化及擴容機制
Ø StringBuffer()的初始容量可以容納16個字元,當該物件的實體存放的字元的長度大於16時,實體容量就自動增加。StringBuffer物件可以通過length()方法獲取實體中存放的字元序列長度,通過capacity()方法來獲取當前實體的實際容量。
Ø StringBuffer(int size)可以指定分配給該物件的實體的初始容量引數為引數size指定的字元個數。當該物件的實體存放的字元序列的長度大於size個字元時,實體的容量就自動的增加。以便存放所增加的字元。
Ø StringBuffer(String s)可以指定給物件的實體的初始容量為引數字串s的長度額外再加16個字元。當該物件的實體存放的字元序列長度大於size個字元時,實體的容量自動的增加,以便存放所增加的字元。
4.2. StringBuffer與String的區別
Ø StringBuffer類和String一樣,也用來代表字串,只是由於StringBuffer的內部實現方式和String不同,所以StringBuffer在進行字串處理時,不生成新的物件,在記憶體使用上要優於String類。
Ø 所以在實際使用時,如果經常需要對一個字串進行修改,例如插入、刪除等操作,使用StringBuffer要更加適合一些。
Ø 在StringBuffer類中存在很多和String類一樣的方法,這些方法在功能上和String類中的功能是完全一樣的。
Ø 但是有一個最顯著的區別在於,對於StringBuffer物件的每次修改都會改變物件自身,這點是和String類最大的區別。
Ø 另外由於StringBuffer是執行緒安全的,所以在多執行緒程式中也可以很方便的進行使用,但是程式的執行效率相對來說就要稍微慢一些。
4.3. StringBuffer與StringBuilder的區別,及實現原理
區別
Ø StringBuffer 與 StringBuilder 中的方法和功能完全是等價的,只是StringBuffer 中的方法大都採用了 synchronized 關鍵字進行修飾,因此是執行緒安全的,而 StringBuilder 沒有這個修飾,可以被認為是執行緒不安全的。
Ø 在單執行緒程式下,StringBuilder效率更快,因為它不需要加鎖,不具備多執行緒安全而StringBuffer則每次都需要判斷鎖,效率相對更低
實現原理
StringBuffer初始化及擴容機制
Ø StringBuffer()的初始容量可以容納16個字元,當該物件的實體存放的字元的長度大於16時,實體容量就自動增加。StringBuffer物件可以通過length()方法獲取實體中存放的字元序列長度,通過capacity()方法來獲取當前實體的實際容量。
Ø StringBuffer(int size)可以指定分配給該物件的實體的初始容量引數為引數size指定的字元個數。當該物件的實體存放的字元序列的長度大於size個字元時,實體的容量就自動的增加。以便存放所增加的字元。
Ø StringBuffer(String s)可以指定給物件的實體的初始容量為引數字串s的長度額外再加16個字元。當該物件的實體存放的字元序列長度大於size個字元時,實體的容量自動的增加,以便存放所增加的字元。
4.4. ClassLoader的功能和工作模式。
Classloader 類載入器,用來載入Java類到 Java 虛擬機器中的一種載入器。
每個執行中的執行緒都有一個成員contextClassLoader,用來在執行時動態地載入其它類
系統預設的contextClassLoader是systemClassLoader,所以一般而言java程式在執行時可以使用JVM自帶的類、$JAVA_HOME/jre/lib/ext/中的類和$CLASSPATH/中的類
可以使用Thread.currentThread().setContextClassLoader(...);更改當前執行緒的contextClassLoader,來改變其載入類的行為
ClassLoader被組織成樹形,一般的工作原理是:
1) 執行緒需要用到某個類,於是contextClassLoader被請求來載入該類
2) contextClassLoader請求它的父ClassLoader來完成該載入請求
3) 如果父ClassLoader無法載入類,則contextClassLoader試圖自己來載入
Java中一共有四個類載入器,之所以叫類載入器,是程式要用到某個類的時候,要用類載入器載入記憶體。
這四個類載入器分別為:Bootstrap ClassLoader、Extension ClassLoader、AppClassLoader
和URLClassLoader,他們的作用其實從名字就可以大概推測出來了。其中AppClassLoader在很多地方被叫做System ClassLoader
Bootstrap ClassLoadr是在JVM開始執行的時候載入java的核心類,是用C++編寫的,它用來載入核心類庫
4.5. ==和equals的區別。
Ø ==號在比較基本資料型別時比較的是值,而用==號比較兩個物件時比較的是兩個物件的地址
Ø equals()方法存在於Object類中,因為Object類是所有類的直接或間接父類,也就是說所有的類中的equals()方法都繼承自Object類,而通過原始碼我們發現,Object類中equals()方法底層依賴的是==號,那麼,在所有沒有重寫equals()方法的類中,呼叫equals()方法其實和使用==號的效果一樣,也是比較的地址值
4.6. 什麼是執行緒安全?舉例說明一個執行緒不安全的例子。
Ø 執行緒安全 就是多執行緒訪問時,採用了加鎖機制,當一個執行緒訪問該類的某個資料時,進行保護,其他執行緒不能進行訪問直到該執行緒讀取完,其他執行緒才可使用。不會出現資料不一致或者資料汙染。
Ø 執行緒不安全 就是不提供資料訪問保護,有可能出現多個執行緒先後更改資料造成所得到的資料是髒資料
String執行緒不安全
4.7. 說出資料連線池的工作機制,解決什麼問題。
資料庫連線和關閉時非常耗時的過程,資料庫連線池解決,資料庫連線操作後,不關閉連線,而是暫時存放起來,當別人使用時,把這個連線給他們使用。
原理:
J2EE伺服器啟動時會建立一定數量的池連線,並一直維持不少於此數目的池連線。客戶端程式需要連線時,池驅動程式會返回一個未使用的池連線並將其表記為忙。如果當前沒有空閒連線,池驅動程式就新建一定數量的連線,新建連線的數量有配置引數決定。當使用的池連線呼叫完成後,池驅動程式將此連線表記為空閒,其他呼叫就可以使用這個連線。
4.8. 一個字串”java Java JAVa JaVa lloveJAVA you hateJava afasdfasdf”把其中奇數位java(大小寫不敏感)替換成java,偶數位替換成JAVA
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;
public class Test {
public static void main(String[] args) {
Pattern p = Pattern.compile("java", Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher("java Java JAVaJaVaIloveJAVA you hateJavaafasdfasdf");
StringBufferbuf = new StringBuffer();
int i=0;
while(m.find()) {
i++;
if(i%2 == 0) {
m.appendReplacement(buf, "java");
} else {
m.appendReplacement(buf, "JAVA");
}
}
m.appendTail(buf);
p(buf);
}
}
資料庫:
4.9. 經常使用的資料庫的優化方法。
索引,快取,sql優化,分表等
4.10. 薪水最高的第10到第20名僱員Oracle和MySQL的實現
MySQL: selectename, sal from emp order by saldesc LIMIT 10,10
Oracle: selectename, sal
from (select ename, sal, rownum r
from (select ename, sal from emp order by saldesc) ) where r >= 10 and r <= 20
演算法:
4.11. ArrayList、LinkedList、HashMap的儲存效能和特點。
ArrayList(查詢效能高,插入刪除效能低)LinkedList(查詢效能低,插入刪除效能高)
HashMap(效能介於兩者之間),儲存效能和特點。
4.12. 用任意方法對int型別的陣列進行排序(Collections.Sort(ArrayList))。
public class NumSort {
public static void main(String[] args) {
int[] a = new int[args.length];
for (int i = 0; i < args.length; i++) {
a[i] = Integer.parseInt(args[i]);
}
print(a);
selectionSort(a);
print(a);
}
private static void selectionSort(int[] a) {
int k, temp;
for (int i = 0; i < a.length; i++) {
k = i;
for (int j = k + 1; j < a.length; j++) {
if (a[j] < a[k]) {
k = j;
}
}
if (k != i) {
temp = a[i];
a[i] = a[k];
a[k] = temp;
}
}
}
private static void print(int[] a) {
for (int i = 0; i < a.length; i++) {
System.out.print(a[i] + "");
}
System.out.println();
}
}
架構:
4.13. 描述MVC的設計思想。
控制器Controller- 負責轉發請求,對請求進行處理。檢視View - 介面設計人員進行圖形介面設計。
模型Model - 程式設計師編寫程式應有的功能(實現演算法等等)、資料庫專家進行資料管理和資料庫設計
4.14. Spring的核心理念是什麼。
ioc,aop(動態代理)
4.15. 談一下自己最熟悉的web框架。
Freemarker、Spring、SpringMVC
面試:
4.16. Redis有什麼缺陷,Redis最近出現了一個漏洞你知道嗎?
15年11月初Redis未授權訪問漏洞
Redis 預設情況下,會繫結在 0.0.0.0:6379,這樣將會將 Redis 服務暴露到公網上,如果在沒有開啟認證的情況下,可以導致任意使用者在可以訪問目標伺服器的情況下未授權訪問 Redis 以及讀取 Redis 的資料。攻擊者在未授權訪問 Redis 的情況下可以利用 Redis 的相關方法,可以成功在 Redis 伺服器上寫入公鑰,進而可以使用對應私鑰直接登入目標伺服器。
修復建議
ü 禁止一些高危命令
修改 redis.conf 檔案,新增
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""
來禁用遠端修改 DB 檔案地址
ü 以低許可權執行 Redis 服務
為 Redis 服務建立單獨的使用者和家目錄,並且配置禁止登陸
ü 為 Redis 新增密碼驗證
修改 redis.conf 檔案,新增
requirepass mypassword
ü 禁止外網訪問 Redis
修改 redis.conf 檔案,新增或修改
bind 127.0.0.1
使得 Redis 服務只在當前主機可用
4.17. 然後介紹自己負責的模組,簡單說一下Spring,MyBatis的SQL片段
4.18. Spring如何實現多例模式JavaBean或者是xml配置
4.19. 你們使用Zookeeper主要做什麼。
4.20. 專案中有用到負載均衡嗎,怎麼實現的。
4.21. 公司用到了多少個tomcat伺服器。
4.22. 公司用的是什麼資料庫,有幾臺。
4.23. 如何在url中獲取引數,例如id/5
5. 北京國能智研資訊科技有限公司
自我介紹,專案介紹,模組介紹。
是否用過Oracle。
MySQL的行轉列查詢。
之前的公司一共有多少人。
6. 北京華宇資訊科技有限公司
專案的開發流程
專案的描述
詳細的介紹一下負責的模組
Dubbo、Zookeeper和ActiveMQ的應用場景
簡單說一下Redis
7. 嘉實基金&和信康
aop的底層設計模式
Spring的底層原理
SQL漏洞及防SQL注入
獲取oracle的當前時間
事物的原理
iso8859-1轉utf-8
solr中把資料新增到索引庫
jvm的工作原理
手機號的正則表示式
css的樣式
8. 和信康
sql優化
支付回撥函式方面
aop用到了哪些場景裡(詳細說出)
rabbitMQ
zookeeper的底層原理
redis提問好多好多
9. 阿爾山金融有限公司
抽象類和介面有什麼區別?
List、Set、Map三個介面,存取元素時各有什麼特點?
Switch是否能作用在byte上,是否能作用在long上?
try{}裡面有一個return語句,那麼緊跟在這個try後的finally{}裡的code會不會被執行,什麼時候執行,在return前還是return後?
Int和integer有什麼區別?
&和&&的區別?
Char型變數中能不能儲存一箇中文漢字?為什麼?
如何對一個字串str進行”GBK”編碼?如何對一個位元組陣列b[]進行”GBK”解碼?
北京甘為科技有限公司
面試題目:
沒有做題,1.說一下redis的叢集的安裝過程,
2.怎樣進行sql優化,其中如果要死非得在where子句中書寫計算條件的話,那應該怎麼辦?
3.aglajs用的是幾版本的?
AngularJS、 Angular 2、Angular 4
4.圖片輪播圖
前段時間公司堅持不下去了,所以加入了找工作的大軍。上一家公司是一家o2o創業公司,在裡面呆了一年半多,現有的公司的產品就是從零開始一點點參與完善迭代的,在這個過程中從中也學到了很多也成長了很多,更認識了一幫可愛的同事。
奈何大環境不好,公司已經堅持不下去了,所
某公司人工智慧面試總結
2018年09月01日 20:31:11 zhoujl48 閱讀數:1821
本文用於記錄這幾天面試下來的一些流程和心得體會,重點記錄XXXX部門的三場面試,瞭解自己的優勢,更重要的是發現自己的不足,以便在日後針對性的加強學習和進步!
序言:
今年2月中下旬因為個人原因,換了一份工作,3月初期間面試了有3,4家,基本都是D輪或者剛剛上市的公司,也有上榜的BAT,也從他們的面試筆試中看到了自己的一些不足,於是就想寫出來和大家分享一下,如果能幫到正在面試的小夥伴更好。從面試題中,其實可以看到一些行業的發展,以
原文地址:http://blog.csdn.net/lihouyi2010/article/details/50179191
從2015年8月到2015年10月,花了3個月時間找工作,先後通過內推參加了美團、阿里螞蟻金服、京東、騰訊、今日頭條、Growing IO、微
一、心態
心態很重要!
心態很重要!
心態很重要! 重要的事情說三遍,這一點我覺得是必須放到前面來講。
找工作之前,有一點你必須清楚,就是找工作是一件看緣分的事情,不是你很牛,你就一定能進你想進的公司,都是有一個概率在那。如果你基礎好,專案經驗足
面試問題彙總1. 中科柏誠科技股份有限公司ssh,設計模式,業務邏輯,技術點,開發流程,表怎麼設計的,有多少表,sql優化會嗎,怎麼做的,前端會多少,會什麼,具體說說,你印象最深的模組,你印象最深的模組
今天上午面試完騰訊,感覺專案部分被洗的不輕啊,實習專案被追問,網路爬蟲專案被逼問,一個問題結一個問題的深入,剛介紹完專案,就開始問為什麼用epoll一步步深入了;理論基礎部分個人感覺回答感覺不錯,都回答上了,很基礎,下面針對基礎部分總結一下,分享給大家,希望對大家有一些幫助。
這是一位攻城獅面試了近十家網際網路公司總結下來的經驗之談:
我現在主要的方向是Java服務端開發,把遇到的問題和大家分享一下,也談談關於技術人員如何有方向的提高自己,做到有的放矢。
面試遇到的問題
1
百度
百度最近真是炙手可熱,貼吧事件剛結束,醫療競價排名又鬧 pan html元素 內容 brush bre 省略號 import als earlier
表格:Cellspacing:單元格間距,cellpadding:單元格內容之間的空隙,colspan:合並列數,rowspan:合並行數,表頭caption,border-sp javascrip 類型 作用域鏈 word doc locals session jsonp 作用域
ajax優缺點
json和jsonP區別
省市聯動
全選
數組去重:
如何消除一個數組裏面重復的元素?
// 方法一:
var arr1 =[1,2,2,2,3,3,3 pac 占用 .cn 類型 ++ http 內存 ack 總結 指定對齊值:#pragma pack(n),n=1,2,4,8,16改變系統的對齊系數struct和union都是由多個不同的數據類型成員組成, 但在任何同一時刻, union中只存放了一個被選中的成員, 而s tile 說明 exception 處理 通信 析構 單繼承 完成 參數表 文章出處http://www.cnblogs.com/IUbanana/p/7116520.html
關鍵字:
final finalize finally
throws和throw
static python 面試題金* python開發工程師:1. 字符串連接+和join的區別:主要考察兩種實現方式內存管理: 字符串對象是不可改變的,Python創建一個字符串後,你不能把這個字符中的某一部分改變。任何對字符串的操作包括‘+‘操作符, 每次‘+’連接時都將申請一個內存空間,創建一個新的字符 知識 一個 details mysql常用命令 target lte itl evo 效率 總結自己在面試過程遇到的數據庫問題,以備不時之需。
1、你在你們公司用的什麽版本的mysql數據庫,用過mysql5.7嗎?
在學校學習mysql的時候用的5.5,在公司的時候用 機制 不定 pack 目錄結構 沙盒目錄 ios多線程 必須 ken 隱藏參數
唐巧的一篇面試總結
設計模式是什麽? 你知道哪些設計模式,並簡要敘述?
設計模式是一種編碼經驗,就是用比較成熟的邏輯去處理某一種類型的事情。
1). MVC模式:Model View Con public tree 語句 位置 eth spa 退出 系統 保存 一面沒位置就沒做面試題隨便找個了地方面試,一面問了幾個基礎的東西。回答的不是很好 基礎的好多東西都忘了。現在大概整理下
一個面試題:字符串翻轉 寫一個函數 可以把“360安全衛士” 轉成“士衛 java數據庫類作為後端開發,可以說數據庫是重之又重。提問的比例也相當之大。所以這裏先記錄下這個。如何快速導入10萬條數據到MySQL數據庫?這個應該當時很緊張,居然半天說不出來。其實當時心裏有一個答案了,就是存儲過程。但是因為平常開發基本上沒用到過這東西,所以都不敢說了。。網上還有有一些答案說批處理,通過s 訪問 列表 無法 strong 實例 執行 clas 方法名 jvm加載類 1、java基本語法
static :靜態的~
static :靜態變量、靜態方法;
被修飾的成員變量或者方法獨立於該類的任何對象,只要該類被加載,被修飾的成員變量或者方法就存在並可以使用。
fifo hash enumset -a next() 專用 table 集合接口 sorted 1、集合樹狀圖
Collection:最基本的集合接口
----List:有序集合,集合中的元素可以重復,訪問集合中的元素可以根據元素的索引來訪問
----Arra 相關推薦
公司面試總結
近期參加的各大公司面試總結
某公司人工智慧面試總結
iOS 面試總結(上市公司·BAT·)
國內網際網路公司演算法&機器學習崗(阿里星)面試總結
2017年BAT,京東,美團,滴滴等公司面試經驗總結
公司面試問題總結
c++面試總結(騰訊公司)
阿里、百度、搜狐、優土等網際網路公司面試經驗總結
前端面試總結(css)
前端面試總結(JavaScript)
常用C++面試總結
Java 面試總結 面試常問的關鍵字總結
python 面試總結
面試總結之mysql
iOS - 面試總結
360 php 面試總結
史上最全的JAVA面試總結
JAVA面試總結
JAVA面試總結--集合