1. 程式人生 > >公司面試問題總結

公司面試問題總結

面試問題彙總

1. 中科柏誠科技股份有限公司

ssh,設計模式,業務邏輯,技術點,開發流程,表怎麼設計的,有多少表,sql優化會嗎,怎麼做的,前端會多少,會什麼,具體說說,你印象最深的模組,你印象最深的模組開發是遇到的問題,怎麼解決的,叢集的搭建

2. 優鍩科技&文思海輝

前端用的js有什麼

開發的時候前端都用了什麼

前端都會什麼東西

3. 文思海輝

3.1. MybatisHibernate的區別?

Hibernate

    Hibernate是建立在若干POJO通過xml對映檔案(或註解)提供的規則對映到資料庫表上的。我們可以通過POJO直接操作資料庫的資料,他提供的是一種全表對映的模型。相對而言,

HibernateJDBC的封裝程度還是比較高的,我們已經不需要寫SQL,只要使用HQL語言就可以了。

    使用Hibernate進行程式設計有以下好處:

    1,消除了程式碼的對映規則,它全部分離到了xml或者註解裡面去配置。

    2,無需在管理資料庫連線,它也配置到xml裡面了。

    3,一個會話中不需要操作多個物件,只需要操作Session物件。

    4,關閉資源只需要關閉一個Session便可。

    這就是Hibernate的優勢,在配置了對映檔案和資料庫連線檔案後,Hibernate就可以通過Session操作,非常容易,消除了jdbc帶來的大量程式碼,大大提高了程式設計的簡易性和可讀性。

Hibernate還提供了級聯,快取,對映,一對多等功能。Hibernate是全表對映,通過HQL去操作pojo進而操作資料庫的資料。

    Hibernate的缺點:

    1,全表對映帶來的不便,比如更新時需要傳送所有的欄位。

    2,無法根據不同的條件組裝不同的SQL

    3,對多表關聯和複雜的sql查詢支援較差,需要自己寫sql,返回後,需要自己將資料封裝為pojo

    4,不能有效的支援儲存過程。

    5,雖然有HQL,但是效能較差,大型網際網路系統往往需要優化sql,而hibernate做不到。

Mybatis

    為了解決Hibernate的不足,Mybatis出現了,

Mybatis是半自動的框架。之所以稱它為半自動,是因為它需要手工匹配提供POJOsql和對映關係,而全表對映的Hibernate只需要提供pojo和對映關係即可。

   Mybatis需要提供的對映檔案包含了一下三個部分:sql,對映規則,pojo。在Mybatis裡面你需要自己編寫sql,雖然比Hibernate配置多,但是Mybatis可以配置動態sql,解決了hibernate表名根據時間變化,不同條件下列不一樣的問題,同時你也可以對sql進行優化,通過配置決定你的sql對映規則,也能支援儲存過程,所以對於一些複雜和需要優化效能的sql查詢它就更加方便。Mybatis幾乎可以做到jdbc所有能做到的事情。

什麼時候使用HibernateMybatis

    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層四層。

Spring是一個開源框架,Spring是一個輕量級的控制反轉(IoC)和麵向切面(AOP)的容器框架,還能更好的讓其他框架整合。物件之間的耦合越高,維護成本越高。因此物件的設計應使類和構件之間的耦合最小(低耦合高內聚)Spring就解決了這一點。(面向物件三大特性五大原則 + 低耦合高內聚)

SpringMVC框架是有一個MVC框架,通過實現Model-View-Controller模式來很好地將資料、業務與展現進行分離。

MyBatis 是一個基於Java的持久層框架

3.3. CSS樣式會修改嗎?

Jquerycss方法進行修改

$("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. StringBufferString的區別

Ø StringBuffer類和String一樣,也用來代表字串,只是由於StringBuffer的內部實現方式和String不同,所以StringBuffer在進行字串處理時,不生成新的物件,在記憶體使用上要優於String類。

Ø 所以在實際使用時,如果經常需要對一個字串進行修改,例如插入、刪除等操作,使用StringBuffer要更加適合一些。

Ø StringBuffer類中存在很多和String類一樣的方法,這些方法在功能上和String類中的功能是完全一樣的。

Ø 但是有一個最顯著的區別在於,對於StringBuffer物件的每次修改都會改變物件自身,這點是和String類最大的區別。

Ø 另外由於StringBuffer是執行緒安全的,所以在多執行緒程式中也可以很方便的進行使用,但是程式的執行效率相對來說就要稍微慢一些。

4.3. StringBufferStringBuilder的區別,及實現原理

區別

Ø 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,用來在執行時動態地載入其它類

系統預設的contextClassLoadersystemClassLoader,所以一般而言java程式在執行時可以使用JVM自帶的類、$JAVA_HOME/jre/lib/ext/中的類和$CLASSPATH/中的類

可以使用Thread.currentThread().setContextClassLoader(...);更改當前執行緒的contextClassLoader,來改變其載入類的行為

ClassLoader被組織成樹形,一般的工作原理是:

1) 執行緒需要用到某個類,於是contextClassLoader被請求來載入該類

2) contextClassLoader請求它的父ClassLoader來完成該載入請求

3) 如果父ClassLoader無法載入類,則contextClassLoader試圖自己來載入

Java中一共有四個類載入器,之所以叫類載入器,是程式要用到某個類的時候,要用類載入器載入記憶體。

這四個類載入器分別為:Bootstrap ClassLoaderExtension ClassLoaderAppClassLoader

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名僱員OracleMySQL的實現

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. ArrayListLinkedListHashMap的儲存效能和特點。

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的核心理念是什麼。

iocaop(動態代理)

4.15. 談一下自己最熟悉的web框架。

FreemarkerSpringSpringMVC

面試:

4.16. Redis有什麼缺陷,Redis最近出現了一個漏洞你知道嗎?

1511月初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. 然後介紹自己負責的模組,簡單說一下SpringMyBatisSQL片段

4.18. Spring如何實現多例模式JavaBean或者是xml配置

4.19. 你們使用Zookeeper主要做什麼。

4.20. 專案中有用到負載均衡嗎,怎麼實現的。

4.21. 公司用到了多少個tomcat伺服器。

4.22. 公司用的是什麼資料庫,有幾臺。

4.23. 如何在url中獲取引數,例如id/5

5. 北京國能智研資訊科技有限公司

自我介紹,專案介紹,模組介紹。

是否用過Oracle

MySQL的行轉列查詢。

之前的公司一共有多少人。

6. 北京華宇資訊科技有限公司

專案的開發流程

專案的描述

詳細的介紹一下負責的模組

DubboZookeeperActiveMQ的應用場景

簡單說一下Redis

7. 嘉實基金&和信康

aop的底層設計模式

Spring的底層原理

SQL漏洞及防SQL注入

獲取oracle的當前時間

事物的原理

iso8859-1utf-8

solr中把資料新增到索引庫

jvm的工作原理

手機號的正則表示式

css的樣式

8. 和信康

sql優化

支付回撥函式方面

aop用到了哪些場景裡(詳細說出)

rabbitMQ

zookeeper的底層原理

redis提問好多好多

9. 阿爾山金融有限公司

抽象類和介面有什麼區別?

ListSetMap三個介面,存取元素時各有什麼特點?

Switch是否能作用在byte上,是否能作用在long上?

try{}裡面有一個return語句,那麼緊跟在這個try後的finally{}裡的code會不會被執行,什麼時候執行,在return前還是return後?

Intinteger有什麼區別?

&&&的區別?

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部門的三場面試,瞭解自己的優勢,更重要的是發現自己的不足,以便在日後針對性的加強學習和進步!  

iOS 面試總結(上市公司·BAT·)

序言: 今年2月中下旬因為個人原因,換了一份工作,3月初期間面試了有3,4家,基本都是D輪或者剛剛上市的公司,也有上榜的BAT,也從他們的面試筆試中看到了自己的一些不足,於是就想寫出來和大家分享一下,如果能幫到正在面試的小夥伴更好。從面試題中,其實可以看到一些行業的發展,以

國內網際網路公司演算法&機器學習崗(阿里星)面試總結

原文地址:http://blog.csdn.net/lihouyi2010/article/details/50179191 從2015年8月到2015年10月,花了3個月時間找工作,先後通過內推參加了美團、阿里螞蟻金服、京東、騰訊、今日頭條、Growing IO、微

2017年BAT,京東,美團,滴滴等公司面試經驗總結

一、心態    心態很重要!    心態很重要!    心態很重要!   重要的事情說三遍,這一點我覺得是必須放到前面來講。    找工作之前,有一點你必須清楚,就是找工作是一件看緣分的事情,不是你很牛,你就一定能進你想進的公司,都是有一個概率在那。如果你基礎好,專案經驗足

公司面試問題總結

面試問題彙總1. 中科柏誠科技股份有限公司ssh,設計模式,業務邏輯,技術點,開發流程,表怎麼設計的,有多少表,sql優化會嗎,怎麼做的,前端會多少,會什麼,具體說說,你印象最深的模組,你印象最深的模組

c++面試總結(騰訊公司

今天上午面試完騰訊,感覺專案部分被洗的不輕啊,實習專案被追問,網路爬蟲專案被逼問,一個問題結一個問題的深入,剛介紹完專案,就開始問為什麼用epoll一步步深入了;理論基礎部分個人感覺回答感覺不錯,都回答上了,很基礎,下面針對基礎部分總結一下,分享給大家,希望對大家有一些幫助。

阿里、百度、搜狐、優土等網際網路公司面試經驗總結

這是一位攻城獅面試了近十家網際網路公司總結下來的經驗之談: 我現在主要的方向是Java服務端開發,把遇到的問題和大家分享一下,也談談關於技術人員如何有方向的提高自己,做到有的放矢。 面試遇到的問題 1  百度 百度最近真是炙手可熱,貼吧事件剛結束,醫療競價排名又鬧

前端面試總結(css)

pan html元素 內容 brush bre 省略號 import als earlier 表格:Cellspacing:單元格間距,cellpadding:單元格內容之間的空隙,colspan:合並列數,rowspan:合並行數,表頭caption,border-sp

前端面試總結(JavaScript)

javascrip 類型 作用域鏈 word doc locals session jsonp 作用域 ajax優缺點 json和jsonP區別 省市聯動 全選 數組去重: 如何消除一個數組裏面重復的元素? // 方法一: var arr1 =[1,2,2,2,3,3,3

常用C++面試總結

pac 占用 .cn 類型 ++ http 內存 ack 總結 指定對齊值:#pragma pack(n),n=1,2,4,8,16改變系統的對齊系數struct和union都是由多個不同的數據類型成員組成, 但在任何同一時刻, union中只存放了一個被選中的成員, 而s

Java 面試總結 面試常問的關鍵字總結

tile 說明 exception 處理 通信 析構 單繼承 完成 參數表 文章出處http://www.cnblogs.com/IUbanana/p/7116520.html 關鍵字: final finalize finally throws和throw static

python 面試總結

python 面試題金* python開發工程師:1. 字符串連接+和join的區別:主要考察兩種實現方式內存管理: 字符串對象是不可改變的,Python創建一個字符串後,你不能把這個字符中的某一部分改變。任何對字符串的操作包括‘+‘操作符, 每次‘+’連接時都將申請一個內存空間,創建一個新的字符

面試總結之mysql

知識 一個 details mysql常用命令 target lte itl evo 效率 總結自己在面試過程遇到的數據庫問題,以備不時之需。 1、你在你們公司用的什麽版本的mysql數據庫,用過mysql5.7嗎? 在學校學習mysql的時候用的5.5,在公司的時候用

iOS - 面試總結

機制 不定 pack 目錄結構 沙盒目錄 ios多線程 必須 ken 隱藏參數 唐巧的一篇面試總結 設計模式是什麽? 你知道哪些設計模式,並簡要敘述? 設計模式是一種編碼經驗,就是用比較成熟的邏輯去處理某一種類型的事情。 1). MVC模式:Model View Con

360 php 面試總結

public tree 語句 位置 eth spa 退出 系統 保存 一面沒位置就沒做面試題隨便找個了地方面試,一面問了幾個基礎的東西。回答的不是很好 基礎的好多東西都忘了。現在大概整理下 一個面試題:字符串翻轉 寫一個函數 可以把“360安全衛士” 轉成“士衛

史上最全的JAVA面試總結

java數據庫類作為後端開發,可以說數據庫是重之又重。提問的比例也相當之大。所以這裏先記錄下這個。如何快速導入10萬條數據到MySQL數據庫?這個應該當時很緊張,居然半天說不出來。其實當時心裏有一個答案了,就是存儲過程。但是因為平常開發基本上沒用到過這東西,所以都不敢說了。。網上還有有一些答案說批處理,通過s

JAVA面試總結

訪問 列表 無法 strong 實例 執行 clas 方法名 jvm加載類 1、java基本語法 static :靜態的~ static :靜態變量、靜態方法;   被修飾的成員變量或者方法獨立於該類的任何對象,只要該類被加載,被修飾的成員變量或者方法就存在並可以使用。  

JAVA面試總結--集合

fifo hash enumset -a next() 專用 table 集合接口 sorted 1、集合樹狀圖 Collection:最基本的集合接口   ----List:有序集合,集合中的元素可以重復,訪問集合中的元素可以根據元素的索引來訪問     ----Arra