1. 程式人生 > >搞定BAT Java面試題

搞定BAT Java面試題

下面就Java常見的面試題做一個簡單的總結,一句話掌握這些面試題,搞定BAT不是夢。

基本概念

作業系統中 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)。

關鍵字

什麼是finalize()方法

請解釋下finalize

finalize()方法什麼時候被呼叫

解構函式(finalization)的目的是什麼

final 和 finalize 的區別

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會怎樣。

static class 與 non static class的區別。

static 關鍵字是什麼意思?Java中是否可以覆蓋(override)一個private或者是static的方法。

靜態型別有什麼特點。

main() 方法為什麼必須是靜態的?能不能宣告 main() 方法為非靜態。

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)。

基礎型別(Primitives)與封裝型別(Wrappers)的區別在哪裡。

簡述九種基本資料型別的大小,以及他們的封裝類。

int 和 Integer 哪個會佔用更多的記憶體? int 和 Integer 有什麼區別?parseInt()函式在什麼時候使用到。

float和double的預設值是多少。

如何去小數四捨五入保留小數點後兩位。

char 型變數中能不能存貯一箇中文漢字,為什麼。

型別轉換

怎樣將 bytes 轉換為 long 型別。

怎麼將 byte 轉換為 String。

如何將數值型字元轉換為數字。

我們能將 int 強制轉換為 byte 型別的變數嗎?如果該值大於 byte 型別的範圍,將會出現什麼現象。

能在不進行強制轉換的情況下將一個 double 值賦值給 long 型別的變數嗎。

型別向下轉換是什麼。

陣列

如何權衡是使用無序的陣列還是有序的陣列。

怎麼判斷陣列是 null 還是為空。

怎麼列印陣列? 怎樣列印陣列中的重複元素。

Array 和 ArrayList有什麼區別?什麼時候應該使用Array而不是ArrayList。

陣列和連結串列資料結構描述,各自的時間複雜度。

陣列有沒有length()這個方法? String有沒有length()這個方法。

佇列

佇列和棧是什麼,列出它們的區別。

BlockingQueue是什麼。

簡述 ConcurrentLinkedQueue LinkedBlockingQueue 的用處和不同之處。

ArrayList、Vector、LinkedList的儲存效能和特性。

String

StringBuffer。

ByteBuffer 與 StringBuffer有什麼區別。

HashMap。

HashMap的工作原理是什麼。

內部的資料結構是什麼。

HashMap 的 table的容量如何確定?loadFactor 是什麼? 該容量如何變化?這種變化會帶來什麼問題?

HashMap 實現的資料結構是什麼?如何實現。

HashMap 和 HashTable、ConcurrentHashMap 的區別。

HashMap的遍歷方式及效率。

HashMap、LinkedMap、TreeMap的區別。

如何決定選用HashMap還是TreeMap。

如果HashMap的大小超過了負載因子(load factor)定義的容量,怎麼辦。

HashMap 是執行緒安全的嗎?併發下使用的 Map 是什麼,它們內部原理分別是什麼,比如儲存方式、 hashcode、擴容、 預設容量等。

HashSet

HashSet和TreeSet有什麼區別。

HashSet 內部是如何工作的。

WeakHashMap 是怎麼工作的?

Set

Set 裡的元素是不能重複的,那麼用什麼方法來區分重複與否呢?是用 == 還是 equals()? 它們有何區別?

TreeMap:TreeMap 是採用什麼樹實現的?TreeMap、HashMap、LindedHashMap的區別。TreeMap和TreeSet在排序時如何比較元素?Collections工具類中的sort()方法如何比較元素?

TreeSet:一個已經構建好的 TreeSet,怎麼完成倒排序。

EnumSet 是什麼?

Hash演算法

Hashcode 的作用。

簡述一致性 Hash 演算法。

有沒有可能 兩個不相等的物件有相同的 hashcode?當兩個物件 hashcode 相同怎麼辦?如何獲取值物件。

為什麼在重寫 equals 方法的時候需要重寫 hashCode 方法?equals與 hashCode 的異同點在哪裡。

a.hashCode() 有什麼用?與 a.equals(b) 有什麼關係。

hashCode() 和 equals() 方法的重要性體現在什麼地方。

Object:Object有哪些公用方法?Object類hashcode,equals 設計原則? sun為什麼這麼設計?Object類的概述。

如何在父類中為子類自動完成所有的 hashcode 和 equals 實現?這麼做有何優劣。

可以在 hashcode() 中使用隨機數字嗎?

LinkedHashMap。

LinkedHashMap 和 PriorityQueue 的區別是什麼。

List

List, Set, Map三個介面,存取元素時各有什麼特點。

List, Set, Map 是否繼承自 Collection 介面。

遍歷一個 List 有哪些不同的方式。

LinkedList

LinkedList 是單向連結串列還是雙向連結串列

LinkedList 與 ArrayList 有什麼區別

描述下 Java 中集合(Collections),介面(Interfaces),實現(Implementations)的概念。LinkedList 與 ArrayList 的區別是什麼?

插入資料時,ArrayList, LinkedList, Vector誰速度較快?

ArrayList

ArrayList 和 HashMap 的預設大小是多數

ArrayList 和 LinkedList 的區別,什麼時候用 ArrayList?

ArrayList 和 Set 的區別?

ArrayList, LinkedList, Vector的區別。

ArrayList是如何實現的,ArrayList 和 LinkedList 的區別。

ArrayList如何實現擴容。

Array 和 ArrayList 有何區別?什麼時候更適合用Array。

說出ArraList,Vector, LinkedList的儲存效能和特性。

Map

Map, Set, List, Queue, Stack的聯絡和區別。

Map 介面提供了哪些不同的集合檢視。

為什麼 Map 介面不繼承 Collection 介面。

Collections

介紹Java中的Collection FrameWork。集合類框架的基本介面有哪些

Collections類是什麼?Collection 和 Collections的區別?Collection、Map的實現

集合類框架的最佳實踐有哪些

為什麼 Collection 不從 Cloneable 和 Serializable 介面繼承

說出幾點 Java 中使用 Collections 的最佳實踐?

Collections 中 遺留類 (HashTable、Vector) 和 現有類的區別

什麼是 B+樹,B-樹,列出實際的使用場景。

介面

Comparator 與 Comparable 介面是幹什麼的?說出它們的區別。

物件

拷貝(clone)。

如何實現物件克隆。

深拷貝和淺拷貝區別。

深拷貝和淺拷貝如何實現啟用機制。

寫clone()方法時,通常都有一行程式碼,是什麼。

構造器

構造器鏈是什麼。

建立物件時構造器的呼叫順序。

不可變物件。

什麼是不可變象(immutable object)。

為什麼 Java 中的 String 是不可變的(Immutable)。

如何構建不可變的類結構?關鍵點在哪裡。

能建立一個包含可變物件的不可變物件嗎。

如何對一組物件進行排序。

方法

構造器(constructor)是否可被重寫(override)

方法可以同時即是 static 又是 synchronized 的嗎

abstract 的 method是否可同時是 static,是否可同時是 native,是否可同時是synchronized

Java支援哪種引數傳遞型別

一個物件被當作引數傳遞到一個方法,是值傳遞還是引用傳遞

當一個物件被當作引數傳遞到一個方法後,此方法可改變這個物件的屬性,並可返回變化後的結果,那麼這裡到底是值傳遞還是引用傳遞

我們能否過載main()方法。

如果main方法被宣告為private會怎樣。

垃圾回收

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自己管理堆

什麼情況下會發生棧記憶體溢位

雙親委派模型是什麼

執行緒

什麼是執行緒

多執行緒的優點

多執行緒的幾種實現方式

用 Runnable 還是 Thread

什麼是執行緒安全

Vector, SimpleDateFormat 是執行緒安全類嗎

什麼 Java 原型不是執行緒安全的

哪些集合類是執行緒安全的

多執行緒中的忙迴圈是什麼

如何建立一個執行緒

編寫多執行緒程式有幾種實現方式

什麼是執行緒區域性變數

執行緒和程序有什麼區別?程序間如何通訊,執行緒間如何通訊

什麼是多執行緒環境下的偽共享(false sharing)

同步和非同步有何異同,在什麼情況下分別使用他們?舉例說明。

啟動一個執行緒是呼叫 run() 還是 start() 方法?start() 和 run() 方法有什麼區別

呼叫start()方法時會執行run()方法,為什麼不能直接呼叫run()方法

sleep() 方法和物件的 wait() 方法都可以讓執行緒暫停執行,它們有什麼區別

yield方法有什麼作用?sleep() 方法和 yield() 方法有什麼區別

Java 中如何停止一個執行緒

stop() 和 suspend() 方法為何不推薦使用

如何在兩個執行緒間共享資料

如何強制啟動一個執行緒

如何讓正在執行的執行緒暫停一段時間

什麼是執行緒組,為什麼在Java中不推薦使用

你是如何呼叫 wait(方法的)?使用 if 塊還是迴圈?為什麼

生命週期

有哪些不同的執行緒生命週期

執行緒狀態,BLOCKED 和 WAITING 有什麼區別

畫一個執行緒的生命週期狀態圖

ThreadLocal 用途是什麼,原理是什麼,用的時候要注意什麼

ThreadPool

執行緒池是什麼?為什麼要使用它

如何建立一個Java執行緒池

ThreadPool用法與優勢

提交任務時,執行緒池佇列已滿時會發會生什麼

newCache 和 newFixed 有什麼區別?簡述原理。建構函式的各個引數的含義是什麼,比如 coreSize, maxsize 等

執行緒池的實現策略

執行緒池的關閉方式有幾種,各自的區別是什麼

執行緒池中submit() 和 execute()方法有什麼區別?

執行緒排程

Java中用到的執行緒排程演算法是什麼

什麼是多執行緒中的上下文切換

你對執行緒優先順序的理解是什麼

什麼是執行緒排程器 (Thread Scheduler) 和時間分片 (Time Slicing)。

Java Concurrency API 中 的 Lock 介面是什麼?對比同步它有什麼優勢

Lock 與 Synchronized 的區別?Lock 介面比 synchronized 塊的優勢是什麼

ReadWriteLock是什麼?

鎖機制有什麼用。

什麼是樂觀鎖(Optimistic Locking)?如何實現樂觀鎖?如何避免ABA問題。

解釋以下名詞:重排序,自旋鎖,偏向鎖,輕量級鎖,可重入鎖,公平鎖,非公平鎖,樂觀鎖,悲觀鎖。

什麼時候應該使用可重入鎖。

簡述鎖的等級方法鎖、物件鎖、類鎖。

Java中活鎖和死鎖有什麼區別?

什麼是死鎖(Deadlock)?導致執行緒死鎖的原因?如何確保 N 個執行緒可以訪問 N 個資源同時又不導致死鎖

死鎖與活鎖的區別,死鎖與飢餓的區別

怎麼檢測一個執行緒是否擁有鎖

如何實現分散式鎖。

有哪些無鎖資料結構,他們實現的原理是什麼。

讀寫鎖可以用於什麼應用場景。

Executors類是什麼? Executor和Executors的區別。

什麼是Java執行緒轉儲(Thread Dump),如何得到它。

如何在Java中獲取執行緒堆疊。

說出 3 條在 Java 中使用執行緒的最佳實踐。

線上程中你怎麼處理不可捕捉異常。

實際專案中使用多執行緒舉例。你在多執行緒環境中遇到的常見的問題是什麼?你是怎麼解決它的。

請說出與執行緒同步以及執行緒排程相關的方法。

程式中有3個 socket,需要多少個執行緒來處理。

假如有一個第三方介面,有很多個執行緒去呼叫獲取資料,現在規定每秒鐘最多有 10 個執行緒同時呼叫它,如何做到。

如何在 Windows 和 Linux 上查詢哪個執行緒使用的 CPU 時間最長。

如何確保 main() 方法所在的執行緒是 Java 程式最後結束的執行緒。

非常多個執行緒(可能是不同機器),相互之間需要等待協調才能完成某種工作,問怎麼設計這種協調方案。

你需要實現一個高效的快取,它允許多個使用者讀,但只允許一個使用者寫,以此來保持它的完整性,你會怎樣去實現它。

異常

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塊中可以丟擲異常嗎?

rxjava中map和flatmap 有什麼區別?
答:map,是把發射物件轉成另外一個物件發射出去;flatMap, 是把發射物件轉成另外一個Observable,進而把這個Observable發射的物件發射出去

序列化

什麼是序列化?如何實現 Java 序列化及注意事項

Serializable 與 Externalizable 的區別

Socket

socket 選項 TCP NO DELAY 是指什麼

Socket 工作在 TCP/IP 協議棧是哪一層

TCP、UDP 區別及 Java 實現方式

說幾點 IO 的最佳實踐

直接緩衝區與非直接緩衝器有什麼區別?

怎麼讀寫 ByteBuffer?ByteBuffer 中的位元組序是什麼

當用System.in.read(buffer)從鍵盤輸入一行n個字元後,儲存在緩衝區buffer中的位元組數是多少

如何使用掃描器類(Scanner Class)令牌化

面向物件程式設計(OOP)

解釋下多型性(polymorphism),封裝性(encapsulation),內聚(cohesion)以及耦合(coupling)

多型的實現原理

封裝、繼承和多型是什麼

物件封裝的原則是什麼?

泛型

泛型的存在是用來解決什麼問題

泛型的常用特點

List能否轉為List

反射

反射機制提供了什麼功能?

反射是如何實現的

哪裡用到反射機制

反射中 Class.forName 和 ClassLoader 區別

反射建立類例項的三種方式是什麼

如何通過反射呼叫物件的方法

如何通過反射獲取和設定物件私有欄位的值

反射機制的優缺點

設計模式

什麼是設計模式(Design Patterns)?你用過哪種設計模式?用在什麼場合

你知道哪些商業級設計模式?

哪些設計模式可以增加系統的可擴充套件性。

除了單例模式,你在生產環境中還用過什麼設計模式?

如何建立執行緒安全的 Singleton。

介面卡模式是什麼?什麼時候使用

介面卡模式和代理模式之前有什麼不同

介面卡模式和裝飾器模式有什麼區別

什麼時候使用享元模式

什麼時候使用組合模式

什麼時候使用訪問者模式

什麼是模板方法模式

場景應用

線上系統突然變得異常緩慢,你如何查詢問題

什麼樣的專案不適合用框架

新浪微博是如何實現把微博推給訂閱者

簡要介紹下從瀏覽器輸入 URL 開始到獲取到請求介面之後 Java Web 應用中發生了什麼

請你談談SSH整合

高併發下,如何做到安全的修改同一行資料

12306網站的訂票系統如何實現,如何保證不會票不被超賣

網站效能優化如何優化的。

請思考一個方案,實現分散式環境下的 countDownLatch

請思考一個方案,設計一個可以控制快取總體大小的自動適應的本地快取

在你的職業生涯中,算得上最困難的技術挑戰是什麼

如何寫一篇設計文件,目錄是什麼

大寫的O是什麼?舉幾個例子

程式設計中自己都怎麼考慮一些設計原則的,比如開閉原則,以及在工作中的應用

解釋一下網路應用的模式及其特點

設計一個線上文件系統,文件可以被編輯,如何防止多人同時對同一份文件進行編輯更新

說出資料連線池的工作機制是什麼

怎麼獲取一個檔案中單詞出現的最高頻率。

重構技巧

你使用什麼版本管理工具?分支(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)的認識

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伺服器的區別

是否看過框架的一些程式碼

持久層設計要考慮的問題有哪些?你用過的持久層框架有哪些

數值提升是什麼

你能解釋一下里氏替換原則嗎

你是如何測試一個應用的?知道哪些測試框架

傳輸層常見程式設計協議有哪些?並說出各自的特點。

演算法及程式設計

問題1

加班10小時以下加班費是時薪的1.5倍。加班10小時或以上,按4元/時算。提示:(一個月工作26天,一天正常工作8小時)

計算1000月薪,加班9小時的加班費

計算2500月薪,加班11小時的加班費

計算1000月薪,加班15小時的加班費

問題2

50個人圍坐一圈,當數到三或者三的倍數出圈,問剩下的人是誰,原來的位置是多少

實現一個電梯模擬器用

寫一個氣泡排序

寫一個折半查詢

隨機產生20個不能重複的字元並排序

寫一個函式,傳入 2 個有序的整數陣列,返回一個有序的整數陣列

寫一段程式碼在遍歷 ArrayList 時移除一個元素

古典問題:有一對兔子,從出生後第3個月起每個月都生一對兔子,小兔子長到第四個月後每個月又生一對兔子,假如兔子都不死,問每個月的兔子總數為多少