1. 程式人生 > >洛城小紅魔

洛城小紅魔

基礎篇一

一.基礎知識:

1)集合類:List和Set比較,各自的子類比較(ArrayList,Vector,LinkedList;HashSet,TreeSet);

2)HashMap的底層實現,之後會問ConcurrentHashMap的底層實現;

3)如何實現HashMap順序儲存:可以參考LinkedHashMap的底層實現;

4)HashTable和ConcurrentHashMap的區別;

5)String,StringBuffer和StringBuilder的區別;

6)Object的方法有哪些:比如有wait方法,為什麼會有;

7)wait和sleep的區別,必須理解;

8)JVM的記憶體結構,JVM的演算法;

9)強引用,軟引用和弱引用的區別;

10)陣列在記憶體中如何分配;

11)用過哪些設計模式,手寫一個(除單例);

12)springmvc的核心是什麼,請求的流程是怎麼處理的,控制反轉怎麼實現的;

13)spring裡面的aop的原理是什麼;

14)mybatis如何處理結果集:反射,建議看看原始碼;

15)java的多型表現在哪裡;

16)介面有什麼用;

17)說說http,https協議;

18)tcp/ip協議簇;

19)osi五層網路協議;

20)tcp,udp區別;

21)用過哪些加密演算法:對稱加密,非對稱加密演算法;

22)說說tcp三次握手,四次揮手;

23)cookie和session的區別,分散式環境怎麼儲存使用者狀態;

24)git,svn區別;

25)請寫一段棧溢位、堆溢位的程式碼;

26)ThreadLocal可以用來共享資料嗎;

二.IO:

1)bio,nio,aio的區別;

2)nio框架:dubbo的實現原理;

3)京東內部的jsf是使用的什麼協議通訊:可參見dubbo的協議;

三.演算法:

1)java中常說的堆和棧,分別是什麼資料結構;另外,為什麼要分為堆和棧來儲存資料。

2)TreeMap如何插入資料:二叉樹的左旋,右旋,雙旋;

3)一個排序之後的陣列,插入資料,可以使用什麼方法?答:二分法;問:時間複雜度是多少?

4)平衡二叉樹的時間複雜度;

5)Hash演算法和二叉樹演算法分別什麼時候用;

6)圖的廣度優先演算法和深度優先演算法:詳見jvm中垃圾回收實現;

三.多執行緒相關:

1)說說阻塞佇列的實現:可以參考ArrayBlockingQueue的底層實現(鎖和同步都行);

2)程序通訊的方式:訊息佇列,共享記憶體,訊號量,socket通訊等;

3)用過併發包的哪些類;

4)什麼地方用了多執行緒;

5)Excutors可以產生哪些執行緒池;

6)為什麼要用執行緒池;

7)volatile關鍵字的用法:使多執行緒中的變數可見;

四.資料庫相關(mysql):

1)msyql優化經驗:

2)mysql的語句優化,使用什麼工具;

3)mysql的索引分類:B+,hash;什麼情況用什麼索引;

4)mysql的儲存引擎有哪些,區別是什麼;

5)說說事務的特性和隔離級別;

6)悲觀鎖和樂觀鎖的區別,怎麼實現;

五.mq:

1)mq的原理是什麼:有點大。。都可以說;

2)mq如何保證實時性;

3)mq的持久化是怎麼做的;

六.nosql相關(主要是redis):

1)redis和memcache的區別;

2)用redis做過什麼;

3)redis是如何持久化的:rdb和aof;

4)redis叢集如何同步;

5)redis的資料新增過程是怎樣的:雜湊槽;

6)redis的淘汰策略有哪些;

7)redis有哪些資料結構;

七.zookeeper:

1)zookeeper是什麼;

2)zookeeper哪裡用到;

3)zookeeper的選主過程;

4)zookeeper叢集之間如何通訊;

5)你們的zookeeper的節點加密是用的什麼方式;

6)分散式鎖的實現過程;

八.linux相關:

1)linux常用的命令有哪些;

2)如何獲取java程序的pid;

3)如何獲取某個程序的網路埠號;

4)如何實時列印日誌;

5)如何統計某個字串行數;

九.設計與思想:

1)重構過程式碼沒有?說說經驗;

2)一千萬的使用者實時排名如何實現;

3)五萬人併發搶票怎麼實現;

基礎篇二

1.1、Java基礎

面向物件的特徵:繼承、封裝和多型

final, finally, finalize 的區別

Exception、Error、執行時異常與一般異常有何異同

請寫出5種常見到的runtime exception

int 和 Integer 有什麼區別,Integer的值快取範圍

包裝類,裝箱和拆箱

String、StringBuilder、StringBuffer

過載和重寫的區別

抽象類和介面有什麼區別

說說反射的用途及實現

說說自定義註解的場景及實現

HTTP請求的GET與POST方式的區別

Session與Cookie區別

列出自己常用的JDK包

MVC設計思想

equals與==的區別

hashCode和equals方法的區別與聯絡

什麼是Java序列化和反序列化,如何實現Java序列化?或者請解釋Serializable 介面的作用

Object類中常見的方法,為什麼wait notify會放在Object裡邊?

Java的平臺無關性如何體現出來的

JDK和JRE的區別

Java 8有哪些新特性

1.2、Java常見集合

List 和 Set 區別

Set和hashCode以及equals方法的聯絡

List 和 Map 區別

Arraylist 與 LinkedList 區別

ArrayList 與 Vector 區別

HashMap 和 Hashtable 的區別

HashSet 和 HashMap 區別

HashMap 和 ConcurrentHashMap 的區別

HashMap 的工作原理及程式碼實現,什麼時候用到紅黑樹

多執行緒情況下HashMap死迴圈的問題

HashMap出現Hash DOS攻擊的問題

ConcurrentHashMap 的工作原理及程式碼實現,如何統計所有的元素個數

手寫簡單的HashMap

看過那些Java集合類的原始碼

1.3、程序和執行緒

執行緒和程序的概念、並行和併發的概念

建立執行緒的方式及實現

程序間通訊的方式

說說 CountDownLatch、CyclicBarrier 原理和區別

說說 Semaphore 原理

說說 Exchanger 原理

ThreadLocal 原理分析,ThreadLocal為什麼會出現OOM,出現的深層次原理

講講執行緒池的實現原理

執行緒池的幾種實現方式

執行緒的生命週期,狀態是如何轉移的

可參考:《Java多執行緒程式設計核心技術》 
1.4、鎖機制

說說執行緒安全問題,什麼是執行緒安全,如何保證執行緒安全

重入鎖的概念,重入鎖為什麼可以防止死鎖

產生死鎖的四個條件(互斥、請求與保持、不剝奪、迴圈等待)

如何檢查死鎖(通過jConsole檢查死鎖)

volatile 實現原理(禁止指令重排、重新整理記憶體)

synchronized 實現原理(物件監視器)

synchronized 與 lock 的區別

AQS同步佇列

CAS無鎖的概念、樂觀鎖和悲觀鎖

常見的原子操作類

什麼是ABA問題,出現ABA問題JDK是如何解決的

樂觀鎖的業務場景及實現方式

Java 8並法包下常見的併發類

偏向鎖、輕量級鎖、重量級鎖、自旋鎖的概念

可參考:《Java多執行緒程式設計核心技術》

1.5、JVM

JVM執行時記憶體區域劃分

記憶體溢位OOM和堆疊溢位SOE的示例及原因、如何排查與解決

如何判斷物件是否可以回收或存活

常見的GC回收演算法及其含義

常見的JVM效能監控和故障處理工具類:jps、jstat、jmap、jinfo、jconsole等

JVM如何設定引數

JVM效能調優

類載入器、雙親委派模型、一個類的生命週期、類是如何載入到JVM中的

類載入的過程:載入、驗證、準備、解析、初始化

強引用、軟引用、弱引用、虛引用

Java記憶體模型JMM

1.6、設計模式

常見的設計模式

設計模式的的六大原則及其含義

常見的單例模式以及各種實現方式的優缺點,哪一種最好,手寫常見的單利模式

設計模式在實際場景中的應用

Spring中用到了哪些設計模式

MyBatis中用到了哪些設計模式

你專案中有使用哪些設計模式

說說常用開源框架中設計模式使用分析

動態代理很重要!!!

1.7、資料結構

樹(二叉查詢樹、平衡二叉樹、紅黑樹、B樹、B+樹)

深度有限演算法、廣度優先演算法

克魯斯卡爾演算法、普林母演算法、迪克拉斯演算法

什麼是一致性Hash及其原理、Hash環問題

常見的排序演算法和查詢演算法:快排、折半查詢、堆排序等

1.8、網路/IO基礎

BIO、NIO、AIO的概念

什麼是長連線和短連線

Http1.0和2.0相比有什麼區別,可參考《Http 2.0》

Https的基本概念

三次握手和四次揮手、為什麼揮手需要四次

從遊覽器中輸入URL到頁面載入的發生了什麼?可參考《從輸入URL到頁面載入發生了什麼》

二、資料儲存和訊息佇列

2.1、資料庫

MySQL 索引使用的注意事項

DDL、DML、DCL分別指什麼

explain命令

left join,right join,inner join

資料庫事物ACID(原子性、一致性、隔離性、永續性)

事物的隔離級別(讀未提交、讀以提交、可重複讀、可序列化讀)

髒讀、幻讀、不可重複讀

資料庫的幾大正規化

資料庫常見的命令

說說分庫與分表設計

分庫與分錶帶來的分散式困境與應對之策(如何解決分散式下的分庫分表,全域性表?)

說說 SQL 優化之道

MySQL遇到的死鎖問題、如何排查與解決

儲存引擎的 InnoDB與MyISAM區別,優缺點,使用場景

索引類別(B+樹索引、全文索引、雜湊索引)、索引的原理

什麼是自適應雜湊索引(AHI)

為什麼要用 B+tree作為MySQL索引的資料結構

聚集索引與非聚集索引的區別

遇到過索引失效的情況沒,什麼時候可能會出現,如何解決

limit 20000 載入很慢怎麼解決

如何選擇合適的分散式主鍵方案

選擇合適的資料儲存方案

常見的幾種分散式ID的設計方案

常見的資料庫優化方案,在你的專案中資料庫如何進行優化的

2.2、Redis

Redis 有哪些資料型別,可參考《Redis常見的5種不同的資料型別詳解》

Redis 內部結構

Redis 使用場景

Redis 持久化機制,可參考《使用快照和AOF將Redis資料持久化到硬碟中》

Redis 叢集方案與實現

Redis 為什麼是單執行緒的?

快取雪崩、快取穿透、快取預熱、快取更新、快取降級

使用快取的合理性問題

Redis常見的回收策略

2.3、訊息佇列

訊息佇列的使用場景

訊息的重發補償解決思路

訊息的冪等性解決思路

訊息的堆積解決思路

自己如何實現訊息佇列

如何保證訊息的有序性

三、開源框架和容器

3.1、SSM/Servlet

Servlet的生命週期

轉發與重定向的區別

BeanFactory 和 ApplicationContext 有什麼區別

Spring Bean 的生命週期

Spring IOC 如何實現

Spring中Bean的作用域,預設的是哪一個

說說 Spring AOP、Spring AOP 實現原理

動態代理(CGLib 與 JDK)、優缺點、效能對比、如何選擇

Spring 事務實現方式、事務的傳播機制、預設的事務類別

Spring 事務底層原理

Spring事務失效(事務巢狀),JDK動態代理給Spring事務埋下的坑,可參考《JDK動態代理給Spring事務埋下的坑!》

如何自定義註解實現功能

Spring MVC 執行流程

Spring MVC 啟動流程

Spring 的單例實現原理

Spring 框架中用到了哪些設計模式

Spring 其他產品(Srping Boot、Spring Cloud、Spring Secuirity、Spring Data、Spring AMQP 等)

有沒有用到Spring Boot,Spring Boot的認識、原理

MyBatis的原理

可參考《為什麼會有Spring》

可參考《為什麼會有Spring AOP》

3.2、Netty

為什麼選擇 Netty

說說業務中,Netty 的使用場景

原生的 NIO 在 JDK 1.7 版本存在 epoll bug

什麼是TCP 粘包/拆包

TCP粘包/拆包的解決辦法

Netty 執行緒模型

說說 Netty 的零拷貝

Netty 內部執行流程

Netty 重連實現

3.3、Tomcat

Tomcat的基礎架構(Server、Service、Connector、Container)

Tomcat如何載入Servlet的

Pipeline-Valve機制

相關推薦

基礎篇一一.基礎知識:1)集合類:List和Set比較,各自的子類比較(ArrayList,Vector,LinkedList;HashSet,TreeSet);2)HashMap的底層實現,之後會問ConcurrentHashMap的底層實現;3)如何實現HashMap順序

eclispe新導入的文件有個叉號(x)的問題

關閉 相關 view fill 文件 rar ems rep tar 關於這個問題,我百度了很久,後面發現很簡單的就解決了:我覺得可能大家的問題不一樣,或許解決方法可能是一樣的: 參考鏈接:https://zhidao.baidu.com/question/61676277

項目出現叉,類名上帶有 Implicit錯誤

cut lac 知識 per ons fin lan java execution Implicit super constructor Object() is undefined for default constructor. Must define an expli

鼠標樣式變為浮動

script 100% empty .org events div version use mouse // sssssssssssssssssssssssssssssssssssssssssssssssssssssssssssssss sssssss

書App產品需求文檔(PRD)

發布者 正在 轉動 找到 消息 上傳圖片 兩種 評論 在線 筆者以安卓系統手機端用戶的身份通過使用、體驗和分析等方式來倒推“小紅書”APP,並生成產品需求文檔PRD。小紅書app是以用戶分享內容(UGC)模式闖入到大家視線的,並且在某寶日益強大的趨勢下,帶有購物功能的小紅

前端實現未讀消息提醒

賦值 osi cat i++ parse absolute 前端 相對 包含 原理: 通過將消息是否查看的數據存寫入localStorage中,點擊查看後,更新localStorage的數據; 文件結構: index.html -- 列表 detail

奇葩問題 eclipse下 maven項目 java Resource報個叉,然而裏面卻沒有

clip ava spa 奇葩問題 lips per csdn 項目 jdk 之前沒註意,不知是一開始就有還是這兩天才有,說下解決方案: 右擊項目“Properties”,在彈出的“Properties”的左側邊框,單擊&l

書完成新一輪3億美元融資領投的阿裏看上了哪些獨特優勢?

小紅書 據相關報道,社區電商小紅書近日剛完成了新一輪由阿裏領投多家知名投資機構跟投超過3億美元的融資,目前小紅書估值30億美元。今天我們不妨一起來復盤下小紅書的融資歷程。成立於2013年的小紅書當年10月,就獲得真格基金的數百萬人民幣天使輪投資;2014年6月,獲金沙江創投和真格基金的數百萬美元A輪投資;20

6.簡單提取書app資料(簡單初步試採集與分析)-1

採集小紅書資料爬蟲:1.本來是要通過app端的介面去直接採集資料,但是app介面手機端設定本地代理這邊開啟抓包後就不能正常訪問資料。所以就採用了微信小程式裡的小紅書app介面去採集資料。2.通過 fiddler去抓包,手機端進入小程式埠選擇彩妝向下滑動請求資料,這邊fiddler就會抓到請求資料和相應的

java專案程式中無錯誤,但是專案上面顯示

1、首先檢視windows–>preferences–>compiler的設定 2、右鍵專案檢視properties–>java compiler 3、右鍵專案檢視Properties——>Project Facets warning:必須保證這三

iOS 點方案

效果圖: 以 UIButton 為例: 原理 給UIView寫了一個分類 UIView+JHRedDot 在設定小紅點時,監聽 view的 frame 和 bounds,以便在view尺寸變化時更新小紅點位置 重寫系統函式 - (void)wil

解決ubuntu 18.04平臺上thinkpad點TrackPoint左鍵隨機失效的問題(by quqi99)

版權宣告:可以任意轉載,轉載時請務必以超連結形式標明文章原始出處和作者資訊及本版權宣告 (作者:張華 發表於:2018-10-17) 最近好幾個月一直受困一個極其頭疼的問題, ubuntu 18.04平臺上thinkpad小紅點左鍵隨機失效, 試圖解決過很多次, 試過很多方法, 無果.

書,1.5億年輕人的虛擬城市:美好生活的終極想象

烏鎮2018年11月9日電 /美通社/ -- 2018年11月5日-11月10日,以“創造互信共治的數字世界 -- 攜手共建網路空間命運共同體”為主題的第五屆網際網路大會,在水鄉烏鎮舉行。 小紅書作為受1.5億年輕人喜愛的生活方式分享平臺,與430餘家創新企業共同亮相本次大會,交流

谷---L和K的NOIP考後放鬆賽

連結: https://www.luogu.org/contestnew/show/11805?tdsourcetag=s_pcqq_aiomsg 題解: 沒人過的題我就沒看 t2: 考慮每個點是朋友的區間是連續的 然後維護每個人朋友的右端點 顯然是單調遞增的 然後線段樹瞎搞一下就好了 蜜汁

TextView右上角顯示點,點根據TextView的長度移動,點被TextView擠出去不顯示的問題;

大概就是圖片這個樣,這個功能很常見,本來我以為很簡單,誰知道真的很簡單; 遇到點小問題,記錄一下,哈哈; 小紅點的Drawable: <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http

新增點給Tabbar或UIview右上角、文字文字、數字文字 、切圓角

這兩天在搞給tabbar或常規控制元件新增小圓點、數字文字、純文字的需求。使用了Masnory這個庫對常規控制元件新增約束有一個巨大的坑,就是無法及時獲取到常規控制元件的x和y。但是可以及時獲取到常規控制元件的w和h。 這就導致瞭如果使用masnory約束之後的控制元件,無法把什麼紅點、文字

系統導航欄左右上角按鈕如何不需要定義就可以新增

最近做一個需求,要在系統導航欄右上角按鈕加上一個小紅點,以前博主習慣使用自定義導航欄,所以並不怎麼和系統的東西打交道,那怎麼辦?求助度娘唄,查了一會,都是自定義按鈕,也沒什麼比較快捷的方法,於是就自己去看系統UIBarButtonItem,這一看不打緊,還真讓博

書”,電商銷售新模式

說起“小紅書”,大家肯定不陌生,“網紅”“社交電商”“種草”“獨角獸”“美妝大賞”,他擁有各種各樣的表情,一千個人眼裡,有一千個哈姆雷特,每個人對這款在兩年內迅速躥紅的跨境電商APP都有不同的看法,而我作為一個對於電商略有涉獵的加班狗,嘗試著以自己的眼光來發表一

Android中數字提醒點控制元件BadgeView

很多App中會用到數字提示如果 這個效果,很容易實現 下面的這個控制元件是github上面有人實現的第三方控制元件BadgeView 大家瞭解一下如果使用: 效果圖: 實現步驟: 1.下載jar包,並

書 演算法簡介

小紅書作為中國乃至全球獨一無二的社群電商,目標是讓全世界的好生活觸手可及,那麼如何幫助使用者在社群裡發現好生活,又如何引導使用者找到值得剁手的好產品呢?本文整理自 ArchSummit 深圳演講,探討如何運用機器學習和人工智慧,幫助小紅書不到 10 人的演算法團隊快速接近目標