一、Java基礎(chǔ)
1.1 面向?qū)ο螅ǚ庋b、繼承、多態(tài))
- 訪問權(quán)限修飾符(public,protect,default,private)作用域;
- 方法重寫、重載的概念和區(qū)別;
- 抽象類和接口區(qū)別;類是單繼承,接口是多實(shí)現(xiàn)·····;
- 代碼塊執(zhí)行順序:靜態(tài)代碼塊->構(gòu)造代碼塊->構(gòu)造方法;
- Object類常用方法:hashCode,equals,toString,wait,notify,notifyAll;
- String,StringBuffer,StingBuild各包含哪些方法,三者區(qū)別;
1.2 集合
1.2.1 集合框架
圖1-1 集合框架
1.2.2 各類集合特點(diǎn)
- List集合:有序,元素可重復(fù);
- Set集合:無序,元素唯一;
- List和Set集合皆可通過for循環(huán)、for-each、Iterator迭代器遍歷。
- Map集合:以key-value形式存儲(chǔ)元素,無迭代器,遍歷時(shí)通過轉(zhuǎn)Set集合遍歷;
- Map集合轉(zhuǎn)Set集合:方法一:使用keySet方法;方法二:使用entrySet方法。
- hashtable實(shí)現(xiàn)原理:底層由數(shù)組 鏈表實(shí)現(xiàn),有一個(gè)叫table的Entry類型數(shù)組,索引由鏈表存放。
1.3 IO流
1.3.1 IO流框架
圖1-2 IO流框架
1.3.2 IO流分類
- BIO方式(同步阻塞),適用于連接數(shù)目比較小且固定的架構(gòu),這種方式對服務(wù)器資源要求比較高,并發(fā)局限于應(yīng)用中,JDK1.4以前的唯一選擇,但程序直觀簡單易理解。
- NIO方式(同步非阻塞),適用于連接數(shù)目多且連接比較短(輕操作)的架構(gòu),比如聊天服務(wù)器,并發(fā)局限于應(yīng)用中,編程比較復(fù)雜,JDK1.4開始支持。
- AIO方式(異步非阻塞),使用于連接數(shù)目多且連接比較長(重操作)的架構(gòu),比如相冊服務(wù)器,充分調(diào)用OS參與并發(fā)操作,編程比較復(fù)雜,JDK7開始支持。
1.4 反射
- 獲取class的三種方法:class.forName('類名');類名.class;對象名.getClass()。
二、JavaEE基礎(chǔ)
2.1 JSP&Servlet相關(guān)知識點(diǎn)
- 詳見:https://www.cnblogs.com/guoxh/p/6532923.html
2.2 EL&JSTL
- 詳見:http://www.cnblogs.com/guoxh/p/7586856.html
2.3 Session&Cookie
2.4 Filter&Listener
三、JavaEE進(jìn)階
3.1 常用框架(重點(diǎn))
3.1.1 Struts&SpringMVC
3.1.2 Spring
圖3-1 SpringFramework
- IOC(控制反轉(zhuǎn)),DI(依賴注入)。
- AOP(面向切面編程),jdbcTemplate。
- 事務(wù)管理。
- 核心容器
- Beans
- Core
- Context
- Expression Language
3.1.3 Hibernate&Mybatis
- Hibernate核心API
- Configuration
- SessionFactory
- Session
- Query
- Transaction
3.1.4 SSM整合
圖3-2 SSM工作流程
3.1.5 前端框架
3.2 多線程(重點(diǎn))
- Java多線程實(shí)現(xiàn)方法:Runnable、Thread;
- Java內(nèi)存模型是什么?
- JVM原理;
- 線程通信&線程同步(webservice服務(wù));
- Java中Runnable和Callable有什么不同?
- Java中的volatile 變量是什么?
- Java中堆和棧有什么不同?
- 什么是線程池? 為什么要使用它?
- Java線程池中submit()和 execute()方法有什么區(qū)別?
3.3 設(shè)計(jì)模式(重點(diǎn))
3.4 Socket網(wǎng)絡(luò)編程
3.4.1 TCP
- 面向連接,安全可靠,效率低;
- 如何理解三次握手;
- 短連接 & 長連接;
3.4.2 UDP
3.5 Java垃圾回收機(jī)制GC(重點(diǎn))
3.5.1內(nèi)存泄漏
3.6 JVM原理(重點(diǎn))
四、數(shù)據(jù)庫
4.1 數(shù)據(jù)庫基本操作
- 數(shù)據(jù)庫的創(chuàng)建和刪除;
- 表的創(chuàng)建、修改和刪除;
- 表中數(shù)據(jù)的增、刪,改,查;
- 復(fù)制表結(jié)構(gòu);
- 索引的分類,索引能提高查詢效率的原理;
4.2 事務(wù)
4.2.1 事務(wù)四大特性(ACID)
- A原子性:事務(wù)是一個(gè)最小的單元,不可再分。
- C一致性:事務(wù)中的所有操作或者全部起作用,或者全部失效,不存在部分起作用,部分不起作用的情況。
- I隔離性:事務(wù)之間相互隔離,彼此相互獨(dú)立。
- D持久性:事務(wù)對數(shù)據(jù)庫的操作會(huì)反映到數(shù)據(jù)庫中。
4.2.2 事務(wù)的隔離級別
- read uncommitted:一個(gè)事務(wù)可以讀取另一個(gè)事務(wù)未提交的數(shù)據(jù),這個(gè)數(shù)據(jù)被稱為臟數(shù)據(jù)。
- read committed:其他事務(wù)頻繁地提交數(shù)據(jù),另個(gè)事務(wù)(時(shí)間跨度大)在未提交之前多次讀取提交的數(shù)據(jù),可能出現(xiàn)多次讀取的數(shù)據(jù)不一致。
- repeatable read:事務(wù)首次從數(shù)據(jù)庫中讀取數(shù)據(jù),然后將數(shù)據(jù)保存在內(nèi)存中,以后不是從數(shù)據(jù)庫,而是從內(nèi)存中讀取數(shù)據(jù)。這種隔離級別可能導(dǎo)致讀取的數(shù)據(jù)與數(shù)據(jù)庫中數(shù)據(jù)不一致,出現(xiàn)“幻讀”。
- serializable:一個(gè)事務(wù)操作完數(shù)據(jù)以后,其他事務(wù)才可以操作。
詳見:http://www.cnblogs.com/guoxh/p/7686657.html
4.3 數(shù)據(jù)庫連接池
4.4 存儲(chǔ)過程&觸發(fā)器、
4.5 數(shù)據(jù)庫索引
4.5.1 索引分類
4.5.2 索引類型
4.6 具體數(shù)據(jù)庫
4.6.1 關(guān)系型數(shù)據(jù)庫
4.6.2 非關(guān)系型數(shù)據(jù)庫NoSQL(重點(diǎn))
- 特點(diǎn):高并發(fā),高可用,高可擴(kuò)展,大數(shù)據(jù)存儲(chǔ);
- redis
- 1)Redis數(shù)據(jù)類型:String,List,Set,Zset;
- 2)Redis事務(wù)管理
- Redis支持事務(wù),但是不支持回滾,一般在不怎么考慮事務(wù)的情況下使用Redis。
- 使用命令Watch實(shí)現(xiàn)類似回滾效果。
- 命令MULTI:開啟事務(wù);EXEC:執(zhí)行事務(wù)隊(duì)列。
- discard命令清空事務(wù)隊(duì)列。
- 3)Redis實(shí)現(xiàn)持久化的兩種方式
Redis會(huì)將數(shù)據(jù)集的快照dump到dump.rdb文件中。此外,我們也可以通過配置文件來修改Redis服務(wù)器dump快照的頻率,在打開6379.conf文件之后,我們搜 索save,可以看到下面的配置信息:
save 900 1 #在900秒(15分鐘)之后,如果至少有1個(gè)key發(fā)生變化,則dump內(nèi)存快照。
save 300 10 #在300秒(5分鐘)之后,如果至少有10個(gè)key發(fā)生變化,則dump內(nèi)存快照。
save 60 10000 #在60秒(1分鐘)之后,如果至少有10000個(gè)key發(fā)生變化,則dump內(nèi)存快照。
在Redis的配置文件中存在三種同步方式,它們分別是:
appendfsync always #每次有數(shù)據(jù)修改發(fā)生時(shí)都會(huì)寫入AOF文件。
appendfsync everysec #每秒鐘同步一次,該策略為AOF的缺省策略。
appendfsync no #從不同步。高效但是數(shù)據(jù)不會(huì)被持久化。
- 4)Redis常用命令
- MULTI:開啟事務(wù);EXEC:執(zhí)行事務(wù)隊(duì)列。
- SET:設(shè)置String類型key;LPUSH:設(shè)置List類型key;SADD:設(shè)置Set類型key;ZADD:設(shè)置ZSet類型key。
五、數(shù)據(jù)結(jié)構(gòu)&算法
5.1 數(shù)據(jù)結(jié)構(gòu)
5.1.1 集合結(jié)構(gòu)
5.1.2 線性結(jié)構(gòu)
- 線性表->順序表&鏈表
- 棧(Stack)
- 隊(duì)列
- 數(shù)組&廣義表
- 串
5.1.3 樹形結(jié)構(gòu)
5.1.4 圖狀結(jié)構(gòu)
5.2 算法
六、高級
6.1 shell編程
6.1.1 了解常用的Linux命令
6.1.2 熟悉在Linux上部署項(xiàng)目
- 如何將JavaWeb項(xiàng)目部署到Linux服務(wù)器上:https://blog.csdn.net/gulu_gulu_jp/article/details/50994003 / https://www.cnblogs.com/jxgapyw/p/6082451.html
6.2 Java開發(fā)工具
- Eclipse
- git/svn
- Maven
- Myeclipse
- IDEA
6.3 服務(wù)器(重點(diǎn))
6.4 高并發(fā)&大數(shù)據(jù)處理-解決方案(重點(diǎn))
集群的主要是IT公司在做,可以保障重要數(shù)據(jù)安全;負(fù)載均衡主要是為了分擔(dān)訪問量,避免臨時(shí)的網(wǎng)絡(luò)堵塞,主要用于電子商務(wù)類型的網(wǎng)站;分布式服務(wù)器主要是解決跨區(qū)域,多個(gè)單個(gè)節(jié)點(diǎn)達(dá)到高速訪問的目前,一般是類似CDN的用途的話,會(huì)采用分布式服務(wù)器。分布式是指將不同的業(yè)務(wù)分布在不同的地方,集群指的是將幾臺(tái)服務(wù)器集中在一起,實(shí)現(xiàn)同一業(yè)務(wù)。在現(xiàn)有網(wǎng)絡(luò)結(jié)構(gòu)之上,負(fù)載均衡提供了一種廉價(jià)有效的方法擴(kuò)展服務(wù)器帶寬和增加吞吐量,加強(qiáng)網(wǎng)絡(luò)數(shù)據(jù)處理能力,提高網(wǎng)絡(luò)的靈活性和可用性。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。