基本概念前端
操做系統中 heap 和 stack 的區別 什麼是基於註解的切面實現 什麼是 對象/關係 映射集成模塊 什麼是 Java 的反射機制 什麼是 ACID BS與CS的聯繫與區別 Cookie 和 Session的區別 fail-fast 與 fail-safe 機制有什麼區別 get 和 post請求的區別 Interface 與 abstract 類的區別 IOC的優勢是什麼 IO 和 NIO的區別,NIO優勢 Java 8 / Java 7 爲咱們提供了什麼新功能 什麼是競態條件? 舉個例子說明。 JRE、JDK、JVM 及 JIT 之間有什麼不一樣 MVC的各個部分都有那些技術來實現?如何實現? RPC 通訊和 RMI 區別 什麼是 Web Service(Web服務) JSWDL開發包的介紹。JAXP、JAXM的解釋。SOAP、UDDI,WSDL解釋。 WEB容器主要有哪些功能? 並請列出一些常見的WEB容器名字。 一個".java"源文件中是否能夠包含多個類(不是內部類)?有什麼限制 簡單說說你瞭解的類加載器。是否實現過類加載器 解釋一下什麼叫AOP(面向切面編程) 請簡述 Servlet 的生命週期及其相關的方法 請簡述一下 Ajax 的原理及實現步驟 簡單描述Struts的主要功能 什麼是 N 層架構 什麼是CORBA?用途是什麼 什麼是Java虛擬機?爲何Java被稱做是「平臺無關的編程語言」 什麼是正則表達式?用途是什麼?哪一個包使用正則表達式來實現模式匹配 什麼是懶加載(Lazy Loading) 什麼是尾遞歸,爲何須要尾遞歸 什麼是控制反轉(Inversion of Control)與依賴注入(Dependency Injection) Java架構/分佈式/高併發學習交流羣:725633148java
關鍵字react
finalize 什麼是finalize()方法 finalize()方法何時被調用 析構函數(finalization)的目的是什麼 final 和 finalize 的區別 final final關鍵字有哪些用法 final 與 static 關鍵字能夠用於哪裏?它們的做用是什麼 final, finally, finalize的區別 final、finalize 和 finally 的不一樣之處? 可否在運行時向 static final 類型的賦值 使用final關鍵字修飾一個變量時,是引用不能變,仍是引用的對象不能變 一個類被聲明爲final類型,表示了什麼意思 throws, throw, try, catch, finally分別表明什麼意義 Java 有幾種修飾符?分別用來修飾什麼 volatile volatile 修飾符的有過什麼實踐 volatile 變量是什麼?volatile 變量和 atomic 變量有什麼不一樣 volatile 類型變量提供什麼保證?能使得一個非原子操做變成原子操做嗎 能建立 volatile 數組嗎? transient變量有什麼特色 super何時使用 public static void 寫成 static public void會怎樣 說明一下public static void main(String args[])這段聲明裏每一個關鍵字的做用 請說出做用域public, private, protected, 以及不寫時的區別 sizeof 是Java 的關鍵字嗎 static static class 與 non static class的區別 static 關鍵字是什麼意思?Java中是否能夠覆蓋(override)一個private或者是static的方法 靜態類型有什麼特色 main() 方法爲何必須是靜態的?能不能聲明 main() 方法爲非靜態 是否能夠從一個靜態(static)方法內部發出對非靜態(non-static)方法的調用 靜態變量在何時加載?編譯期仍是運行期?靜態代碼塊加載的時機呢 成員方法是否能夠訪問靜態變量?爲何靜態方法不能訪問成員變量 switch switch 語句中的表達式能夠是什麼類型數據 switch 是否能做用在byte 上,是否能做用在long 上,是否能做用在String上 while 循環和 do 循環有什麼不一樣 操做符正則表達式
&操做符和&&操做符有什麼區別? a = a + b 與 a += b 的區別? 邏輯操做符 (&,|,^)與條件操做符(&&,||)的區別 3*0.1 == 0.3 將會返回什麼?true 仍是 false? float f=3.4; 是否正確? short s1 = 1; s1 = s1 + 1;有什麼錯? 數據結構算法
基礎類型(Primitives)數據庫
Comparator 與 Comparable 接口是幹什麼的?列出它們的區別 對象編程
拷貝(clone) 如何實現對象克隆 深拷貝和淺拷貝區別 深拷貝和淺拷貝如何實現激活機制 寫clone()方法時,一般都有一行代碼,是什麼 比較 在比較對象時,"==" 運算符和 equals 運算有何區別 若是要重寫一個對象的equals方法,還要考慮什麼 兩個對象值相同(x.equals(y) == true),但卻可有不一樣的hash code,這句話對不對 構造器 構造器鏈是什麼 建立對象時構造器的調用順序 不可變對象 什麼是不可變象(immutable object) 爲何 Java 中的 String 是不可變的(Immutable) 如何構建不可變的類結構?關鍵點在哪裏 能建立一個包含可變對象的不可變對象嗎 如何對一組對象進行排序 方法設計模式
構造器(constructor)是否可被重寫(override) 方法能夠同時便是 static 又是 synchronized 的嗎 abstract 的 method是否可同時是 static,是否可同時是 native,是否可同時是synchronized Java支持哪一種參數傳遞類型 一個對象被看成參數傳遞到一個方法,是值傳遞仍是引用傳遞 當一個對象被看成參數傳遞到一個方法後,此方法可改變這個對象的屬性,並可返回變化後的結果,那麼這裏究竟是值傳遞仍是引用傳遞 咱們可否重載main()方法 若是main方法被聲明爲private會怎樣 GC數組
概念 GC是什麼?爲何要有GC 何時會致使垃圾回收 GC是怎麼樣運行的 新老以及永久區是什麼 GC 有幾種方式?怎麼配置 何時一個對象會被GC? 如何判斷一個對象是否存活 System.gc() Runtime.gc()會作什麼事情? 能保證 GC 執行嗎 垃圾回收器能夠立刻回收內存嗎?有什麼辦法主動通知虛擬機進行垃圾回收? Minor GC 、Major GC、Young GC 與 Full GC分別在何時發生 垃圾回收算法的實現原理 若是對象的引用被置爲null,垃圾收集器是否會當即釋放對象佔用的內存? 垃圾回收的最佳作法是什麼 GC收集器有哪些 垃圾回收器的基本原理是什麼? 串行(serial)收集器和吞吐量(throughput)收集器的區別是什麼 Serial 與 Parallel GC之間的不一樣之處 CMS 收集器 與 G1 收集器的特色與區別 CMS垃圾回收器的工做過程 JVM 中一次完整的 GC 流程是怎樣的? 對象如何晉升到老年代 吞吐量優先和響應優先的垃圾收集器選擇 GC策略 舉個實際的場景,選擇一個GC策略 JVM的永久代中會發生垃圾回收嗎 收集方法 標記清除、標記整理、複製算法的原理與特色?分別用在什麼地方 若是讓你優化收集方法,有什麼思路 JVM瀏覽器
參數 說說你知道的幾種主要的jvm 參數 -XX:+UseCompressedOops 有什麼做用 類加載器(ClassLoader) Java 類加載器都有哪些 JVM如何加載字節碼文件 內存管理 JVM內存分哪幾個區,每一個區的做用是什麼 一個對象從建立到銷燬都是怎麼在這些部分裏存活和轉移的 解釋內存中的棧(stack)、堆(heap)和方法區(method area)的用法 JVM中哪一個參數是用來控制線程的棧堆棧小 簡述內存分配與回收策略 簡述重排序,內存屏障,happen-before,主內存,工做內存 Java中存在內存泄漏問題嗎?請舉例說明 簡述 Java 中軟引用(SoftReferenc)、弱引用(WeakReference)和虛引用 內存映射緩存區是什麼 jstack,jstat,jmap,jconsole怎麼用 32 位 JVM 和 64 位 JVM 的最大堆內存分別是多數?32 位和 64 位的 JVM,int 類型變量的長度是多數? 怎樣經過 Java 程序來判斷 JVM 是 32 位 仍是 64 位 JVM自身會維護緩存嗎?是否是在堆中進行對象分配,操做系統的堆仍是JVM本身管理堆 什麼狀況下會發生棧內存溢出 雙親委派模型是什麼 多線程
基本概念
基本概念 Error 和 Exception有什麼區別 UnsupportedOperationException是什麼 NullPointerException 和 ArrayIndexOutOfBoundException 之間有什麼相同之處 什麼是受檢查的異常,什麼是運行時異常 運行時異常與通常異常有何異同 簡述一個你最多見到的runtime exception(運行時異常) finally finally關鍵詞在異常處理中如何使用 若是執行finally代碼塊以前方法返回告終果,或者JVM退出了,finally塊中的代碼還會執行嗎 try裏有return,finally還執行麼?那麼緊跟在這個try後的finally {}裏的code會不會被執行,何時被執行,在return前仍是後 在什麼狀況下,finally語句不會執行 throw 和 throws 有什麼區別? OOM你遇到過哪些狀況?你是怎麼搞定的? SOF你遇到過哪些狀況? 既然咱們能夠用RuntimeException來處理錯誤,那麼你認爲爲何Java中還存在檢查型異常 當本身建立異常類的時候應該注意什麼 致使空指針異常的緣由 異常處理 handle or declare 原則應該如何理解 怎麼利用 JUnit 來測試一個方法的異常 catch塊裏別不寫代碼有什麼問題 你曾經自定義實現過異常嗎?怎麼寫的 什麼是 異常鏈 在try塊中能夠拋出異常嗎 JDBC
經過 JDBC 鏈接數據庫有哪幾種方式
闡述 JDBC 操做數據庫的基本步驟
JDBC 中如何進行事務處理
什麼是 JdbcTemplate
什麼是 DAO 模塊
使用 JDBC 操做數據庫時,如何提高讀取數據的性能?如何提高更新數據的性能
列出 5 個應該遵循的 JDBC 最佳實踐
IO
File
解釋下多態性(polymorphism),封裝性(encapsulation),內聚(cohesion)以及耦合(coupling) 多態的實現原理 封裝、繼承和多態是什麼 對象封裝的原則是什麼? 類 得到一個類的類對象有哪些方式 重載(Overload)和重寫(Override)的區別。重載的方法可否根據返回類型進行區分? 說出幾條 Java 中方法重載的最佳實踐 抽象類 抽象類和接口的區別 抽象類中是否能夠有靜態的main方法 抽象類是否可實現(implements)接口 抽象類是否可繼承具體類(concrete class) 匿名類(Anonymous Inner Class) 匿名內部類是否能夠繼承其它類?是否能夠實現接口 內部類 內部類分爲幾種 內部類能夠引用它的包含類(外部類)的成員嗎 請說一下 Java 中爲何要引入內部類?還有匿名內部類 繼承 繼承(Inheritance)與聚合(Aggregation)的區別在哪裏 繼承和組合之間有什麼不一樣 爲何類只能單繼承,接口能夠多繼承 存在兩個類,B 繼承 A,C 繼承 B,能將 B 轉換爲 C 麼?如 C = (C) B 若是類 a 繼承類 b,實現接口c,而類 b 和接口 c 中定義了同名變量,請問會出現什麼問題 接口 接口是什麼 接口是否可繼承接口 爲何要使用接口而不是直接使用具體類?接口有什麼優勢 泛型
泛型的存在是用來解決什麼問題 泛型的經常使用特色 List可否轉爲List 工具類
日曆 Calendar Class的用途 如何在Java中獲取日曆類的實例 解釋一些日曆類中的重要方法 GregorianCalendar 類是什麼 SimpleTimeZone 類是什麼 Locale類是什麼 如何格式化日期對象 如何添加小時(hour)到一個日期對象(Date Objects) 如何將字符串 YYYYMMDD 轉換爲日期 Math Math.round()什麼做用?Math.round(11.5) 等於多少?Math.round(-11.5)等於多少? XML XML文檔定義有幾種形式?它們之間有何本質區別?解析XML文檔有哪幾種方式?DOM 和 SAX 解析器有什麼不一樣? Java解析XML的方式 用 jdom 解析 xml 文件時如何解決中文問題?如何解析 你在項目中用到了 XML 技術的哪些方面?如何實現 動態代理
描述動態代理的幾種實現方式,分別說出相應的優缺點 設計模式
什麼是設計模式(Design Patterns)?你用過哪一種設計模式?用在什麼場合 你知道哪些商業級設計模式? 哪些設計模式能夠增長系統的可擴展性 單例模式
用一句話歸納 Web 編程的特色 Google是如何在一秒內把搜索結果返回給用戶 哪一種依賴注入方式你建議使用,構造器注入,仍是 Setter方法注入 樹(二叉或其餘)造成許多普通數據結構的基礎。請描述一些這樣的數據結構以及什麼時候可使用它們 某一項功能如何設計 線上系統忽然變得異常緩慢,你如何查找問題 什麼樣的項目不適合用框架 新浪微博是如何實現把微博推給訂閱者 簡要介紹下從瀏覽器輸入 URL 開始到獲取到請求界面以後 Java Web 應用中發生了什麼 請你談談SSH整合 高併發下,如何作到安全的修改同一行數據 12306網站的訂票系統如何實現,如何保證不會票不被超賣 網站性能優化如何優化的 聊了下曾經參與設計的服務器架構 請思考一個方案,實現分佈式環境下的 countDownLatch 請思考一個方案,設計一個能夠控制緩存整體大小的自動適應的本地緩存 在你的職業生涯中,算得上最困難的技術挑戰是什麼 如何寫一篇設計文檔,目錄是什麼 大寫的O是什麼?舉幾個例子 編程中本身都怎麼考慮一些設計原則的,好比開閉原則,以及在工做中的應用 解釋一下網絡應用的模式及其特色 設計一個在線文檔系統,文檔能夠被編輯,如何防止多人同時對同一份文檔進行編輯更新 說出數據鏈接池的工做機制是什麼 怎麼獲取一個文件中單詞出現的最高頻率 描述一下你最經常使用的編程風格 若是有機會從新設計大家的產品,你會怎麼作 如何搭建一個高可用系統 如何啓動時不需輸入用戶名與密碼 如何在基於Java的Web項目中實現文件上傳和下載 如何實現一個秒殺系統,保證只有幾位用戶能買到某件商品。 如何實現負載均衡,有哪些算法能夠實現 如何設計一個購物車?想一想淘寶的購物車如何實現的 如何設計一套高併發支付方案,架構如何設計 如何設計創建和保持 100w 的長鏈接 如何避免瀏覽器緩存。 如何防止緩存雪崩 若是AB兩個系統互相依賴,如何解除依 若是有人惡意建立非法鏈接,怎麼解決 若是有幾十億的白名單,天天白天須要高併發查詢,晚上須要更新一次,如何設計這個功能 若是系統要使用超大整數(超過long長度範圍),請你設計一個數據結構來存儲這種超大型數字以及設計一種算法來實現超大整數加法運算) 若是要設計一個圖形系統,請你設計基本的圖形元件(Point,Line,Rectangle,Triangle)的簡單實現 若是讓你實現一個併發安全的鏈表,你會怎麼作 應用服務器與WEB 服務器的區別?應用服務器怎麼監控性能,各類方式的區別?你使用過的應用服務器優化技術有哪些 大型網站在架構上應當考慮哪些問題 有沒有處理過線上問題?出現內存泄露,CPU利用率標高,應用無響應時如何處理的 最近看什麼書,印象最深入的是什麼 描述下經常使用的重構技巧 你使用什麼版本管理工具?分支(Branch)與標籤(Tag)之間的區別在哪裏 你有了解過存在哪些反模式(Anti-Patterns)嗎 你用過的網站前端優化的技術有哪些 如何分析Thread dump 你如何理解AOP中的鏈接點(Joinpoint)、切點(Pointcut)、加強(Advice)、引介(Introduction)、織入(Weaving)、切面(Aspect)這些概念 你是如何處理內存泄露或者棧溢出問題的 大家線上應用的 JVM 參數有哪些 怎麼提高系統的QPS和吞吐量 知識面
解釋什麼是 MESI 協議(緩存一致性) 談談 reactor 模型 Java 9 帶來了怎樣的新功能 Java 與 C++ 對比,C++ 或 Java 中的異常處理機制的簡單原理和應用 簡單講講 Tomcat 結構,以及其類加載器流程 虛擬內存是什麼 闡述下 SOLID 原則 請簡要講一下你對測試驅動開發(TDD)的認識 CDN實現原理 Maven 和 ANT 有什麼區別 UML中有哪些經常使用的圖 Linux Linux 下 IO 模型有幾種,各自的含義是什麼。 Linux 系統下你關注過哪些內核參數,說說你知道的 Linux 下用一行命令查看文件的最後五行 平時用到哪些 Linux 命令 用一行命令輸出正在運行的 Java 進程 使用什麼命令來肯定是否有 Tomcat 實例運行在機器上 什麼是 N+1 難題 什麼是 paxos 算法 什麼是 restful,講講你理解的 restful 什麼是 zab 協議 什麼是領域模型(domain model)?貧血模型(anaemic domain model) 和充血模型(rich domain model)有什麼區別 什麼是領域驅動開發(Domain Driven Development) 介紹一下了解的 Java 領域的 Web Service 框架 Web Server、Web Container 與 Application Server 的區別是什麼 微服務(MicroServices)與巨石型應用(Monolithic Applications)之間的區別在哪裏 描述 Cookie 和 Session 的做用,區別和各自的應用範圍,Session工做原理 你經常使用的持續集成(Continuous Integration)、靜態代碼分析(Static Code Analysis)工具備哪些 簡述下數據庫正則化(Normalizations) KISS,DRY,YAGNI 等原則是什麼含義 分佈式事務的原理,優缺點,如何使用分佈式事務? 布式集羣下如何作到惟一序列號 網絡 HTTPS 的加密方式是什麼,講講整個加密解密流程 HTTPS和HTTP的區別 HTTP鏈接池實現原理 HTTP集羣方案 Nginx、lighttpd、Apache三大主流 Web服務器的區別 是否看過框架的一些代碼 持久層設計要考慮的問題有哪些?你用過的持久層框架有哪些 數值提高是什麼 你能解釋一下里氏替換原則嗎 你是如何測試一個應用的?知道哪些測試框架 傳輸層常見編程協議有哪些?並說出各自的特色 編程題
計算加班費
加班10小時如下加班費是時薪的1.5倍。加班10小時或以上,按4元/時算。提示:(一個月工做26天,一天正常工做8小時)
計算1000月薪,加班9小時的加班費 計算2500月薪,加班11小時的加班費 計算1000月薪,加班15小時的加班費 賣東西
一家商場有紅蘋果和青蘋果出售。(紅蘋果5元/個,青蘋果4元/個)。
模擬一個進貨。紅蘋果跟青蘋果各進200個。 模擬一個出售。紅蘋果跟青蘋果各買出10個。每賣出一個蘋果須要進行統計。 提示:一個蘋果是一個單獨的實體。
日期提取
有這樣一個時間字符串:2008-8-8 20:08:08 , 請編寫可以匹配它的正則表達式,並編寫Java代碼將日期後面的時分秒提取出來,即:20:08:08
線程
8設計4個線程,其中兩個線程每次對j增長1,另外兩個線程對j每次減小1。寫出程序。 用Java寫一個多線程程序,如寫四個線程,二個加1,二個對一個變量減一,輸出 wait-notify 寫一段代碼來解決生產者-消費者問題 數字
判斷101-200之間有多少個素數,並輸出全部素數 用最有效率的方法算出2乘以17等於多少 有 1 億個數字,其中有 2 個是重複的,快速找到它,時間和空間要最優 2 億個隨機生成的無序整數,找出中間大小的值 10 億個數字裏裏面找最小的 10 個 1到1億的天然數,求全部數的拆分後的數字之和,如286 拆分紅二、八、6,如1到11拆分後的數字之和 => 1 + ... + 9 + 1 + 0 + 1 + 1 一個數若是剛好等於它的因子之和,這個數就稱爲 「完數 「。例如6=1+2+3.編程 找出1000之內的全部完數 一個數組中全部的元素都出現了三次,只有一個元素出現了一次找到這個元素 一球從100米高度自由落下,每次落地後反跳回原高度的一半;再落下,求它在 第10次落地時,共通過多少米?第10次反彈多高? 求100-1000內質數的和 求1到100的和的平均數 求s=a+a+aaa+aaaa+aa…a的值,其中a是一個數字。例如2+22+222+2222+22222(此時共有5個數相加),幾個數相加有鍵盤控制。 求出1到100的和 算出1到40的質數,放進數組裏 顯示放組裏的數 找出第[5]個數 刪除第[9]個數,再顯示刪除後的第[9]個 有 3n+1 個數字,其中 3n 箇中是重複的,只有 1 個是不重複的,怎麼找出來。 有一組數1.1.2.3.5.8.13.21.34。寫出程序隨便輸入一個數就能給出和前一組數字同規律的頭5個數 計算指定數字的階乘 開發 Fizz Buzz 給定一個包含 N 個整數的數組,找出丟失的整數 一個排好序的數組,找出兩數之和爲m的全部組合 將一個正整數分解質因數。例如:輸入90,打印出90=233*5。 打印出全部的 「水仙花數 「,所謂 「水仙花數 「是指一個三位數,其各位數字立方和等於該數自己。例如:153是一個 「水仙花數 「,由於153=1的三次方+5的三次方+3的三次方 原地交換兩個變量的值 找出4字節整數的中位數 找到整數的平方根 實現斐波那契 網絡 用Java Socket編程,讀服務器幾個字符,再寫入本地顯示 反射
反射機制提供了什麼功能? 反射是如何實現的 哪裏用到反射機制 反射中 Class.forName 和 ClassLoader 區別 反射建立類實例的三種方式是什麼 如何經過反射調用對象的方法 如何經過反射獲取和設置對象私有字段的值 反射機制的優缺點 數據庫
寫一段 JDBC 連Oracle的程序,並實現數據查詢 算法
50我的圍坐一圈,當數到三或者三的倍數出圈,問剩下的人是誰,原來的位置是多少 實現一個電梯模擬器用 寫一個冒泡排序 寫一個折半查找 隨機產生20個不能重複的字符並排序 寫一個函數,傳入 2 個有序的整數數組,返回一個有序的整數數組 寫一段代碼在遍歷 ArrayList 時移除一個元素 古典問題:有一對兔子,從出生後第3個月起每月都生一對兔子,小兔子長到第四個月後每月又生一對兔子,假如兔子都不死,問每月的兔子總數爲多少 約瑟芬環遊戲 正則
請編寫一段匹配IP地址的正則表達式 寫出一個正則表達式來判斷一個字符串是不是一個數字 字符串
寫一個方法,入一個文件名和一個字符串,統計這個字符串在這個文件中出現的次數。 寫一個程序找出全部字符串的組合,並檢查它們是不是迴文串 寫一個字符串反轉函數,輸入abcde轉換成edcba代碼 小遊戲,倒轉句子中的單詞 將GB2312編碼的字符串轉換爲ISO-8859-1編碼的字符串 請寫一段代碼來計算給定文本內字符「A」的個數。分別用迭代和遞歸兩種方式 編寫一個截取字符串的函數,輸入爲一個字符串和字節數,輸出爲按字節截取的字符串。 可是要保證漢字不被截半個,如「我ABC」4,應該截爲「我AB」,輸入「我ABC漢DEF」,6,應該輸出爲「我ABC」而不是「我ABC+漢的半個」 給定 2 個包含單詞列表(每行一個)的文件,編程列出交集 打印出一個字符串的全部排列 將一個鍵盤輸入的數字轉化成中文輸出(例如:輸入1234567,輸出:一百二拾三萬四千五百六拾七) 在Web應用開發過程當中常常遇到輸出某種編碼的字符,如從 GBK 到 ISO8859-1等,如何輸出一個某種編碼的字符串