本文目錄一覽:
- 1、java工程師需要掌握哪些知識
- 2、應聘JAVA架構師需要掌握哪些必要技術?
- 3、一個合格的Java開發工程師應該具備哪些技能?
- 4、java面試需要哪些基礎
- 5、java開發工程師面試應當注意什麼?
- 6、Java程序員需要掌握哪些技術?
java工程師需要掌握哪些知識
1、語法:必須比較熟悉,在寫代碼的時候,IDE(Integrated Development Environment,集成開發環境)的編輯器對某一行報錯應該能夠根據報錯信息知道是什麼樣的語法錯誤,並且知道任何修正。
2、命令:必須熟悉JDK(Java Development Kit,Java開發工具箱——JDK 是整個Java的核心,包括了Java運行環境,Java工具和Java基礎的類庫。JDK是學好Java的第一步。)帶的一些常用命令及其常用選項,命令至少需要熟悉:appletviewer、HtmlConverter、jar、 java、javac、javadoc、javap、javaw、native2ascii、serialver,如果這些命令你沒有全部使用過,那麼你對java實際上還很不了解。
3、工具:必須至少熟練使用一種IDE的開發工具,例如Eclipse、Netbeans、JBuilder、Jdeveloper、IDEA、JCreator或者Workshop,包括進行工程管理、常用選項的設置、插件的安裝配置以及進行調試。
4、API(Application Programming Interface,應用程序編程介面):Java的核心API是非常龐大的,但是有一些內容筆者認為是必須熟悉的,否則不可能熟練的運用Java,包括:
◆java.lang包下的80%以上的類的功能的靈活運用。
◆java.util包下的80%以上的類的靈活運用,特別是集合類體系、規則表達式、zip、以及時間、隨機數、屬性、資源和Timer.
◆java.io包下的60%以上的類的使用,理解IO體系的基於管道模型的設計思路以及常用IO類的特性和使用場合。
◆java.math包下的100%的內容。
◆java.net包下的60%以上的內容,對各個類的功能比較熟悉。
◆java.text包下的60%以上的內容,特別是各種格式化類。
◆熟練運用JDBC. 80%、java.security包下40%以上的內容,如果對於安全沒有接觸的話根本就不可能掌握java.
◆AWT的基本內容,包括各種組件事件、監聽器、布局管理器、常用組件、列印。
◆Swing的基本內容,和AWT的要求類似。
◆XML處理,熟悉SAX、DOM以及JDOM的優缺點並且能夠使用其中的一種完成XML的解析及內容處理。
5、測試:Junit測試是程序員測試,即所謂白盒測試。一位合格的Java開發工程師必須熟悉使用junit編寫測試用例完成代碼的自動測試。
6、管理:必須熟悉使用Ant(中文譯為螞蟻,是一種基於Java的build工具。)完成工程管理的常用任務,例如工程編譯、生成javadoc、生成jar、版本控制、自動測試。
7、排錯:應該可以根據異常信息比較快速的定位問題的原因和大致位置。
8、思想:必須掌握OOP(Object Oriented Programming,面向對象編程)的主要要求,這樣使用Java開發的系統才能是真正的Java系統。
9、規範:編寫的代碼必須符合流行的編碼規範,例如類名首字母大寫,成員和方法名首字母小寫,方法名的第一個單詞一般是動詞,包名全部小寫等,這樣程序的可讀性才比較好。
10、博學:掌握J2EE 、Oracle 、WebLogic、Jboss、Spring、Struts、Hibernate 等流行技術,掌握軟體架構設計思想、搜索引擎優化、緩存系統設計、網站負載均衡、系統性能調優等實用技術。
應聘JAVA架構師需要掌握哪些必要技術?
架構師是軟體行業中一種新興職業,工作職責是在一個軟體項目開發過程中,將客戶的需求轉換為規範的開發計劃及文本,並制定這個項目的總體架構,指導整個開發團隊完成這個計劃。架構師的主要任務不是從事具體的軟體程序的編寫,而是從事更高層次的開發構架工作。他必須對開發技術非常了解,並且需要有良好的組織管理能力。可以這樣說,一個架構師工作的好壞決定了整個軟體開發項目的成敗。
一般來講,系統架構師應該擁有以下幾方面的能力:
1:具備
8
年以上軟體行業工作經驗;
2:具備
4
年以上
C/S
或
B/S
體系結構軟體產品開發及架構和設計經驗;
3:具備
3
年以上的代碼編寫工作經驗;
4:具備豐富的大中型開發項目的總體規劃、方案設計及技術隊伍管理經驗;
5:對相關的技術標準有深刻的認識,對軟體工程標準規範有良好的把握;
6:對
.Net/JAVA
技術及整個解決方案有深刻的理解及熟練的應用,並且精通WebService/J2EE
架構和設計模式,並在此基礎上設計產品框架;
7:具有面向對象分析、設計、開發能力(OOA、OOD、OOP),精通
UML
和
ROSE,熟練使用
Rational
Rose、PowerDesigner
等工具進行設計開發;
8:精通大型資料庫如
Oracle、Sql
Server
等的開發;
9:對計算機系統、網路和安全、應用系統架構等有全面的認識,熟悉項目管理理論,並有實踐基礎;
10:在應用系統開發平台和項目管理上有深厚的基礎,有大中型應用系統開發和實施的成功案例;
11:良好的團隊意識和協作精神,有較強的內外溝通能力。
一個合格的Java開發工程師應該具備哪些技能?
.CoreJava,就是Java基礎、JDK的類庫,很多童鞋都會說,JDK我懂,但是懂還不足夠,知其然還要知其所以然,JDK的源代碼寫的非常好,要經常查看,對使用頻繁的類,比如String,集合類(List,Map,Set)等數據結構要知道它們的實現,不同的集合類有什麼區別,然後才能知道在一個具體的場合下使用哪個集合類更適合、更高效,這些內容直接看源代碼就OK了2.多線程並發編程,現在並發幾乎是寫服務端程序必須的技術,那對Java中的多線程就要有足夠的熟悉,包括對象鎖機制、synchronized關鍵字,concurrent包都要非常熟悉,這部分推薦你看看《Java並發編程實踐》這本書,講解的很詳細3.I/O,Socket編程,首先要熟悉Java中Socket編程,以及I/O包,再深入下去就是JavaNIO,再深入下去是操作系統底層的Socket實現,了解Windows和Linux中是怎麼實現socket的4.JVM的一些知識,不需要熟悉,但是需要了解,這是Java的本質,可以說是Java的母體,了解之後眼界會更寬闊,比如Java內存模型(會對理解Java鎖、多線程有幫助)、位元組碼、JVM的模型、各種垃圾收集器以及選擇、JVM的執行參數(優化JVM)等等,這些知識在《深入Java虛擬機》這本書中都有詳盡的解釋,或者去oracle網站上查看具體版本的JVM規範.5.一些常用的設計模式,比如單例、模板方法、代理、適配器等等,以及在CoreJava和一些Java框架里的具體場景的實現,這個可能需要慢慢積累,先了解有哪些使用場景,見得多了,自己就自然而然會去用。6.常用資料庫(Oracle、MySQL等)、SQL語句以及一般的優化7.JavaWeb開發的框架,比如Spring、iBatis等框架,同樣他們的原理才是最重要的,至少要知道他們的大致原理。8.其他一些有名的用的比較多的開源框架和包,Netty網路框架,Apachecommon的N多包,Google的Guava等等,也可以經常去Github上找一些代碼看看
java面試需要哪些基礎
面向對象軟體開發的優點有哪些?
答:開發模塊化,更易維護和修改;代碼之間可以復用;增強代碼的可靠性、靈活性和可理解性。
多態的定義?
答:多態是編程語言給不同的底層數據類型做相同的介面展示的一種能力。一個多態類型上的操作可以應用到其他類型的值上面。
繼承的定義?
答:繼承給對象提供了從基類獲取欄位和方法的能力。繼承提供了代碼的重用行,也可以在不修改類的情況下給現存的類添加新特性
抽象的定義?抽象和封裝的不同點?
答:抽象是把想法從具體的實例中分離出來的步驟,因此,要根據他們的功能而不是實現細節來創建類。Java支持創建只暴漏介面而不包含方法實現的抽象的類。這種抽象技術的主要目的是把類的行為和實現細節分離開。
抽象和封裝是互補的概念。一方面,抽象關注對象的行為。另一方面,封裝關注對象行為的細節。一般是通過隱藏對象內部狀態信息做到封裝,因此,封裝可以看成是用來提供抽象的一種策略。
介面和抽象類的區別是什麼?
答:Java提供和支持創建抽象類和介面。它們的實現有共同點,不同點在於:
介面中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。
類可以實現很多個介面,但是只能繼承一個抽象類
類可以不實現抽象類和介面聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的。
抽象類可以在不提供介面方法實現的情況下實現介面。
Java介面中聲明的變數默認都是final的。抽象類可以包含非final的變數。
Java介面中的成員函數默認是public的。抽象類的成員函數可以是private,protected或者是public。
介面是絕對抽象的,不可以被實例化。抽象類也不可以被實例化,但是,如果它包含main方法的話是可以被調用的。
什麼是Java虛擬機?為什麼Java被稱作是「平台無關的編程語言」?
答:上次電話面試被問到了這個問題,一臉蒙B。
Java虛擬機是一個可以執行Java位元組碼的虛擬機進程。Java源文件被編譯成能被Java虛擬機執行的位元組碼文件。
Java被設計成允許應用程序可以運行在任意的平台,而不需要程序員為每一個平台單獨重寫或者是重新編譯。Java虛擬機讓這個變為可能,因為它知道底層硬體平台的指令長度和其他特性。
這裡分享一個講Java虛擬機的趣文,小說的形式。很有趣,讀完你就明白虛擬機的工作原理:
」static」關鍵字是什麼意思?Java中是否可以覆蓋(override)一個private或者是static的方法?
答:「static」關鍵字表明一個成員變數或者是成員方法可以在沒有所屬的類的實例變數的情況下被訪問。
Java中static方法不能被覆蓋,因為方法覆蓋是基於運行時動態綁定的,而static方法是編譯時靜態綁定的。static方法跟類的任何實例都不相關,所以概念上不適用。
Java中的方法覆蓋(Overriding)和方法重載(Overloading)是什麼意思?
答:這道題如果面試考概念,80%會被問到。太容易被混淆了,上次面試時候,一緊張就說反了。
Java中的方法重載發生在同一個類裡面兩個或者是多個方法的方法名相同但是參數不同的情況。與此相對,方法覆蓋是說子類重新定義了父類的方法。方法覆蓋必須有相同的方法名,參數列表和返回類型。覆蓋者可能不會限制它所覆蓋的方法的訪問。
Java支持的數據類型有哪些?什麼是自動拆裝箱?
答:byte,short,int,long,float,double,boolean,char
自動裝箱是Java編譯器在基本數據類型和對應的對象包裝類型之間做的一個轉化。比如:把int轉化成Integer,double轉化成Double,等等。反之就是自動拆箱。
Java中,什麼是構造函數?什麼是構造函數重載?什麼是複製構造函數?
答:當新對象被創建的時候,構造函數會被調用。每一個類都有構造函數。在程序員沒有給類提供構造函數的情況下,Java編譯器會為這個類創建一個默認的構造函數。
Java中構造函數重載和方法重載很相似。可以為一個類創建多個構造函數。每一個構造函數必須有它自己唯一的參數列表。
Java不支持像C++中那樣的複製構造函數,這個不同點是因為如果你不自己寫構造函數的情況下,Java不會創建默認的複製構造函數。
Java支持多繼承么?
答:Java中類不支持多繼承,只支持單繼承(即一個類只有一個父類)。 但是java中的介面支持多繼承,或者說一個類可以實現多個介面。(介面的作用是用來擴展對象的功能,一個子介面繼承多個父介面,說明子介面擴展了多個功能,當類實現介面時,類就擴展了相應的功能)。
什麼是值傳遞和引用傳遞?
答:這個問題也比較經典。
值傳遞是對基本型變數而言的,傳遞的是該變數的一個副本,改變副本不影響原變數.
引用傳遞一般是對於對象型變數而言的,傳遞的是該對象地址的一個副本, 並不是原對象本身 。 所以對引用對象進行操作會同時改變原對象。一般認為,java內的傳遞都是值傳遞。好像還是稀里糊塗
這邊有個例子: 大家看完應該就理解了
創建線程有幾種不同的方式?
答:有三種方式可以用來創建線程:
繼承Thread類
實現Runnable介面
應用程序可以使用Executor框架來創建線程池
實現Runnable介面這種方式更受歡迎,因為這不需要繼承Thread類。在應用設計中已經繼承了別的對象的情況下,這需要多繼承(而Java不支持多繼承),只能實現介面。同時,線程池也是非常高效的,很容易實現和使用。
概括的解釋下線程的幾種可用狀態。
答:一句話說不明白這個問題,可以參考我的這篇文章:
同步方法和同步代碼塊的區別是什麼?
答:同步方法默認用this或者當前類class對象作為鎖;
同步代碼塊可以選擇以什麼來加鎖,比同步方法要更細顆粒度,我們可以選擇只同步會發生同步問題的部分代碼而不是整個方法;
這篇文章的例子不錯:
在監視器(Monitor)內部,是如何做線程同步的?程序應該做哪種級別的同步?
答:監視器和鎖在Java虛擬機中是一塊使用的。監視器監視一塊同步代碼塊,確保一次只有一個線程執行同步代碼塊。每一個監視器都和一個對象引用相關聯。線程在獲取鎖之前不允許執行同步代碼。
Java集合類框架的基本介面有哪些?
答:集合類介面指定了一組叫做元素的對象。集合類介面的每一種具體的實現類都可以選擇以它自己的方式對元素進行保存和排序。有的集合類允許重複的鍵,有些不允許。
Java集合類提供了一套設計良好的支持對一組對象進行操作的介面和類。Java集合類裡面最基本的介面有:
Collection:代表一組對象,每一個對象都是它的子元素。
Set:不包含重複元素的Collection。
List:有順序的collection,並且可以包含重複元素。
Map:可以把鍵(key)映射到值(value)的對象,鍵不能重複。
什麼是迭代器(Iterator)?
答:Iterator介面提供了很多對集合元素進行迭代的方法。每一個集合類都包含了可以返回迭代器實例的迭代方法。迭代器可以在迭代的過程中刪除底層集合的元素,但是不可以直接調用集合的
remove(Object Obj)刪除,可以通過迭代器的remove()方法刪除。
Iterator和ListIterator的區別是什麼?
答:Iterator可用來遍歷Set和List集合,但是ListIterator只能用來遍歷List。
Iterator對集合只能是前向遍歷,ListIterator既可以前向也可以後向。
ListIterator實現了Iterator介面,並包含其他的功能,比如:增加元素,替換元素,獲取前一個和後一個元素的索引,等等。
Java中的HashMap的工作原理是什麼?
答:Java中的HashMap是以鍵值對(key-value)的形式存儲元素的。HashMap需要一個hash函數,它使用hashCode()和equals()方法來向集合/從集合添加和檢索元素。當調用put()方法的時候,HashMap會計算key的hash值,然後把鍵值對存儲在集合中合適的索引上。如果key已經存在了,value會被更新成新值。HashMap的一些重要的特性是它的容量(capacity),負載因子(load factor)和擴容極限(threshold resizing)。
hashCode()和equals()方法的重要性體現在什麼地方?
答:Java中的HashMap使用hashCode()和equals()方法來確定鍵值對的索引,當根據鍵獲取值的時候也會用到這兩個方法。如果沒有正確的實現這兩個方法,兩個不同的鍵可能會有相同的hash值,因此,可能會被集合認為是相等的。而且,這兩個方法也用來發現重複元素。所以這兩個方法的實現對HashMap的精確性和正確性是至關重要的。
HashMap和Hashtable有什麼區別?
答:HashMap和Hashtable都實現了Map介面,因此很多特性非常相似。但是,他們有以下不同點:
HashMap允許鍵和值是null,而Hashtable不允許鍵或者值是null。
Hashtable是同步的,而HashMap不是。因此,HashMap更適合於單線程環境,而Hashtable適合於多線程環境。
HashMap提供了可供應用迭代的鍵的集合,因此,HashMap是快速失敗的。另一方面,Hashtable提供了對鍵的列舉(Enumeration)。
一般認為Hashtable是一個遺留的類。
數組(Array)和列表(ArrayList)有什麼區別?什麼時候應該使用Array而不是ArrayList?
答:Array可以包含基本類型和對象類型,ArrayList只能包含對象類型。
Array大小是固定的,ArrayList的大小是動態變化的。
ArrayList提供了更多的方法和特性,比如:addAll(),removeAll(),iterator()等等。
對於基本類型數據,集合使用自動裝箱來減少編碼工作量。但是,當處理固定大小的基本數據類型的時候,這種方式相對比較慢。
ArrayList和LinkedList有什麼區別?
答:ArrayList是基於索引的數據介面,它的底層是數組。它可以以O(1)時間複雜度對元素進行隨機訪問。與此對應,LinkedList是以元素列表的形式存儲它的數據,每一個元素都和它的前一個和後一個元素鏈接在一起,在這種情況下,查找某個元素的時間複雜度是O(n)。
相對於ArrayList,LinkedList的插入,添加,刪除操作速度更快,因為當元素被添加到集合任意位置的時候,不需要像數組那樣重新計算大小或者是更新索引。
LinkedList比ArrayList更占內存,因為LinkedList為每一個節點存儲了兩個引用,一個指向前一個元素,一個指向下一個元素。
Comparable和Comparator介面是幹什麼的?列出它們的區別。
答:Java提供了只包含一個compareTo()方法的Comparable介面。這個方法可以個給兩個對象排序。具體來說,它返回負數,0,正數來表明輸入對象小於,等於,大於已經存在的對象。
Java提供了包含compare()和equals()兩個方法的Comparator介面。compare()方法用來給兩個輸入參數排序,返回負數,0,正數表明第一個參數是小於,等於,大於第二個參數。equals()方法需要一個對象作為參數,它用來決定輸入參數是否和comparator相等。只有當輸入參數也是一個comparator並且輸入參數和當前comparator的排序結果是相同的時候,這個方法才返回true。
什麼是Java優先順序隊列(Priority Queue)?
答:PriorityQueue是一個基於優先順序堆的無界隊列,它的元素是按照自然順序(natural order)排序的。在創建的時候,我們可以給它提供一個負責給元素排序的比較器。PriorityQueue不允許null值,因為他們沒有自然順序,或者說他們沒有任何的相關聯的比較器。最後,PriorityQueue不是線程安全的,入隊和出隊的時間複雜度是O(log(n))。
如何權衡是使用無序的數組還是有序的數組?
答:有序數組最大的好處在於查找的時間複雜度是O(log n),而無序數組是O(n)。有序數組的缺點是插入操作的時間複雜度是O(n),因為值大的元素需要往後移動來給新元素騰位置。相反,無序數組的插入時間複雜度是常量O(1)。
Java集合類框架的最佳實踐有哪些?
答:根據應用的需要正確選擇要使用的集合的類型對性能非常重要,比如:假如元素的大小是固定的,而且能事先知道,我們就應該用Array而不是ArrayList。
有些集合類允許指定初始容量。因此,如果我們能估計出存儲的元素的數目,我們可以設置初始容量來避免重新計算hash值或者是擴容。
為了類型安全,可讀性和健壯性的原因總是要使用泛型。同時,使用泛型還可以避免運行時的ClassCastException。
使用JDK提供的不變類(immutable class)作為Map的鍵可以避免為我們自己的類實現hashCode()和equals()方法。
編程的時候介面優於實現。
底層的集合實際上是空的情況下,返回長度是0的集合或者是數組,不要返回null。
Enumeration介面和Iterator介面的區別有哪些?
答:Enumeration速度是Iterator的2倍,同時佔用更少的內存。但是,Iterator遠遠比Enumeration安全,因為其他線程不能夠修改正在被iterator遍歷的集合裡面的對象。同時,Iterator允許調用者刪除底層集合裡面的元素,這對Enumeration來說是不可能的。
HashSet和TreeSet有什麼區別?
答:HashSet是由一個hash表來實現的,因此,它的元素是無序的。add(),remove(),contains()方法的時間複雜度是O(1)。
另一方面,TreeSet是由一個樹形的結構來實現的,它裡面的元素是有序的。因此,add(),remove(),contains()方法的時間複雜度是O(logn)。
Java中垃圾回收有什麼目的?什麼時候進行垃圾回收?
答:垃圾回收的目的是識別並且丟棄應用不再使用的對象來釋放和重用資源。
finalize()方法什麼時候被調用?析構函數(finalization)的目的是什麼?
答:垃圾回收器(garbage collector)決定回收某對象時,就會運行該對象的finalize()方法 但是在Java中很不幸,如果內存總是充足的,那麼垃圾回收可能永遠不會進行,也就是說filalize()可能永遠不被執行,顯然指望它做收尾工作是靠不住的。 那麼finalize()究竟是做什麼的呢?它最主要的用途是回收特殊渠道申請的內存。Java程序有垃圾回收器,所以一般情況下內存問題不用程序員操心。但有一種JNI(Java Native Interface)調用non-Java程序(C或C++),finalize()的工作就是回收這部分的內存。
如果對象的引用被置為null,垃圾收集器是否會立即釋放對象佔用的內存?
答: 不會,在下一個垃圾回收周期中,這個對象將是可被回收的。
Java堆的結構是什麼樣子的?什麼是堆中的永久代(Perm Gen space)?
答:JVM的堆是運行時數據區,所有類的實例和數組都是在堆上分配內存。它在JVM啟動的時候被創建。對象所佔的堆內存是由自動內存管理系統也就是垃圾收集器回收。
堆內存是由存活和死亡的對象組成的。存活的對象是應用可以訪問的,不會被垃圾回收。死亡的對象是應用不可訪問尚且還沒有被垃圾收集器回收掉的對象。一直到垃圾收集器把這些對象回收掉之前,他們會一直佔據堆內存空間。
在Java中,對象什麼時候可以被垃圾回收?
答:當對象對當前使用這個對象的應用程序變得不可觸及的時候,這個對象就可以被回收了。
Java中的兩種異常類型是什麼?他們有什麼區別?
答:Java中有兩種異常:受檢查的(checked)異常和不受檢查的(unchecked)異常。不受檢查的異常不需要在方法或者是構造函數上聲明,就算方法或者是構造函數的執行可能會拋出這樣的異常,並且不受檢查的異常可以傳播到方法或者是構造函數的外面。相反,受檢查的異常必須要用throws語句在方法或者是構造函數上聲明。
Java中Exception和Error有什麼區別?
答:Exception和Error都是Throwable的子類。Exception用於用戶程序可以捕獲的異常情況。Error定義了不期望被用戶程序捕獲的異常。
具體解釋和圖說明見:
throw和throws有什麼區別?
答:throw關鍵字用來在程序中明確的拋出異常,相反,throws語句用來表明方法不能處理的異常。每一個方法都必須要指定哪些異常不能處理,所以方法的調用者才能夠確保處理可能發生的異常,多個異常是用逗號分隔的。
異常處理完成以後,Exception對象會發生什麼變化?
答:Exception對象會在下一個垃圾回收過程中被回收掉。
finally代碼塊和finalize()方法有什麼區別?
答:無論是否拋出異常,finally代碼塊都會執行,它主要是用來釋放應用佔用的資源。finalize()方法是Object類的一個protected方法,它是在對象被垃圾回收之前由Java虛擬機來調用的。
java開發工程師面試應當注意什麼?
絕大多數企業都會考察求職者以下三點:
1、Java基礎知識很重要
對Java基礎知識的熟練掌握,是很多大公司非常重視的基本能力,但是總有同學沉迷高深的技術,而忽視這一點。如果你的底層知識紮實,有一套完整的知識框架,會為你今後的所有面試打下牢固的基礎。
2、對Java應用能力考察點和加分項有所認知
不同的類型的公司,對於候選人的能力需求是不一樣的。對於社交門戶類,一般對Java工程師的考查點是大規模高並發場景的應用與架構能力;O2O行業則會側重於對面試者綜合能力的考察。
3、要清晰了解面試官的意圖,不要答非所問
針對Java不同的工作職位要求,面試考察的能力側重點是不同的。如果你是校招面試,會考察你的基礎知識、邏輯思維,更多以培養潛力的考察為主;如果你是初中級Java工程師,你需要多關注知識的廣度與基礎知識的應用;對於高級或者資深Java工程師來說,則更需要深入理解基本原理,是以綜合的能力考查為主。
Java程序員需要掌握哪些技術?
Java程序員需要掌握哪些技術?Java的技術體系是非常龐大的,需要我們學習的技術非常多,往往很多初學的人,通過互聯網查閱了一個龐大的學習列表,然後不知道如何下手。網上很多大牛列的技術不是不重要,但是掌握住企業應用的Java的核心技術,快速上手,是一種高效的學習手段。下面匯總了一下關於Java程序員需要掌握那些技術
第一、Java程序員需要掌握哪些技術?學會一個web服務
J2EE伺服器——tomcat、Nginx、httpd等。其實要掌握的也簡單那,知道什麼文件部署在什麼地方,只要會下載,能啟動,能知道最直接、最關鍵的配置文件名字和位置就可以了。其他的伺服器的名字了解一下就足夠了。
第二、Java程序員需要掌握哪些技術?會一個框架
建議你學springMVC,因為所有的mvc框架都類似,只要堅持學習了MVC,其他的SSH、SSM等是容易借鑒的。作為一名新人在面試的時候可以說你自己擅長的,其他的框架了解一點點原理就行了,但是欠賬還是要補上的,雖然說平時用順手的框架也就那麼幾個,但是後期還要繼續學習。
第三、Java程序員需要掌握哪些技術?資料庫
mysql關係型資料庫就很好,坑淺應用多,最近連集群支持的都很好了,你只要強調一點,資料庫,你不是DBA,你還不懂如何調優,如何調執行計劃,你只懂增刪改查,所以你要學的就是T-SQL,標準是你能手寫帶條件的增刪改查,會複雜語句更好,稍微了解下sql效率方面的問題,為了面試也是可以。MSSQL在國內被鄙視的不行,如果有人叫你弄oracle,那又是太裝逼,我身邊有一票的5年+程序員,其中有超過一半連oracle的AWR都不會讀,有的連數據字典都不知道。
第四、Java程序員需要掌握哪些技術?程序方面
jdbc需要了解下,相關的有連接字的寫法,如何準備和獲取結果,什麼是resultset這類東西,當然,資料庫連接的關閉和釋放也是需要的。
類和抽象類和介面的關係搞清楚,繼承和實現搞清楚,重載重寫搞清楚這些都是基本概念。
由於Java主要是B/S結構,無論是集成還是自己的前後端,你都要看一下http,整個http的生命周期是什麼?存在哪些步驟和不同的application負責哪個階段,相關的有幾個request和response實體,包含什麼是session了解下。
業務邏輯的話,上手仔細寫幾個例子就好了
第五、Java程序員需要掌握哪些技術?IDE
你總逃不過eclipse和幾個大廠的東西。要用簡單易用的,別花太多時間在這個上面。
第六、Java程序員需要掌握哪些技術?設計模式
你要稍微看一下,了解什麼是設計模式,你大可以老實說,你根本剛入行,只是粗通工廠模式和單粒,其他的需要在工作中學習,這樣既不會顯得完全不懂,也不會出什麼紕漏。
第七、Java程序員需要掌握哪些技術?前端
前端不需要了解太多,JSP+JS就足夠了。jsp上有個容易忽視的基礎點:tag到底是什麼如何處理。jsp的生命周期這些也最好看一下。
基礎的devops稍微了解下,git的代表,github可以註冊一個賬號,搞清楚本地repo和遠程repo之間的關係即可。SVN更為簡單一點。
Maven也要學習一下,主要是pom文件的幾個主要的部分,尤其是depedency。
Java程序員需要掌握哪些技術?想要成為一名合格的Java程序員需要具備以上技術技能,並且不斷地進行學習才能獲得更好的發展。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/307370.html