Java學(xué)習(xí)難不難?作為流行的編程語(yǔ)言之一,Java 在當(dāng)今的信息社會(huì)中發(fā)揮了重要作用。隨著技術(shù)的發(fā)展,社會(huì)市場(chǎng)對(duì)Java的需求也在不斷增加。那么Java容易學(xué)嗎?其實(shí)Java學(xué)習(xí)并不難,四個(gè)月就可以上手了。要學(xué)習(xí)哪些內(nèi)容呢?JAVA學(xué)習(xí)分為5個(gè)部分,第一是JavaSE(Java基礎(chǔ)),第二是數(shù)據(jù)庫(kù),第三是前端,第四是JavaEE(企業(yè)級(jí)開(kāi)發(fā)),第五是框架。
一、學(xué)習(xí) Java 基礎(chǔ)知識(shí)
需要認(rèn)真對(duì)待,扎實(shí)學(xué)習(xí),拓展。一些大公司在面試的時(shí)候,重點(diǎn)關(guān)注的是基礎(chǔ)如何,是否扎實(shí),而不是只問(wèn)從書(shū)本上學(xué)到的知識(shí)。老師講的知識(shí)不是很深入,但是在面試中,問(wèn)題很深。比如你知道java虛擬機(jī)吧?那么請(qǐng)講一下虛擬機(jī)的底層,還有JVM調(diào)優(yōu)等等。這些都是課堂上學(xué)不到的。 JVM、GC、線(xiàn)程、集合等問(wèn)題在面試中經(jīng)常被問(wèn)到。
1、JVM虛擬機(jī)知識(shí)(如調(diào)優(yōu));
2、深入的GC機(jī)制;
3、 JAVA的幾個(gè)特點(diǎn)(封裝:封裝類(lèi)與普通類(lèi)的區(qū)別等;繼承:是否可以多繼承,繼承時(shí)一些關(guān)鍵字的使用;多態(tài):對(duì)多態(tài)的理解,編譯時(shí)多態(tài)性和運(yùn)行時(shí)多態(tài)性[重載和覆蓋之間的區(qū)別])。
4、語(yǔ)法基礎(chǔ),50個(gè)要知道的關(guān)鍵字(筆試題:true、NULL、sizeof等是否是關(guān)鍵字),八種基本數(shù)據(jù)類(lèi)型(每種類(lèi)型的長(zhǎng)度范圍,Bytes的比例,最好記住面試官在兩次面試中都問(wèn)過(guò)我范圍),接口和繼承的區(qū)別(JDK1.8之后接口可以有靜態(tài)方法,方法可以有方法體)。
5、數(shù)組,必須掌握,涉及算法(冒泡、排序、選擇等)。算法和數(shù)據(jù)結(jié)構(gòu),我想我被第一次面試給震撼了。讓我寫(xiě)一個(gè)算法(給定一串固定數(shù)字,輸入一個(gè)數(shù)字,返回輸入數(shù)字在數(shù)字串中的位置,比如第一個(gè)A中返回1)。還有數(shù)據(jù)結(jié)構(gòu),計(jì)算機(jī)網(wǎng)絡(luò)原理。
6、String類(lèi),String的幾個(gè)方法,用來(lái)處理字符串之類(lèi)的,String、StringBuffer、StringBuilder的區(qū)別。 Date和SimpleDateFormat應(yīng)該也能寫(xiě),有一個(gè)筆試寫(xiě)一個(gè)程序打印出昨天的這一刻。
7、異常分類(lèi),面試時(shí)遇到的,問(wèn)有哪些異常,遇到過(guò)哪些異常。還有狀態(tài)碼,比如404、500等。
8、集合的框架,集合的區(qū)別,List、Set、Map下的實(shí)現(xiàn)類(lèi)各自的特點(diǎn),底層實(shí)現(xiàn)等都必須要問(wèn)。 TreeSet和HashSet的區(qū)別,TreeMap和HashMap的區(qū)別。必須掌握每個(gè)集合的實(shí)現(xiàn)類(lèi)特性等等。
9、JavaIO流,用于文件的讀寫(xiě)操作,字符流字節(jié)流,但面試中沒(méi)有問(wèn)到。線(xiàn)程實(shí)現(xiàn)(Thread、Runnable、Callable),線(xiàn)程安全。線(xiàn)程一定要面試問(wèn),問(wèn)實(shí)現(xiàn)方式(哪個(gè)更好,Runnable更好),實(shí)現(xiàn)方式的區(qū)別等等。線(xiàn)程同步有哪些實(shí)現(xiàn)方式,線(xiàn)程的知識(shí)需要擴(kuò)展。
10、設(shè)計(jì)模式,常用的設(shè)計(jì)模式最好掌握,因?yàn)槊看蚊嬖嚕嬖嚬俣紩?huì)問(wèn)用過(guò)哪些模式,曾經(jīng)問(wèn)過(guò)一個(gè)關(guān)于迭代器模式的問(wèn)題,但是我沒(méi)有明白了,無(wú)法回答。最好寫(xiě)單例模式和工廠(chǎng)模式,尤其是單例模式。筆試的幾道編程題要求寫(xiě)一個(gè)單例模式。
11、在網(wǎng)絡(luò)編程方面,他基本不問(wèn)Socket編程,但肯定會(huì)問(wèn)是否懂TCP和UDP協(xié)議,兩大協(xié)議肯定會(huì)問(wèn)區(qū)別。 TCP協(xié)議會(huì)詢(xún)問(wèn)協(xié)議頭之類(lèi)的,然后會(huì)延伸到do和post的區(qū)別,以及一些計(jì)算機(jī)網(wǎng)絡(luò)原理的知識(shí)。
二、學(xué)習(xí)數(shù)據(jù)庫(kù)
一定要熟悉各種功能的使用。增刪查改是最基本的,所有的操作都是基于這四個(gè)。面試詢(xún)問(wèn)了對(duì)數(shù)據(jù)庫(kù)索引的理解,索引的作用;數(shù)據(jù)庫(kù)優(yōu)化;表查詢(xún)等。重點(diǎn)是數(shù)據(jù)庫(kù)事務(wù)管理。公司非常重視數(shù)據(jù)庫(kù)。并且面試的時(shí)候會(huì)有一個(gè)數(shù)據(jù)庫(kù)問(wèn)題。
三、前端
對(duì)于前端技術(shù),你不需要掌握很多東西,有很多東西你只需要知道。當(dāng)然,有些公司會(huì)問(wèn)你有沒(méi)有學(xué)過(guò)一些前端技術(shù),比如Bootstrap等。對(duì)于Ajax技術(shù),我?guī)缀醪粏?wèn),但我覺(jué)得還是蠻重要的。 XML文件和HTML文件之間也有區(qū)別。 Session和cookies的區(qū)別等等。
四、JavaEE有JavaBean、JSP、servlet等技術(shù)
面試中最常問(wèn)的問(wèn)題是JSP和servlet的區(qū)別,九個(gè)內(nèi)置對(duì)象等。項(xiàng)目中使用了SVN,提交代碼沖突如何處理,有哪些會(huì)話(huà)跟蹤技術(shù)有沒(méi)有,有什么區(qū)別,servlet的聲明周期,get和post的區(qū)別,面試經(jīng)常遇到。
五、框架
我會(huì)問(wèn)一下Spring的原理和理解,Spring的生命周期,SSM框架的基本配置等,Spring事務(wù)管理是重點(diǎn)。面試中,面試官詢(xún)問(wèn)了Spring的事務(wù)管理和Mysql的事務(wù)管理。區(qū)別。 Spring的配置和依賴(lài)注入的三種方式。 SpringBean的生命周期也被問(wèn)過(guò)一次,面向方面編程的原理,以及事物的實(shí)現(xiàn)方式。 About Maven 會(huì)詢(xún)問(wèn)生命周期,講解 maven 的優(yōu)缺點(diǎn)等 SpringMVC 的五個(gè)組件及其運(yùn)行原理。 SpringMVC 有哪些配置文件。 MyBatis與Hibernate相比,各有優(yōu)劣,等等。
學(xué)習(xí)Java不僅需要好好完成代碼,還要花更多的時(shí)間通過(guò)復(fù)習(xí)知識(shí)來(lái)鞏固所學(xué)的知識(shí)。同時(shí),要不斷去相關(guān)復(fù)習(xí)問(wèn)題,例如千鋒教育,不斷充實(shí)自己,提高自己。更多關(guān)于“Java培訓(xùn)”的問(wèn)題,歡迎咨詢(xún)千鋒教育在線(xiàn)名師。千鋒已有十余年的培訓(xùn)經(jīng)驗(yàn),課程大綱更科學(xué)更專(zhuān)業(yè),有針對(duì)零基礎(chǔ)的就業(yè)班,有針對(duì)想提升技術(shù)的好程序員班,高品質(zhì)課程助力你實(shí)現(xiàn)java程序員夢(mèng)想。