總結(jié):
1济欢、工作中認(rèn)真對(duì)待每一個(gè)項(xiàng)目憔儿,寫模擬程序增加并發(fā)量測(cè)試忆植,優(yōu)化項(xiàng)目增加穩(wěn)定性。
2皿曲、增加分布式系統(tǒng)模塊提取抽象思維
3唱逢、消息隊(duì)列保證消費(fèi)一次,分布式一致性等問題加強(qiáng)了解
項(xiàng)目:
印象深刻的項(xiàng)目屋休,穩(wěn)定性做了什么優(yōu)化
虛擬機(jī)優(yōu)化
分布式實(shí)操
消息隊(duì)列面試題集合坞古?
分布式框架面試題集合?(dubbo劫樟,spring cloud)
分布式事務(wù)面試題集合痪枫?
緩存redis,高可用叠艳,
多線程
Java 的信號(hào)燈奶陈?
synchronized 的實(shí)現(xiàn)原理以及鎖優(yōu)化?
volatile 的實(shí)現(xiàn)原理附较?
synchronized 在靜態(tài)方法和普通方法的區(qū)別吃粒?
怎么實(shí)現(xiàn)所有線程在等待某個(gè)事件的發(fā)生才會(huì)去執(zhí)行?
CAS拒课?CAS 有什么缺陷徐勃,如何解決事示?
synchronized 和 lock 有什么區(qū)別?
Hashtable 是怎么加鎖的 僻肖?
HashMap 的并發(fā)問題肖爵?
ConcurrenHashMap 介紹?1.8 中為什么要用紅黑樹臀脏?
AQS
如何檢測(cè)死鎖劝堪?怎么預(yù)防死鎖?
Java 內(nèi)存模型揉稚?
如何保證多線程下 i++ 結(jié)果正確秒啦?
線程池的種類,區(qū)別和使用場(chǎng)景窃植?
分析線程池的實(shí)現(xiàn)原理和線程的調(diào)度過程帝蒿?
線程池如何調(diào)優(yōu),最大數(shù)目如何確認(rèn)巷怜?
ThreadLocal原理,用的時(shí)候需要注意什么暴氏?
ConcurrentHashMap 和 HashTable 中線程安全的區(qū)別延塑?為啥建議用 ConcurrentHashMap ?能把 ConcurrentHashMap 里面的實(shí)現(xiàn)詳細(xì)的講下嗎答渔?
保證線程安全的還有其他的方式嗎关带?
講下 Synchronized?
講下 RecentLock 可重入鎖沼撕? 什么是可重入鎖宋雏?為什么要設(shè)計(jì)可重入鎖?
Synchronized 和 RecentLock 有什么區(qū)別务豺?這兩個(gè)有沒有深入了解源碼磨总?
講下 Volatile 吧?他是怎樣做到同步的笼沥?
Volatile 為什么不支持原子性蚪燕?舉個(gè)例子
Atomic 怎么設(shè)計(jì)的?有用過里面的類嗎奔浅?
線程安全類和線程不安全的類馆纳,項(xiàng)目使用的時(shí)候你會(huì)怎么選擇?怎么判斷項(xiàng)目代碼哪里會(huì)有線程不安全問題汹桦?
Map鲁驶、List、Set 分別說下你了解到它們有的線程安全類和線程不安全的類舞骆?
TreeSet 清楚嗎钥弯?能詳細(xì)說下嗎径荔?
ThreadLocal 了解嗎?項(xiàng)目有用過嗎寿羞?可以說說
JUC 里面你還知道什么其他的類嗎猖凛?比如 CountDownLatch、Condition從源碼詳細(xì)說下 Java 里面的線程池吧绪穆,使用線程池有什么要注意的地方辨泳?你們公司有規(guī)范嗎?
詳細(xì)jvm內(nèi)存模型
講講什么情況下回出現(xiàn)內(nèi)存溢出玖院,內(nèi)存泄漏菠红?
說說Java線程棧
JVM 年輕代到年老代的晉升過程的判斷條件是什么呢?
JVM 出現(xiàn) fullGC 很頻繁难菌,怎么去線上排查問題试溯?
類加載為什么要使用雙親委派模式,有沒有什么場(chǎng)景是打破了這個(gè)模式郊酒?
類的實(shí)例化順序
JVM垃圾回收機(jī)制遇绞,何時(shí)觸發(fā)MinorGC等操作
常見面時(shí)套路問題
- 自我介紹
- 你總結(jié)下自身優(yōu)缺點(diǎn)?
- 你有哪些offer
- 你為什么要離開商家公司
- 上家公司的同事和領(lǐng)導(dǎo)怎么評(píng)價(jià)你的
- 介紹下你的上家公司是做哪塊的吧
- 在上家公司你做了哪些項(xiàng)目燎窘?
- 你在項(xiàng)目中是什么角色摹闽?
- 這個(gè)項(xiàng)目的數(shù)據(jù)量和并發(fā)量多大?
- 這個(gè)項(xiàng)目用的什么技術(shù)褐健?
- 項(xiàng)目過程中有遇到什么很印象深刻的問題嗎付鹿?
- 是怎么解決的這些問題?
- 項(xiàng)目有沒有還可以繼續(xù)優(yōu)化的地方蚜迅?
- 該怎么優(yōu)化舵匾?有什么思路沒?
- 叫你設(shè)計(jì)一個(gè)并發(fā)xxx谁不,數(shù)據(jù)存儲(chǔ)量xxx 量級(jí)的系統(tǒng)坐梯,你該如何設(shè)計(jì)?從你知道的點(diǎn)盡可能的多說出些拍谐?
1.Java IO流的層次結(jié)構(gòu)?
2.請(qǐng)說出常用的異常類型?
3.SKU的全稱是什么烛缔,SKU與SPU的區(qū)別及關(guān)系?
4.FileInputStream 在使用完以后轩拨,不關(guān)閉流践瓷,想二次使用可以怎么操作?
5.設(shè)計(jì)一個(gè)分步式登錄系統(tǒng)亡蓉?
6.Spring加載過程晕翠?
7.自己有沒有寫過類似Spring這樣的AOP事務(wù)?
8.Java中 try..catch 關(guān)閉流的語法糖?
9.如何設(shè)計(jì)一個(gè)秒殺系統(tǒng)?要考慮什么淋肾?
10.有沒有遇到進(jìn)線上GC硫麻,出現(xiàn)的癥狀是什么樣的,怎么解決的樊卓?
11spring的加載過程拿愧?
12.atomic 與 volatile的區(qū)別?
13.Thread的 notify()給notifyAll()的區(qū)別?
14.notifiy()是喚醒的那一個(gè)線程?
15.Thread.sleep()喚醒以后是否需要重新競(jìng)爭(zhēng)碌尔?
16.單例有多少種寫法? 有什么區(qū)別? 你常用哪一種單例浇辜,為什么用這種?
17.問一個(gè)Thread.join()相關(guān)的問題?
18.商品相關(guān)模塊系統(tǒng)怎么設(shè)計(jì)數(shù)據(jù)模型唾戚?
19.寫一個(gè)JAVA死鎖的列子?
20.如何解決死鎖?
21.GC回收算法,及實(shí)現(xiàn)原理?
22.HashMap數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)? key重復(fù)了怎么辦? 是如何解決的?
23.Spring AOP的實(shí)現(xiàn)原理柳洋,底層用什么實(shí)現(xiàn)的?
阿里技術(shù)面試2
電話面試主要考察3塊內(nèi)容:
Java的相關(guān)基礎(chǔ)知識(shí)叹坦,開源框架的原理熊镣,JVM,多線程募书,高并發(fā)绪囱,中間件等;
之前項(xiàng)目經(jīng)歷莹捡,運(yùn)用的技術(shù)毕箍,遇到的問題,如何解決道盏,個(gè)人有什么收獲和成長(zhǎng);
對(duì)于技術(shù)的熱情(平時(shí)是否看些技術(shù)書籍文捶,逛論壇荷逞,寫博客,寫源代碼或程序等)粹排;
JAVA開發(fā)技術(shù)面試可能問到的問題种远?
我們主要考核的是網(wǎng)絡(luò)nio 分布式數(shù)據(jù)庫高并發(fā)大數(shù)據(jù)
自定義表格的實(shí)現(xiàn)?
動(dòng)態(tài)表單設(shè)計(jì)?
in-jvm(必考)以及jmm緩存模型如何調(diào)優(yōu)?
常用的RPC框架
nio和io
并發(fā)編程,設(shè)計(jì)模式
地圖組件?
hashmap有什么漏洞會(huì)導(dǎo)致他變慢顽耳?
如何給hashmap的key對(duì)象設(shè)計(jì)他的hashcode坠敷?
泛型通配符?在什么情況下使用?
后端方面:redis?分布式框架dubbo(阿里巴巴開源框架)?設(shè)計(jì)模式?
場(chǎng)景式的問題:秒殺,能列出常見的排隊(duì)射富、驗(yàn)證碼膝迎、庫存扣減方式對(duì)系統(tǒng)高并發(fā)的影響?
能根據(jù)實(shí)際的需要構(gòu)建緩存結(jié)構(gòu)提高提高網(wǎng)站的訪問速度,熟練使用ehcache胰耗、oscache限次,了解memcache。
了解基于dns輪詢的負(fù)載均衡,熟練配置web服務(wù)器實(shí)現(xiàn)負(fù)載均衡卖漫,程序級(jí)能綜合使用基于hash或取模等手段實(shí)現(xiàn)軟負(fù)載费尽。
熟悉分布式數(shù)據(jù)庫設(shè)計(jì)和優(yōu)化技術(shù),熟練使用mysql羊始、oracle旱幼、SqlServer等主流數(shù)據(jù)庫,熟悉hadoop hbase mangodb redis ehcache突委、oscache memcache柏卤。對(duì)于大數(shù)據(jù)量的數(shù)據(jù)庫處理采用分表分庫、數(shù)據(jù)庫讀寫分離鸯两、建立緩存等手段優(yōu)化性能闷旧。
熟練掌握lucene,能基于lucene開發(fā)大型的搜索引擎钧唐,并能用lucene來改善和優(yōu)化數(shù)據(jù)庫的like查詢忙灼。
JAVA方向技術(shù)考察點(diǎn)(補(bǔ)充):
掌握J(rèn)ava編程語言,包含io/nio/socket/multi threads/collection/concurrency等功能的使用钝侠;
熟練掌握jvm(sun hotspot和ibm j9)內(nèi)存模型该园、gc垃圾回收調(diào)優(yōu)等技能;
精通JVM,JMM,MVC架構(gòu)帅韧,熟練使用struts2里初。
熟練使用spring、struts忽舟、ibatis構(gòu)建應(yīng)用系統(tǒng)双妨。
熟練使用Servlet,jsp叮阅,freemark等前端技術(shù)刁品。
熟練使用axis搭建基于SOAP協(xié)議的WebService服務(wù)接口。
熟練使用MAVEN構(gòu)建項(xiàng)目工程浩姥。
熟練使用tomcat等web服務(wù)挑随。
熟練使用mysql等關(guān)系型數(shù)據(jù)庫,熟悉mysql集群搭建勒叠。
熟練使用redis等NOSQL技術(shù)兜挨。
熟悉tcp、http協(xié)議眯分。
熟悉nginx拌汇、haproxy等配置。
熟悉javascript颗搂、ajax等技術(shù)担猛。
熟悉主流分布式文件系統(tǒng)FastDFS等。
熟悉JMS,可熟練使用ActiveMQ傅联。
Java技術(shù)Leader要求能夠?qū)τ陧?xiàng)目本身知其然知其所以然,不僅技術(shù)功力深還要業(yè)務(wù)能力強(qiáng)有很好的idea和業(yè)務(wù)sense先改,并且對(duì)技術(shù)充滿興趣和渴望,千萬不要面試官問一個(gè)問題答一個(gè)蒸走,呆板的表情完全看不出任何自己的想法仇奶。
面試中描述你做的每一個(gè)項(xiàng)目:你做了什么工作?這些工作你解決了什么問題比驻?還有什么困難沒有解決该溯?這些困難在后續(xù)如何優(yōu)化??jī)?yōu)化后可以實(shí)現(xiàn)什么功能别惦?這些功能如何和中間件和分布式并行系統(tǒng)聯(lián)系在一起狈茉??Java中間件方向消息的傳輸方式mq長(zhǎng)連接短連接
Java 虛擬機(jī)有什么優(yōu)化掸掸?
底層計(jì)算機(jī)理解內(nèi)存管理/數(shù)據(jù)挖掘系統(tǒng)
可靠性和可用性如何理解~
jsp 和sever lap對(duì)比
數(shù)據(jù)庫到界面氯庆,字符集轉(zhuǎn)化
基棧
jvm優(yōu)化cup高的時(shí)候如果分析和監(jiān)控
java curb突出細(xì)節(jié)問題
分布式緩存文檔如何分流
遷移數(shù)據(jù)庫垂直分割
高并發(fā)如何處理前端高并發(fā)應(yīng)用層
LB設(shè)計(jì)load balance
負(fù)載均衡
防網(wǎng)絡(luò)攻擊
數(shù)據(jù)日志事件監(jiān)控后通知
數(shù)據(jù)庫事務(wù)實(shí)現(xiàn)的底層機(jī)制
字符串空格輸入的網(wǎng)絡(luò)攻擊
Quartz框架的底層原理
數(shù)據(jù)庫同步中不通過數(shù)據(jù)庫引擎直接讀日志等方式同步數(shù)據(jù)
如果你想學(xué)好JAVA這門技術(shù),也想在IT行業(yè)拿高薪扰付,可以進(jìn)來看看 堤撵,群里有:Java工程化、高性能及分布式羽莺、高性能实昨、深入淺出。高架構(gòu)盐固。性能調(diào)優(yōu)荒给、Spring,MyBatis刁卜,Netty源碼分析和大數(shù)據(jù)等多個(gè)知識(shí)點(diǎn)锐墙。
如果你想拿高薪的,想學(xué)習(xí)的长酗,想就業(yè)前景好的,想跟別人競(jìng)爭(zhēng)能取得優(yōu)勢(shì)的桐绒,想進(jìn)阿里面試但擔(dān)心面試不過的夺脾,你都可以來,群號(hào):587372254 (小白和廣告勿擾)
阿里面試題
二叉樹的遍歷方式茉继,前序咧叭、中序、后序和層序
volatile關(guān)鍵字
synchronized
concurrentHashMap
鎖的優(yōu)化策略
操作系統(tǒng)
項(xiàng)目部分
緩存的使用烁竭,如果現(xiàn)在需要實(shí)現(xiàn)一個(gè)簡(jiǎn)單的緩存菲茬,供搜索框中的ajax異步請(qǐng)求調(diào)用,使用什么結(jié)構(gòu)?
內(nèi)存中的緩存不能一直存在婉弹,用什么算法定期將搜索權(quán)重較低的entry去掉搂抒?
TCP如何保證安全性
紅黑樹的問題笼裳,B+數(shù)
JDK1.8中對(duì)HashMap的增強(qiáng),如果一個(gè)桶上的節(jié)點(diǎn)數(shù)量過多,鏈表+數(shù)組的結(jié)構(gòu)就會(huì)轉(zhuǎn)換為紅黑樹吝秕。
項(xiàng)目中使用的單機(jī)服務(wù)器,如果將它部署成分布式服務(wù)器慎冤?
MySQL的常見優(yōu)化方式整葡、定為慢查詢
手寫一個(gè)線程安全的單例模式
進(jìn)阿里必會(huì)知識(shí):
算法和數(shù)據(jù)結(jié)構(gòu)數(shù)組、鏈表良姆、二叉樹肠虽、隊(duì)列、棧的各種操作(性能玛追,場(chǎng)景)
二分查找和各種變種的二分查找
各類排序算法以及復(fù)雜度分析(快排税课、歸并、堆)
各類算法題(手寫)
理解并可以分析時(shí)間和空間復(fù)雜度豹缀。
動(dòng)態(tài)規(guī)劃(筆試回回有伯复。。)邢笙、貪心啸如。
紅黑樹、AVL樹氮惯、Hash樹叮雳、Tire樹、B樹妇汗、B+樹帘不。
圖算法(比較少,也就兩個(gè)最短路徑算法理解吧)
計(jì)算機(jī)網(wǎng)絡(luò)OSI7層模型(TCP4層)每層的協(xié)議
url到頁面的過程
HTTPhttp/https 1.0杨箭、1.1寞焙、2.0
get/post 以及冪等性
http 協(xié)議頭相關(guān)
網(wǎng)絡(luò)攻擊(CSRF、XSS)
TCP/IP三次握手互婿、四次揮手
擁塞控制(過程捣郊、閾值)
流量控制與滑動(dòng)窗口
TCP與UDP比較
子網(wǎng)劃分(一般只有筆試有)
DDos攻擊
(B)IO/NIO/AIO三者原理,各個(gè)語言是怎么實(shí)現(xiàn)的
Netty
Linux內(nèi)核select poll epoll
數(shù)據(jù)庫(最多的還是mysql慈参,Nosql有redis)索引(包括分類及優(yōu)化方式呛牲,失效條件,底層結(jié)構(gòu))
sql語法(join驮配,union娘扩,子查詢着茸,having,group by)
引擎對(duì)比(InnoDB琐旁,MyISAM)
數(shù)據(jù)庫的鎖(行鎖涮阔,表鎖,頁級(jí)鎖旋膳,意向鎖澎语,讀鎖,寫鎖验懊,悲觀鎖擅羞,樂觀鎖,以及加鎖的select sql方式)
隔離級(jí)別义图,依次解決的問題(臟讀减俏、不可重復(fù)讀、幻讀)
事務(wù)的ACID
B樹碱工、B+樹
優(yōu)化(explain娃承,慢查詢,show profile)
數(shù)據(jù)庫的范式怕篷。
分庫分表历筝,主從復(fù)制,讀寫分離廊谓。
Nosql相關(guān)(redis和memcached區(qū)別之類的梳猪,如果你熟悉redis,redis還有一堆要問的)
操作系統(tǒng):進(jìn)程通信IPC(幾種方式)蒸痹,與線程區(qū)別
OS的幾種策略(頁面置換春弥,進(jìn)程調(diào)度等,每個(gè)里面有幾種算法)
互斥與死鎖相關(guān)的
linux常用命令(問的時(shí)候都會(huì)給具體某一個(gè)場(chǎng)景)
Linux內(nèi)核相關(guān)(select叠荠、poll匿沛、epoll)
編程語言(這里只說Java):把我之后的面經(jīng)過一遍,Java感覺覆蓋的就差不多了榛鼎,不過下面還是分個(gè)類逃呼。
Java基礎(chǔ)(面向?qū)ο蟆⑺膫€(gè)特性者娱、重載重寫蜘渣、static和final等等很多東西)
集合(HashMap、ConcurrentHashMap肺然、各種List,最好結(jié)合源碼看)
并發(fā)和多線程(線程池腿准、SYNC和Lock鎖機(jī)制际起、線程通信拾碌、volatile、ThreadLocal街望、CyclicBarrier校翔、Atom包、CountDownLatch灾前、AQS防症、CAS原理等等)
JVM(內(nèi)存模型、GC垃圾回收哎甲,包括分代蔫敲,GC算法,收集器炭玫、類加載和雙親委派奈嘿、JVM調(diào)優(yōu),內(nèi)存泄漏和內(nèi)存溢出)
IO/NIO相關(guān)
反射和代理吞加、異常裙犹、Java8相關(guān)、序列化
設(shè)計(jì)模式(常用的衔憨,jdk中有的)
Web相關(guān)(servlet叶圃、cookie/session、Spring
作者:Java后端技術(shù)的博客
來源:CSDN
原文:https://blog.csdn.net/gupaoxueyuan/article/details/79915166
版權(quán)聲明:本文為博主原創(chuàng)文章践图,轉(zhuǎn)載請(qǐng)附上博文鏈接掺冠!
宏觀方面
一、 JAVA平项。要想成為JAVA(高級(jí))工程師肯定要學(xué)習(xí)JAVA赫舒。一般的程序員或許只需知道一些JAVA的語法結(jié)構(gòu)就可以應(yīng)付了。但要成為JAVA(高級(jí)) 工程師闽瓢,您要對(duì)JAVA做比較深入的研究接癌。您應(yīng)該多研究一下JDBC、IO包扣讼、Util包缺猛、Text包、JMS椭符、EJB荔燎、RMI、線程销钝。如果可能有咨,希望您 對(duì)JAVA的所有包都瀏覽一下,知道大概的API蒸健,這樣您就發(fā)現(xiàn)其實(shí)您想實(shí)現(xiàn)的很多功能座享,通過JAVA的API都可以實(shí)現(xiàn)了婉商,就不必自己費(fèi)太多的腦經(jīng) 了。
二渣叛、 設(shè)計(jì)模式丈秩。其實(shí)寫代碼是很容易的事情,我相信您也有同感淳衙。但如何寫得好就比較難了蘑秽。這個(gè)“好”字包括代碼可重用性,可維護(hù)性箫攀,可擴(kuò)展性等肠牲。如何寫出好的代 碼往往要借助一些設(shè)計(jì)模式。當(dāng)然長(zhǎng)期的代碼經(jīng)驗(yàn)積累匠童,只要您用心埂材,會(huì)使您形成自己代碼風(fēng)格。相信您的代碼也比較符合代碼的可重用性汤求,可維護(hù)性俏险,可擴(kuò)展性。 但既然前人已經(jīng)給我們總結(jié)出了經(jīng)驗(yàn)扬绪,我們何不踩著前人的肩膀前進(jìn)竖独?
三、 XML〖放#現(xiàn)在的系統(tǒng)中不使用XML幾乎是不可能的莹痢。XML的功能非常強(qiáng)大,它可以做數(shù)據(jù)轉(zhuǎn)換墓赴、做系統(tǒng)的配置竞膳、甚至可保存您的系統(tǒng)業(yè)務(wù)數(shù)據(jù)。因此您必須了解 XML诫硕,包括它的語法坦辟,結(jié)構(gòu)。您還需要比較熟練的使用解析XML的一些API章办,比如JDOM锉走,SAX等,因?yàn)樵谖覀円话愕捻?xiàng)目中藕届,XML往往擔(dān)當(dāng)系統(tǒng)配置 信息的作用挪蹭,您需要用這些API解析這些配置信息,開發(fā)完美的項(xiàng)目休偶。
四梁厉、 精通使用一種或兩種框架。像在《如何成為java初級(jí)程序員》中提到的那樣踏兜,“框架都會(huì)有許多可重用的代碼词顾,良好的層次關(guān)系和業(yè)務(wù)控制邏輯只冻,基于框架的開 發(fā)使你可以省出很多的開發(fā)成本”。但我這里希望您能精通计技,更多的是希望您能通過框架的使用了解框架的思想。這樣您在開發(fā)一個(gè)項(xiàng)目時(shí)思路會(huì)開闊一些山橄,比如您 會(huì)想到把SQL語句與您的JAVA代碼分開垮媒,再比如您會(huì)考慮把您的業(yè)務(wù)邏輯配置到XML或者數(shù)據(jù)庫中,這樣整個(gè)項(xiàng)目就很容易擴(kuò)張了航棱。
五睡雇、 熟悉主流數(shù)據(jù)庫。其實(shí)真正比較大的項(xiàng)目都是有人專門做數(shù)據(jù)庫的饮醇,但往往很多項(xiàng)目要求作為(高級(jí))工程師的您也參與數(shù)據(jù)庫的設(shè)計(jì)以及SQL的編寫它抱。所以為了 更好的為國家做貢獻(xiàn),建議您還是多了解一些主流數(shù)據(jù)庫朴艰,比如SQLSERVER观蓄,ORACLE,多連接SQL和存儲(chǔ)過程以及觸發(fā)器祠墅。如果您不是“科班”出 身侮穿,您還需要補(bǔ)充一些數(shù)據(jù)庫原理方面的知識(shí)。
六毁嗦、 精通一種或兩種WEBServer亲茅。盡管我再《如何成為java初級(jí)程序員》里講過它,我還是要強(qiáng)調(diào)您要精通一種或兩種狗准。因?yàn)樽鳛镴AVA工程師克锣,特別時(shí) 想成為高級(jí)JAVA工程師的您,您不可避免地要部署您的項(xiàng)目到WebServer上腔长,而且只有當(dāng)您精通一種WebServer袭祟,您才可能最大限度地使用它 的資源,這往往可以節(jié)省很多時(shí)間和精力饼酿。
七榕酒、 UML。我知道您肯定想成為高級(jí)工程師故俐,因此您有必要了解或熟練或精通UML想鹰,這取決于您有多大決心想成為高級(jí)工程師和項(xiàng)目經(jīng)理。在比較正規(guī)的開發(fā)團(tuán)隊(duì) 中药版,UML是討論項(xiàng)目的交流工具辑舷,您要想做一個(gè)軟件工程師,您至少要能看懂槽片,您要想做高級(jí)工程師何缓,您要能通過它來描述您對(duì)項(xiàng)目的理解肢础,盡管這不是必須,但 卻很重要碌廓。
八传轰、 站在高度分析問題:這不是一個(gè)知識(shí)點(diǎn),也不是通過書本就能學(xué)得到的谷婆。只所以提到這一點(diǎn)慨蛙,是因?yàn)槲冶饶€著急,我希望您更快的成為一個(gè)高級(jí)的軟件工程師纪挎,而 不是一個(gè)一般的軟件工程師期贫。希望您在工作中多向您的系統(tǒng)分析員、需求分析員异袄、系統(tǒng)設(shè)計(jì)員學(xué)習(xí)通砍,多站在他們角度上去看您在開發(fā)的項(xiàng)目。在最好在項(xiàng)目之初先在 您的腦海里對(duì)項(xiàng)目有個(gè)大致的分析烤蜕、設(shè)計(jì)封孙,然后和他們進(jìn)行比較,找找差別玖绿,想想缺點(diǎn)敛瓷。
九、 工具斑匪。與在《如何成為java初級(jí)程序員》里提到的不同呐籽,您在這個(gè)階段可能接觸到不同的工具了,盡管您還需要使用JB或者IDEA蚀瘸,但能可能對(duì) ROSE狡蝶,Together要多了解一些,因?yàn)槟婾ML了贮勃。不要再對(duì)Dreamweaver等HTML編輯器情有獨(dú)鐘了贪惹,那些JSP頁面讓初級(jí)程序員 去寫吧
微觀方面
1.Core Java部分
這是最基礎(chǔ)的,對(duì)于一個(gè)java高級(jí)開發(fā)/設(shè)計(jì)人員,你需要對(duì)這一部分達(dá)到精通的水平,重點(diǎn)內(nèi)容如下:
a.面向?qū)ο缶幊趟枷?封裝繼承多態(tài)接口)
b.字符串處理
c.java.lang包,java.util包等常用包
d.java異常處理
2.Java高級(jí)部分
a.Java I/O流
b.Java多線程技術(shù)
c.Java網(wǎng)絡(luò)編程
d.Java Swing
后兩項(xiàng)可以了解即可,如果項(xiàng)目需要可以深入研究
3.前端基本技能
* HTML + CSS網(wǎng)頁開發(fā)
* JavaScript
* Jquery
* 瀏覽器兼容性 CSS hack(了解)
4.熟練使用JSP + Servlet進(jìn)行開發(fā)
5.MVC設(shè)計(jì)模式,原理,以及相關(guān)框架,如Struts
6.SSH框架
7.緩存技術(shù) session & cookie
8.熟練使用一種以上Java開發(fā)工具(Eclipse/MyEclipse/Jbuilder/Jcreator/IntelliJIEDA/NetBeans)
9.熟練使用XML
JDOM w3c.dom SAX
10.Java設(shè)計(jì)模式
工廠模式,單例模式 ==
11.Java反射機(jī)制
反射的各種用法
12.了解或熟悉 C, C++, .NET
13.熟悉JDK的配置,環(huán)境變量
14.數(shù)據(jù)庫oracle必學(xué),其他最好了解一種以上(mysql,sql server,access==)
oracle:視圖,索引,存儲(chǔ)過程,觸發(fā)器,游標(biāo),包,常用函數(shù) ==
15.數(shù)據(jù)庫原理
事務(wù)的原理,鎖機(jī)制,表連接,復(fù)雜查詢語句(工作經(jīng)驗(yàn)),性能調(diào)優(yōu),鎖表以及解決方案==
16.JDBC,連接池
17.Ajax,反向Ajax
18.HTTP協(xié)議,request 和 response的原理,HTTP status(了解常用的),Https原理
19.熟悉Linux基本命令,使用過Linux/Unix系統(tǒng),可以編寫shell腳本,可以在Linux上部署項(xiàng)目
20.了解windows系統(tǒng)批處理腳本bat
21.了解HTML5,最好學(xué)習(xí)過
22.熟悉一種JS框架,如Prototype
23.J2EE原理 熟悉一種以上web容器如Tomcat,JBoss,websphere,weblogic==
24.熟悉ant或maven
25.熟悉一門腳本語言,如python ,ruby
26.了解php/ asp
27.了解ftp協(xié)議及原理
28.熟練使用Junit測(cè)試,熟悉Mockito等測(cè)試工具
29,熟悉javac,javadoc,native,native2ascii等常用命令
30.熟悉常用的排序算法,如冒泡排序,快速排序等,最好自己研究過一些的算法。
31.了解Flex(不學(xué)也沒關(guān)系)
32.了解敏捷開發(fā)模式
33.工作流workflow至少用過一種,如OSworkflow,了解原理
34.使用過VPN了解其原理
35.熟悉jstl表達(dá)式和el表達(dá)式
36.熟悉webservice,WSDL,SOAP
37.圖片處理,如圖片上傳,預(yù)覽,限制大小等
38.版本控制工具,CVS VSS SVN
39,JSON技術(shù),JSON+AJAX
40.分頁技術(shù),最好自己實(shí)現(xiàn)過不僅僅是用過要知道原理
41.Java Mail
42.Java讀寫txt,excel,JXL技術(shù)
43.JVM原理,JVM內(nèi)存管理,GC,Java堆棧池
44.熟練使用下面的工具:
office辦公軟件,word,excel,ppt等
plsql,sqldevelop 數(shù)據(jù)庫開發(fā)工具
outlook大公司都用
ue編輯器
瀏覽器控制臺(tái),調(diào)試
SHH/PUTTY 遠(yuǎn)程
45.UML建模工具Rational Rose等
- 使用log4j
47.使用過開放Api如百度寂嘉,騰訊街景奏瞬,新浪微博等
48.頁面靜態(tài)化技術(shù)(偽靜態(tài)頁面)
49.報(bào)表技術(shù),使用過報(bào)表制作工具泉孩,如水晶易表硼端。
50.定時(shí)任務(wù),如Spring batch ,學(xué)會(huì)自定義batch任務(wù)(不適用第三方工具)
51.了解uuid
52.b/s 和 c/s架構(gòu)
53.正則表達(dá)式
54.了解jndi jms
55.ERP
56.UNICODE編碼寓搬,亂碼解決
57.開源網(wǎng)絡(luò)編輯器珍昨,如ckEditor
58.二進(jìn)制原理
59.使用過,了解過開源論壇框架,如discuzz
60.GWT镣典,Closure框架
61.了解大數(shù)據(jù)兔毙,云計(jì)算
62.搜索引擎搜索技術(shù)
63.軟件工程,項(xiàng)目管理