1. 程式人生 > >基礎知識目錄(待完成)

基礎知識目錄(待完成)

基礎知識目錄

J2SE基礎

1.
九種基本資料型別的大小,以及他們的封裝類。
2.
Switch能否用string做引數?
3.
equals與==的區別。
4.
Object有哪些公用方法?
5.
Java的四種引用,強弱軟虛,用到的場景。
6.
Hashcode的作用。
7.
ArrayList、LinkedList、Vector的區別。
8.
String、StringBuffer與StringBuilder的區別。
9.
Map、Set、List、Queue、Stack的特點與用法。


10.
HashMap和HashTable的區別。


11.
HashMap和ConcurrentHashMap的區別,HashMap的底層原始碼。


12.
TreeMap、HashMap、LindedHashMap的區別。


13.
Collection包結構,與Collections的區別。


14.
try catch finally,try裡有return,finally還執行麼?


15.
Excption與Error包結構。OOM你遇到過哪些情況,SOF你遇到過哪些情況。


16.
Java面向物件的三個特徵與含義。


17.
Override和Overload的含義去區別。


18.
Interface與abstract類的區別。


19.
Static class 與non static class的區別。


20.
java多型的實現原理。


21.
實現多執行緒的兩種方法:Thread與Runable。


22.
執行緒同步的方法:sychronized、lock、reentrantLock等。


23.
鎖的等級:方法鎖、物件鎖、類鎖。


24.
寫出生產者消費者模式。


25.
ThreadLocal的設計理念與作用。


26.
ThreadPool用法與優勢。


27.
Concurrent包裡的其他東西:ArrayBlockingQueue、CountDownLatch等等。


28.
wait()和sleep()的區別。


29.
foreach與正常for迴圈效率對比。


30.
Java IO與NIO。


31.
反射的作用於原理。


32.
泛型常用特點,List<String>能否轉為List<Object>。


33.
解析XML的幾種方式的原理與特點:DOM、SAX、PULL。


34.
Java與C++對比。


35.
Java1.7與1.8新特性。


36.
設計模式:單例、工廠、介面卡、責任鏈、觀察者等等。


37.
JNI的使用。


Java裡有很多很雜的東西,有時候需要你閱讀原始碼,大多數可能書裡面講的不是太清楚,需要你在網上尋找答案。


推薦書籍:《java核心技術卷I》《Thinking in java》《java併發程式設計》《effictive java》《大話設計模式》





JVM


1.
記憶體模型以及分割槽,需要詳細到每個區放什麼。


2.
堆裡面的分割槽:Eden,survival from to,老年代,各自的特點。


3.
物件建立方法,物件的記憶體分配,物件的訪問定位。


4.
GC的兩種判定方法:引用計數與引用鏈。


5.
GC的三種收集方法:標記清除、標記整理、複製演算法的原理與特點,分別用在什麼地方,如果讓你優化收集方法,有什麼思路?


6.
GC收集器有哪些?CMS收集器與G1收集器的特點。


7.
Minor GC與Full GC分別在什麼時候發生?


8.
幾種常用的記憶體除錯工具:jmap、jstack、jconsole。


9.
類載入的五個過程:載入、驗證、準備、解析、初始化。


10.
雙親委派模型:Bootstrap ClassLoader、Extension ClassLoader、ApplicationClassLoader。


11.
分派:靜態分派與動態分派。


JVM過去過來就問了這麼些問題,沒怎麼變,記憶體模型和GC演算法這塊問得比較多,可以在網上多找幾篇部落格來看看。


推薦書籍:《深入理解java虛擬機器》





作業系統


1.
程序和執行緒的區別。


2.
死鎖的必要條件,怎麼處理死鎖。


3.
Window記憶體管理方式:段儲存,頁儲存,段頁儲存。


4.
程序的幾種狀態。


5.
IPC幾種通訊方式。


6.
什麼是虛擬記憶體。


7.
虛擬地址、邏輯地址、線性地址、實體地址的區別。


因為是做android的這一塊問得比較少一點,還有可能上我簡歷上沒有寫作業系統的原因。


推薦書籍:《深入理解現代作業系統》





TCP/IP


1.
OSI與TCP/IP各層的結構與功能,都有哪些協議。


2.
TCP與UDP的區別。


3.
TCP報文結構。


4.
TCP的三次握手與四次揮手過程,各個狀態名稱與含義,TIMEWAIT的作用。


5.
TCP擁塞控制。


6.
TCP滑動視窗與回退N針協議。


7.
Http的報文結構。


8.
Http的狀態碼含義。


9.
Http request的幾種型別。


10.
Http1.1和Http1.0的區別


11.
Http怎麼處理長連線。


12.
Cookie與Session的作用於原理。


13.
電腦上訪問一個網頁,整個過程是怎麼樣的:DNS、HTTP、TCP、OSPF、IP、ARP。


14.
Ping的整個過程。ICMP報文是什麼。


15.
C/S模式下使用socket通訊,幾個關鍵函式。


16.
IP地址分類。


17.
路由器與交換機區別。


網路其實大體分為兩塊,一個TCP協議,一個HTTP協議,只要把這兩塊以及相關協議搞清楚,一般問題不大。


推薦書籍:《TCP/IP協議族》





資料結構與演算法


1.
連結串列與陣列。


2.
佇列和棧,出棧與入棧。


3.
連結串列的刪除、插入、反向。


4.
字串操作。


5.
Hash表的hash函式,衝突解決方法有哪些。


6.
各種排序:冒泡、選擇、插入、希爾、歸併、快排、堆排、桶排、基數的原理、平均時間複雜度、最壞時間複雜度、空間複雜度、是否穩定。


7.
快排的partition函式與歸併的Merge函式。


8.
對冒泡與快排的改進。


9.
二分查詢,與變種二分查詢。


10.
二叉樹、B+樹、AVL樹、紅黑樹、哈夫曼樹。


11.
二叉樹的前中後續遍歷:遞迴與非遞迴寫法,層序遍歷演算法。


12.
圖的BFS與DFS演算法,最小生成樹prim演算法與最短路徑Dijkstra演算法。


13.
KMP演算法。


14.
排列組合問題。


15.
動態規劃、貪心演算法、分治演算法。(一般不會問到)


16.
大資料處理:類似10億條資料找出最大的1000個數.........等等


演算法的話其實是個重點,因為最後都是要你寫程式碼,所以演算法還是需要花不少時間準備,這裡有太多演算法題,寫不全,我的建議是沒事多在OJ上刷刷題(牛客網、leetcode等),劍指offer上的演算法要能理解並自己寫出來,程式設計之美也推薦看一看。


推薦書籍:《大話資料結構》《劍指offer》《程式設計之美》





Android


1.
Activity與Fragment的生命週期。


2.
Acitivty的四中啟動模式與特點。


3.
Activity快取方法。


4.
Service的生命週期,兩種啟動方法,有什麼區別。


5.
怎麼保證service不被殺死。


6.
廣播的兩種註冊方法,有什麼區別。


7.
Intent的使用方法,可以傳遞哪些資料型別。


8.
ContentProvider使用方法。


9.
Thread、AsycTask、IntentService的使用場景與特點。


10.
五種佈局:
FrameLayout
、
LinearLayout
、
AbsoluteLayout
、
RelativeLayout
、
TableLayout
各自特點及繪製效率對比。


11.
Android的資料儲存形式。


12.
Sqlite的基本操作。


13.
Android中的MVC模式。


14.
Merge、ViewStub的作用。


15.
Json有什麼優劣勢。


16.
動畫有哪兩類,各有什麼特點?


17.
Handler、Loop訊息佇列模型,各部分的作用。


18.
怎樣退出終止App。


19.
Asset目錄與res目錄的區別。


20.
Android怎麼加速啟動Activity。


21.
Android記憶體優化方法:ListView優化,及時關閉資源,圖片快取等等。


22.
Android中弱引用與軟引用的應用場景。


23.
Bitmap的四中屬性,與每種屬性隊形的大小。


24.
View與View Group分類。自定義View過程:onMeasure()、onLayout()、onDraw()。


25.
Touch事件分發機制。


26.
Android長連線,怎麼處理心跳機制。


27.
Zygote的啟動過程。


28.
Android IPC:Binder原理。


29.
你用過什麼框架,是否看過原始碼,是否知道底層原理。


30.
Android5.0、6.0新特性。


Android的話,多是一些專案中的實踐,使用多了,自然就知道了,還有就是多逛逛一些名人的部落格,書上能講到的東西不多。另外android底層的東西,有時間的話可以多瞭解一下,加分項。


推薦書籍:《瘋狂android講義》《深入理解android》





其他綜合性的書籍也需要閱讀,推薦:《程式設計師面試筆試寶典》《程式設計師面試金典》

相關推薦

基礎知識目錄完成

基礎知識目錄 J2SE基礎 1. 九種基本資料型別的大小,以及他們的封裝類。 2. Switch能否用string做引數? 3. equals與==的區別。 4. Object有哪些公用方法? 5. Java的四種引用,強弱軟

linux雲自動化運維基礎知識9openssh-server

linux運維############################9.openssh-server################################1.openssh-server####功能:讓遠程主機可以通過網絡訪問sshd服務,開始一個安全shell####2.客戶端連接方式####s

linux雲自動化運維基礎知識7進程

linux####1.進程定義####進程就是cpu未完成的工作####2.ps命令####ps a ##關於當前環境的所有進程 x| -A ##所有進程 f ##顯示進程從屬關系 e ##顯示進程調用環境工具的詳細信息 l ##長列表顯示進程的詳細

linux雲自動化運維基礎知識22系統恢復

linux系統引導過程概述:通電——bios初始化——grub2磁盤引導階段——grub2文件引導階段——指定boot分區所在位置——啟動內核,只讀/掛載設備——啟動init程序進入初始化階段——啟動systemd初始化進程——取/etc/systemd/中的文件——啟動程序——啟動登陸環境。系統啟動流程:一

linux雲自動化運維基礎知識23DNS服務

dns一.DNS概述作用:提供域名解析服務正向解析:域名——ip eg:(www.baidu.com —— 220.181.111.188)反向解析:ip——域名 eg:(220.181.111.188 —— www.baidu.com)DNS的查詢方式遞歸查詢:客戶機向自己的DNS服務器請求解析的

並發標記掃描CMS收集器完成

一段時間 rap tex 資源 div 標記 pac eight 所有 並發標記掃描(CMS)收集器專為需要較短垃圾收集暫停時間且能夠在應用程序運行時與垃圾收集器共享處理器資源的應用程序而設計。 對於任何暫停時間要求較低的應用程序,應考慮使用此收集器。 使用命令行選項啟用C

Java 基礎知識整理 整理)

ioc容器 invoke string spa 額外 器) cas 描述符 如果 JVM之類加載器(ClassLoader)基本介紹 類加載器用於將class文件加載到JVM中去執行。下面介紹類加載器涉及到的基本概念和加載基本過程。 一、Java虛擬機與程序的生命

畢向東—Java基礎知識總結超級經典

Java基礎知識總結(超級經典)   寫程式碼:     1,明確需求。我要做什麼?     2,分析思路。我要怎麼做?1,2,3。     3,確定步驟。每一個思路部分用到哪些語句,方法,和物件。     4,程式碼實現。用具體的java語言程式碼把思路體現出來。 &nbs

linux基礎知識整理備忘

ubuntu官網下載 Linux 系統目錄結構 /bin: bin是Binary的縮寫, 這個目錄存放著最經常使用的命令。 /boot: 這裡存放的是啟動Linux時使用的一些核心檔案,包括一些連線檔案以及映象檔案。 /dev : dev是Device(裝置)的縮寫, 該目錄

【夾娃系列】java面試基礎知識儲備¥1——java的優點和C++的異同點

怎麼才能夾到布娃娃 沒錯!!這個文章就是告訴你怎麼才能用一個硬幣,抓到最多的布娃娃QAQ,這是我抓娃娃的第一個硬幣¥1.【宣告】夾娃系列純屬個人學習,參考了不少面試的書,《程式設計之美》、《演算法珠璣》、《劍指offer》、《java程式設計師

【夾娃系列】java面試基礎知識儲備¥2——JVM記憶體劃分和記憶體溢位異常的原因和解決方法

JVM記憶體劃分和記憶體溢位 JVM記憶體劃分 記憶體溢位的異常和解決辦法 JVM記憶體劃分 堆:存放物件例項,被所有的執行緒共享的一塊區域。垃圾收集器管理的主要區域。 方法區:儲存虛擬機器載入的類資訊,常量,靜態變

網路基礎知識彙總持續更新

網路基礎知識彙總 1.網路模型 2.二三層轉發 3.IP路由 4.VLAN 1.網路模型 常見的網路層次劃分有OSI七層協議、TCP/IP四層協議以及TCP/IP五層協議,它們之間的對應關係如下圖所示: 由於工作偏向於底層網路,

MySQL資料庫基礎知識事務處理

事務指的是一組SQL語句,它們是一個執行單位,且在必要時還可以取消。事務處理是通過使用提交和回滾功能來實現的。 另一個用途確保某個操作所涉及的行不會在你正在使用它們時被其他客戶端修改。事務把多條語句定義為一個執行單位,防止在多客戶端環境裡可能會發生的併發問題。 事務系統通

2018年10月17日提高組 T1 春思完成

大意 求ABA^BAB的所有約數之和 思路 首先A=p1c1p2c2p3c3p4c4……A=p_1^{c_1}p_2^{c_2}p_3^{c_3}p_4^{c_4}……A=p1c1​​p2c2​​p3

4面經---java 內附 計算機基礎知識連結知識點概括

1.應該從哪方面準備 就筆試而言,選擇題應該從資料結構,*作系統,基礎演算法,網路這四個方面準備。程式設計題應該側重動態規劃和回溯。 就面試而言,javaweb和Java原始碼、和jvm是基礎的,如果面試非阿里系的,準備這些足夠,但是要是面試阿里或者美團,就要學學中介

基於jieba改寫的分詞算完成

基於jieba改寫的分詞演算法 import os, re, pandas as pd from math import log from time import time # 基礎目錄 BASE_PATH = os.path.dirname(__file__

iOS - 基礎知識總結OC版 面試必看 再不看就要用swift了[轉]

轉自:https://www.cnblogs.com/baitongtong/p/5869004.html OC的理解與特性 OC作為一門面向物件的語言,自然具有面向物件的語言特性:封裝、繼承、多型。它既具有靜態語言的特性(如C++),又有動態語言的效率(動態繫結、動態載入等)。總體

資料分析師---目錄補充

基礎知識 數值型別序列(list,tuple,str),通用技巧和核心基本技巧dist,常用操作,訪問及遍歷條件迴圈語句和條件語句自定義函式區域性變數和全域性變數匿名函式lambda模組建立及import指令運用,pip管理工具 檔案物件申明及其操作系統模組下路徑操作檔案讀寫pickle模組運用及儲存結構

數據分析師---目錄補充

離散 對比分析 理解 num 合並 缺失 折線 通用函數 國內 基礎知識 數值類型序列(list,tuple,str),通用技巧和核心基本技巧dist,常用操作,訪問及遍歷條件循環語句和條件語句自定義函數局部變量和全局變量匿名函數lambda模塊創建及import指令運用,

Java基礎知識總結超級經典

 Java基礎知識總結(超級經典) 寫程式碼: 1,明確需求。我要做什麼? 2,分析思路。我要怎麼做?1,2,3。 3,確定步驟。每一個思路部分用到哪些語句,方法,和物件。 4,程式碼實現。用具體的java語言程式碼把思路體現出來。