java工作需要什麼水平 - CSDN

2021-01-16 CSDN技術社區

前言

一份月薪30K的java開發崗位工作要求是怎樣的呢?面試都會問到哪些呢?

任職要求:

1、計算機或相關專業本科(或以上)學歷,具備3年以上Java服務端開發經驗,熟悉常用的Java開源框架,如熟悉Spring、SpringMVC、SpringBoot、Hibernate、MyBatis等,了解其原理和實現機制;

2、擅長Java Web服務開發,熟悉掌握各種Web應用開發模式,具有豐富的高並發、大數據系統的設計、研發、調試經驗者優先;

3、精通Java及面向對象設計開發,熟悉常見設計模式,有系統設計經驗,研究過優秀開源軟體源碼並有心得者優先;

4、熟悉常用資料庫(MySQL、Redis等)的原理和使用,具有良好的資料庫設計能力,對SQL編寫和優化有豐富的經驗;

5、熟悉Linux作業系統,掌握常用的Shell命令;

基於這些要求我們身為程式設計師必須要掌握:

1、數據結構與算法。簡單的算法與數據結構你還是該掌握的吧?這個要求過分嗎?作為程式設計師的你,如果連數組,鍊表,這兩個基本的結構都搞不懂,還拿什麼指望你去理解,平衡二叉樹,紅黑樹,哈希表,堆,桶,圖,這些更為複雜的數據結構?簡單的冒泡和選擇排序手寫下都面有難色的主,還指望他聽過快排、插入、希爾、堆排序、二路歸併、多路歸併、桶排、計數、基數這些本該掌握的很基礎的東西?有些時候遇到點知道時間複雜度和空間複雜度的人都阿彌陀佛了……

2、作業系統。基本的linux命令你還是要會幾個撒?內存分配、進程、線程調度這些簡單基礎的概念你還是應該有一點撒?別說這些東西沒用,很多時候在實現的時候,很多軟體參考了不少作業系統的設計思想。

3、資料庫層面。幾大範式定義概念搞懂。資料庫事務的ACID總能扯明白吧?隔離層級分別保障的力度,和依然存在的問題你得知曉吧?有些都工作幾年的人了,不過分吧?SQL優化搞沒搞過?主流的MYSQL的存儲引擎之間的區別,幾種索引的區別和應用場景,應該如數家珍撒?作為一隻技術狗,資料庫事務的實現方式你應該知道一些吧?二階段提交、三階段提交你知道不?這些知道幾分,就看你個人深淺了。

以上算通用層面的東西,只要你說你是個程式設計師,你就應該知道。下面我們就來掰扯下和java有關的東西了。

30K的面試必將會問到:性能優化、微服務架構、並發編程、開源框架、分布式等。下面將會針對這幾個點展開分析。全套《2020年面試寶典總綱》資料總計頁數946頁,點擊下方進入

性能優化tomcat性能優化

JVM性能優化

Mysql性能優化

1、Tomcat性能優化你怎麼給Tomcat調優?

如何加大Tomcat連結數?

怎麼加大Tomcat的內存?

Tomcat中如何禁用列目錄下的文件?

Tomcat有幾種部署方式?

Tomcat的優化經驗分享?

.........

2、JVM性能優化JVM類加載過程?

JVM內存分配?

描述下JVM加載Class文件的原理機制?

GC是什麼?為什麼要有GC?

簡述Java垃圾回收機制?

如何判斷一個對象是否存活?(GC對象的判定方法)

垃圾回收的優點和原理。並考慮2種回收機制?

垃圾回收器的基本原理是什麼?垃圾回收器可以馬上回收內存嗎?有什麼辦法主動通知虛擬機進行垃圾回收?

Java中會存在內存洩漏嗎,請簡單描述。

深拷貝和淺拷貝

System.gc()和Runtime.gc)會做什麼事情?

finalize(方法什麼時候被調用?析構函數(finalization)的目的是什麼?

如果對象的引用被置為null,垃圾收集器是否會立即釋放對象佔用的內存?

什麼是分布式垃圾回收(DGC)?它是如何工作的?

串行(serial)收集器和吞吐量(throughput)收集器的區別是什麼?

在Java中,對象什麼時候可以被垃圾回收?

簡述Java內存分配與回收策略以及 Minor GC和Major GC。

JVM的永久代中會發生垃圾回收麼?

Java中垃圾收集的方法有哪些?

什麼是類加載器,類加載器有哪些?

類加載器雙親委派模型機制?

...........

微服務架構SpringCloud

SpringBoot

Dubbo

1、SpringCloud面試整理什麼是Spring Cloud?

使用Spring Cloud有什麼優勢?

服務註冊和發現是什麼意思?Spring Cloud如何實現?

負載平衡的意義什麼?

什麼是Hystrix?它如何實現容錯?

什麼是Hystrix斷路器?我們需要它嗎?

什麼是Netflix Feign?它的優點是什麼?

什麼是Spring Cloud Bus?我們需要它嗎?

..............

2、SpringBoot面試整理什麼是Spring Boot?

Spring Boot有哪些優點?

什麼是JavaConfig?

如何重新加載Spring Boot上的更改,而無需重新啟動伺服器?

Spring Boot中的監視器是什麼?

如何在Spring Boot中禁用Actuator端點安全性?

如何在自定義埠上運行Spring Boot應用程式?

什麼是YAML?

如何實現Spring Boot應用程式的安全性?

如何集成Spring Boot和ActiveMQ?

如何使用Spring Boot實現分頁和排序?

什麼是Swagger?你用Spring Boot實現了它嗎?

什麼是Spring Profiles?

什麼是Spring Batch?

什麼是FreeMarker模板?

如何使用Spring Boot實現異常處理?

您使用了哪些starter maven依賴項?

什麼是CSRF攻擊?

什麼是WebSockets?

什麼是AOP?

什麼是Apache Kafka?

我們如何監視所有Spring Boot微服務?

......

3、Dubbo面試整理Dubbo中zookeeper做註冊中心,如果註冊中心集群都掛掉,發布者和訂閱者之間還能通信麼?

dubbo服務負載均衡策略?

Dubbo在安全機制方面是如何解決的

dubbo連接註冊中心和直連的區別

.........

並發編程高級面試Synchronized用過嗎,其原理是什麼?

你剛才提到獲取對象的鎖,這個「鎖」到底是什麼?如何確定對象的鎖?

什麼是可重入性,為什麼說Synchronized是可重入鎖?

JVM對Java的原生鎖做了哪些優化?

為什麼說Synchronized是非公平鎖?

什麼是鎖消除和鎖粗化?

為什麼說Synchronized是一個悲觀鎖?樂觀鎖的實現原理又是什麼?什麼是CAS,它有什麼特性?

樂觀鎖一定就是好的嗎?

跟Synchronized相比,可重入鎖ReentrantLock其實現原理有什麼不同?

那麼請談談AQS框架是怎麼回事兒?

請儘可能詳盡地對比下Synchronized和ReentrantL ock的異同。

ReentrantLock 是如何實現可重入性的?

除了ReetrantL ock,你還接觸過JUC中的哪些並發工具?

請談談ReadWriteLock和StampedLock。

如何讓Java的線程彼此同步?你了解過哪些同步器?請分別介紹下。

CyclicBarrier 和CountDownl _atch看起來很相似,請對比下呢?

Java中的線程池是如何實現的?

創建線程池的幾個核心構造參數?

線程池中的線程是怎麼創建的?是一開始就隨著線程池的啟動創建好的嗎?

既然提到可以通過配置不同參數創建出不同的線程池,那麼Java中默認實現好的線程池又有哪些呢?請比較它們的異同。

如何在Java線程池中提交線程?

什麼是Java的內存模型,Java 中各個線程是怎麼彼此看到對方的變量的?

請談談volatile 有什麼特點,為什麼它能保證變量對所有線程的可見性?

既然volatile能夠保證線程間的變量可見性,是不是就意味著基於volatile變量的運算就是並發安全的?

請對比下volatile對比Synchronized的異同。

請談談ThreadLocal是怎麼解決並發安全的?

很多人都說要慎用ThreadLocal,談談你的理解,使用ThreadLocal需要注意些什麼?

..........

開源框架面試Spring面試整理

SpringMVC面試整理

MyBatis面試整理

1、Spring面試整理什麼是Spring框架?Spring框架有哪些主要模塊?

使用Spring框架能帶來哪些好處?

什麼是控制反轉(IOC)?什麼是依賴注入?

請解釋下Spring框架中的LOC?

BeanFactory 和ApplicationContext有什麼區別?

Spring 有幾種配置方式?

如何用基於XML配置的方式配置Spring?

如何用基於Java配置的方式配置Spring?

怎樣用註解的方式配置Spring?

請解釋Spring Bean的生命周期?

Spring Bean的作用域之間有什麼區別?

什麼是Spring inner beans?

Spring框架中的單例Beans是線程安全的麼?

請舉例說明如何在Spring中注入-個Java Collection?

如何向Spring Bean中注入-一個Java.util.Properties?

請解釋Spring Bean的自動裝配?

請解釋自動裝配模式的區別?

.......

2、SpringMVC面試整理什麼是SpringMVC?

Spring MVC的優點:

SpringMVC工作原理?

SpringMVC流程?

SpringMvc的控制器是不是單例模式,如果是,有什麼問題,怎麼解決?

如果你也用過struts2.簡單介紹下springMVC和struts2的區別有哪些?

SpingMvc中的控制器的註解一般用那個,有沒有 別的註解可以替代?

@RequestMapping 註解用在類上面有什麼作用?

怎麼樣把某個請求映射到特定的方法上面?

如果在攔截請求中,我想攔截get方式提交的方法,怎麼配置?

怎麼樣在方法裡面得到Request,或者Session?

我想在攔截的方法裡面得到從前臺傳入的參數,怎麼得到?

如果前臺有很多個參數傳入,並且這些參數都是一個對象的,那麼怎麼樣快速得到這個對象?

SpringMvc中函數的返回值是什麼?

SpringMVC怎麼樣設定重定向和轉發的?

SpringMvc 用什麼對象從後臺向前臺傳遞數據的?

SpringMvc 中有個類把視圖和數據都合併的一起的,叫什麼?

怎麼樣把ModelMap裡面的數據放入Session裡面?

SpringMvc怎麼和AJAX相互調用的?

SpringMvc 裡面攔截器是怎麼寫的

......

3、MyBatis面試整理什麼是MyBatis?

講下MyBatis的緩存

Mybatis 是如何進行分頁的?分頁插件的原理是什麼?

簡述Mybatis的插件運行原理,以及如何編寫-一個插件?

Mybatis 動態SQL是做什麼的?都有哪些動態SQL?能簡述一下動態SQL的執行原理嗎?

#{}和${}的區別是什麼?

為什麼說Mybatis是半自動ORM映射工具?它與全自動的區別在哪裡?

Mybatis是否支持延遲加載?如果支持,它的實現原理是什麼?

MyBatis 與Hibernate 有哪些不同?

MyBatis的好處是什麼?

簡述Mybatis的Xml映射文件和Mybatis內部數據結構之間的映射關係?

什麼是MyBatis的接口綁定,有什麼好處?

接口綁定有幾種實現方式,分別是怎麼實現的?

什麼情況下用註解綁定,什麼情況下用xml綁定?

MyBatis 實現-對一-有幾種方式?具體怎麼操作的?

Mybatis 能執行一對一、一對多的關聯查詢嗎?都有哪些實現方式,以及它們之間的區別?

MyBatis 裡面的動態Sql是怎麼設定的?用什麼語法?

Mybatis 是如何將sql執行結果封裝為目標對象並返回的?都有哪些映射形式?

Xml映射文件中,除了常見的selectlinsertlupdae|delete 標籤之外,還有哪些標籤?

當實體類中的屬性名和表中的欄位名不-樣,如果將查詢的結果封裝到指定pojo?

Mybatis 映射文件中,如果A標籤通過include引用了B標籤的內

映射文件中,如果映射文件中,如果A標籤通過包括引用了B標籤的內容,請問,B標籤能否定義在A標籤的後面,還是說必須定義在A標籤的前面?

IBatis 和MyBatis在核心處理類分別叫什麼?

......

分布式面試分布式限流面試整理

分布式通訊面試整理

分布式資料庫面試整理

1.1、ZooKeeper面試專題

1.2、Nginx面試專題

2.1、RabbitMQ消息中間件面試專題

2.2、kafka面試專題

3.1、Redis面試專題

3.2、MongoDB面試專題

3.3、memcached面試專題

搭配大廠面試解析教程

獲取方式

《2020年面試寶典總綱》資料整理不易,本資料全套共946頁,大家拿到後可以回去吃透,來年正好可以派上用場,在面試中大展拳腳,拿下心儀Offer。 點擊下方進入

相關焦點

  • android啟動頁設計專題及常見問題 - CSDN
    轉載請註明出處:http://blog.csdn.net/wangjihuanghun/article/details/63255144啟動頁幾乎成為了每個app的標配,有些商家在啟動頁中增加了開屏廣告以此帶來更多的收入。
  • 跟我學java編程—Java條件運算符
    其工作原理可以用圖片形式進行描述,如下圖所示。 圖 7-6 條件運算符的工作原理num1:num2;可以看出,條件運算符需要三個操作數,一個是需要被賦值的操作數,另外兩個是參與比較運算的操作數。該語句首先檢查表達式num1>num2,判斷其值是真還是假。如果此表達式的值為真,即num1>num2,則將num1賦值給max,否則,將num2的值賦值給max。
  • 支撐著天貓雙11狂歡購物的是什麼——java程序
    那麼,這麼龐大的用戶同天消費的背後,是什麼在支撐著天貓雙11的運營呢?毫無疑問,是Java語言!淘寶作為世界上規模最大、複雜性最高電商系統,它的一切都是在Java語言的基礎上建立起來的。淘寶在2004年就從PHP語言轉換成了Java語言,阿里系公司基本是全線使用Java語言,而且水平在國際上也是一流的。
  • 什麼,JAVA的泛型是偽泛型
    通過現代idea自動編譯功能,由此可以大大提高我們的編程效率但是有關java的泛型有一些值得思考的問題:方法重載以上現象是因為在編譯時泛型擦除造成的,什麼? 泛型擦除又是什麼鬼?代碼示範字節碼片段然後用jd-gui工具反編譯回java
  • JAVA專業術語面試100問
    Error與Exception有什麼區別?17、java中的throw 和 throws關鍵字有什麼區別?18、列舉幾個你了解的幾個常見的運行時異常?19、final, finally, finalize有什麼區別?
  • 一般什麼工作包住宿_上海包住宿的軟體測試工作 - CSDN
    最後一天需要小組答辯展示成果,這個實習就類似於軟體工程實驗課吧。。。下午: 導師補充說明:因為這次實習大部分小組都使用的java+sql,對於不會這兩種語言的同學來說,不必擔心,可以寫一些文檔類或者資料搜集類的工作,答辯的時候我們看的是綜合能力,以及小組整體的完成度,不是只看代碼能力。我們中信銀行不只有開發崗,也有一些其他的崗位,看各位的崗位匹配度。
  • Go+iris吊打Java+SpringBoot,是Java老了嗎?且慢,Vert.x有話說
    Go+Iris vs Java+SpringBoot 為您揭曉答案那個結果很容易給人一個錯覺:是java老了嗎?當然不是!Java界的性能擔當根本就不是Spring,只是因為國內用java的web框架主要是Spring,我們才拿它來測……本次我們就請出java界的性能擔當——Vert.x,跟Iris再比一次這次的結果會比較有說服力因為iris在官網自稱自己是 the fastest web framework,請注意:它並沒有加任何修飾詞,比如go語言中最快的,而是直說是最快的
  • Java基礎學習,什麼是泛型概念,使用泛型有哪些好處?
    泛型的使用例子:在如圖的例子中T就是類型參數當你創建Holder對象時,必須指明想持有什麼類型的對象,將其置於尖括號內,就像main()中那樣。然後,你就只能在Holder中存入該類型(或其子類,以為多態與泛型不衝突)的對象了。並且,在你從Holder中取出它持有的對象時,自動地就是正確的類型。
  • Java泛型了解麼?什麼是類型擦除?介紹一下常用的通配符?
    表示不確定的 java 類型T (type) 表示具體的一個java類型K V (key value) 分別代表java鍵值中的Key ValueE (element) 代表Element
  • 萬字概覽 Java 虛擬機
    為什麼要學習 JVM在很多 Java 程式設計師的開發生涯裡,JVM 一直是黑盒子一般的存在,大家只知道運行 Java 程序需要依靠 JVM,千篇一律的配置幾個類似 -Xms 和 -Xmx 的參數,可能到最後都不知道自己配置的參數有什麼具體的意義。
  • Java enum的用法詳解
    和java.util.EnumMap是兩個枚舉集合。ordinal:" + aLight.ordinal()); System.out.println("當前燈:" + aLight); } } /** * * 演示EnumMap的使用,EnumMap跟HashMap的使用差不多,只不過key要是枚舉類型 */ private static void testEnumMap() { // 1.演示定義EnumMap對象,EnumMap對象的構造函數需要參數傳入
  • Java 查找替換Excel數據
    使用工具工具:Free Spire.XLS for Java (免費版)註:可通過e-iceblue中文官網在Java產品板塊下載包,並解壓將lib文件夾下的jar文件導入java程序;或者通過maven倉庫下載導入。Jar導入效果:
  • Java 14發布了,不使用"class"也能定義類了?還順手要幹掉Lombok!
    那麼,Brian Goetz 大神提到的純數據載體到底指的是什麼呢。record Point(int x, int y) { } 神說要用record,於是就有了就像大神吐槽的那樣,我們通常需要編寫大量代碼才能使類變得有用。
  • 面試官:連Serializable都不知道是什麼,你這5年都幹些什麼了?
    張工是一名java程式設計師,工作5年了,一直從事java開發。最近到某網際網路公司面試,做了筆試題後,有一道筆試題是這樣子的:Serializable有什麼作用,張工沒有作答,面談時面試官又問了,張工回答不出個所以然。面試官:你都工作五年了,連序列化都不知道,你這5年都幹些什麼了?張工一臉的無助,不過確實不應該,類似Serializable序列化這樣的知識點,平時應該不會少用。
  • Java之throw關鍵字的簡單介紹
    告知方法調用者「傳遞的數組值是null」*/if(arr==null){throw new NullPointerException("傳遞的數組值是null");}String ele=arr[index];return ele;}}運行結果:Exception in thread "main" java.lang.NullPointerException
  • 問號臉為什麼 Java 中1000==1000 為 false而 100==100 為 true
    本文轉載自【微信公眾號:java進階架構師,ID:java_jiagoushi】經微信公眾號授權轉載,如需轉載與原文作者聯繫為什麼 Java 中「1000==1000」為false,而」100==100「為true?這是一個挺有意思的討論話題。
  • f檢驗 matlab專題及常見問題 - CSDN
    15.71985 15.91986 15.71987 16.71988 15.31989 16.11990 16.2MATLAB實現參考網上多個代碼可得https://www.ilovematlab.cn/thread-246993-1-1.htmlhttps://blog.csdn.net
  • 盤點:非智能java通用版軟體下載TOP5
    下面是國產手機下載排行榜排名前五的手機軟體,都是支持java的通用版軟體綠色無毒,歡迎下載。下面是國產手機下載排行榜排名前五的手機軟體,都是支持java的通用版軟體綠色無毒,歡迎下載。下面是國產手機下載排行榜排名前五的手機軟體,都是支持java的通用版軟體綠色無毒,歡迎下載。
  • Java 14 發布了,可以扔掉Lombok了?
    那麼,Brian Goetz 大神提到的純數據載體到底指的是什麼呢。他舉了一個簡單的例子:這裡面的Piont其實就是一個純數據載體,他表示一個"點"中包含x坐標和y坐標,並且只提供了構造函數,以及一些equals、hashCode等方法。
  • Go+Iris vs Java+SpringBoot 為您揭曉答案
    現在市面上的大廠:華為、阿里巴巴、騰訊、百度、拼多多、京東、字節跳動、小米、美團、360……已經沒有不用go語言的了……而且,不僅如此很多公司在重構自己之前的系統時,都不約而同地選擇了go語言作為主要技術棧,而沒有用在國內更成熟的java,比如B站、知乎、羅輯思維……這難免讓人困惑從生態上來講,java在國內的生態建設應該略勝go