原创 2021屆Java開發求職-------面試實戰之Vivo提前批

一.介紹 這個面試題目非常多,牛客網鏈接 我擦 但是 VIvo好像不招Java研發崗的 二.題目 Java基礎 Java異常瞭解嗎?說說平時遇到的異常?說出6種常見的java異常。寫程序遇到過哪些異常 運行時異常有哪些 運

原创 Java併發編程之JUC輔助類CountDownLatch------減小計數

一.場景引入 教師裏有很多學生,比如說有7個,其中一個是班長,他負責在全員離開後關閉大門,現在要實現一個程序,其中包括main線程在內有七個線程,main是班長。 需求是:班長要在所有人都離開教室之後才關閉大門,也就是說main

原创 面試官:JVM調優的常用基本配置參數有哪些?

平時工作用過的JVM常用基本配置參數有哪些 -Xms -Xmx -Xmn -Xms128m -Xmx4096m -Xss1024K -XX:MetaspaceSize=512m -XX:+PrintCommandLineFlags

原创 面試之手寫單例模式總結:懶漢式,餓漢式,雙重校驗

一.單例模式介紹 單例模式(Singleton Pattern)是 Java 中最簡單的設計模式之一。這種類型的設計模式屬於創建型模式,它提供了一種創建對象的最佳方式。 這種模式涉及到一個單一的類,該類負責創建自己的對象,同時確

原创 Netty基礎----NIO非阻塞網絡編程快速入門案例Server+Client demo

一.原理分析 NIO介紹看這裏 NIO 非阻塞 網絡編程相關的(Selector、SelectionKey、ServerScoketChannel和SocketChannel) 關係梳理圖 什麼是SelectionKey(

原创 Java併發編程之BlockingQueue阻塞隊列--------介紹,分類,源碼分析

一.簡介 以下摘自jdk1.8源碼: A {@link java.util.Queue} that additionally supports operations that wait for the queue to beco

原创 Java8新特性之常用的函數式接口----Function,Consumer,Predicate,Supplier

一.什麼是函數式接口 最近在開發過程中,發現許多Java8新特性的應用及其廣泛,很多代碼如果不瞭解這些知識是看不懂的,所以打算總結一下。 函數式接口(Functional Interface)就是一個有且僅有一個抽象方法,但是

原创 Java併發編程之JUC輔助類Semaphore------信號量 一個例子看懂

一.場景引入 現在有6個車,要搶佔三個車位,佔用車位幾秒後,離開車位 二.代碼示例 public static void main(String[] args) { Semaphore semaphore =

原创 如何在代碼中優雅地操縱日期-----Java 8 新增LocalDate使用

一.背景 作爲一個寫業務的Java程序員,往往需要處理和日期相關的代碼,比如獲取當天最早和最晚時間,比如獲取前三天時間,等等 之前都是用Date類,往往需要寫N多行代碼來進行轉換,還需要使用SimpleDateFormat等來進

原创 Java併發編程之ThreadPool線程池基礎部分-----什麼是線程池,線程池架構,怎麼使用

一.爲什麼要用線程池 線程池是一種多線程處理形式。 線程池做的工作只要是控制運行的線程數量,處理過程中將任務放入隊列,然後在線程創建後啓動這些任務,如果線程數量超過了最大數量,超出數量的線程排隊等候,等其他線程執行完畢,再從隊列中

原创 什麼是ELK-----開源實時日誌分析平臺以及logstash介紹

爲什麼用到ELK: 一般我們需要進行日誌分析場景:直接在日誌文件中 grep、awk 就可以獲得自己想要的信息。但在規模較大的場景中,此方法效率低下,面臨問題包括日誌量太大如何歸檔、文本搜索太慢怎麼辦、如何多維度查詢。需要集中化的

原创 算法套路學習之回溯算法-----子集,排列,組合等問題如何解決

來源:https://www.cnblogs.com/labuladong/p/12320463.html 我是看這個大佬的博客學習到的,下面我自己總結一下,並且記錄一下遇到的使用回溯的題目,驗證一下這個套路的可行性。一直比較討厭

原创 2021屆Java開發求職-------面試實戰之百度實習

介紹 轉自牛客網: 1. 有看過HashMap源碼嗎? hashmap還是比較常見,目前看到的每個面經都考這個 2. JDK1.7中HashMap的put()方法全過程。 注意hash值相等的話形成鏈表是用頭插法插入的 3. JD

原创 深入理解Java多線程CAS比較並交換的底層原理

一.多線程環境下的自增操作 我們都知道在多線程情況下 i++ 的自增操作不是原子性的,因爲它分爲三個步驟: 取得i的值 將i的值+1 將新值寫回內存 所以我們會使用JUC包下的AtomicInteger類來進行int的原子操作

原创 Java OOM 內存溢出錯誤介紹和幾種常見異常(附程序實例)

一.Java OOM介紹 OOM 全稱“Out Of Memory”,即“內存用完了”,來源於Java.lang包下的一個類:OutOfMemoryError : OOM屬於error。異常Exception和錯誤Error的