原创 LeetCode前置課-2-八大排序算法

1、冒泡 //,冒泡 public static void sortMaopao(){ int[] arr = {3,9,-1,10,20,1}; System.out.println("排序前:

原创 LeetCode前置課-3-查找算法

1、二分查找 //二分查找,num是要查找的值 public static int binarySelect(int[] arr, int num ,int left,int right){ if(lef

原创 LeetCode前置課-4-哈希表、樹、圖

1、哈希表 2、樹 public class TreeNode { private int no; private TreeNode leftNode; private TreeNode rightNode

原创 LeetCode前置課-5-程序員常用10種算法

import java.util.*; /** * Created by qililong on 2020/7/6. * 程序員常用的十種算法 */ public class ShiSuanFa { //1、非

原创 LeetCode前置課-1-數組,鏈表,隊列,棧

1、數組 二維數組變稀疏數組: //1、數組-》稀疏數組 public static void xishuArray() { int array[][] = new int[11][11];

原创 Java面試進階:jvm內存區域的劃分

1)程序計數器(PC,Program Counter Register)。在 JVM 規範中,每個線程都有它自己的程序計數器,並且任何時間一個線程都只有一個方法在執行,也就是所謂的當前方法。程序計數器會存儲當前線程正在執行的 Java

原创 Java面試進階:Java併發類庫提供的線程池有哪幾種? 分別有什麼特點?

Executors 目前提供了 5 種不同的線程池創建配置: newCachedThreadPool(),它是一種用來處理大量短時間工作任務的線程池,具有幾個鮮明特點:它會試圖緩存線程並重用,當無緩存線程可用時,就會創建新的工作線程;如果

原创 Java面試進階:併發包中的ConcurrentLinkedQueue和LinkedBlockingQueue有什麼區別?

答: Concurrent 類型基於 lock-free,基於CAS的無鎖技術,在常見的多線程訪問場景,一般可以提供較高吞吐量。 而 LinkedBlockingQueue 內部則是基於鎖,並提供了 BlockingQueue 的等待性方

原创 Java面試擴展:對比Java標準NIO類庫,你知道Netty是如何實現更高性能的嗎

答: Netty 在基礎的 NIO 等類庫之上進行了很多改進,例如: 1)更加優雅的 Reactor 模式實現、靈活的線程模型、利用 EventLoop 等創新性的機制,可以非常高效地管理成百上千的 Channel。 2)充分利用了 Ja

原创 java面試進階:JVM優化Java代碼時都做了什麼?

JVM 在對代碼執行的優化可分爲運行時(runtime)優化和即時編譯器(JIT)優化。運行時優化主要是解釋執行和動態編譯通用的一些機制,比如說鎖機制(如偏斜鎖)、內存分配機制(如 TLAB)等。除此之外,還有一些專門用於優化解釋執行效率

原创 Java面試進階:Java併發包提供了哪些併發工具類?

java.util.concurrent 及其子包,集中了 Java 併發的各種基礎工具類,具體主要包括幾個方面: 1)提供了比 synchronized 更加高級的各種同步結構,包括 CountDownLatch、CyclicBarri

原创 Java面試進階:類加載和雙親委派模型

類加載過程: 加載、鏈接、初始化 加載階段(Loading),它是 Java 將字節碼數據從不同的數據源讀取到 JVM 中,並映射爲 JVM 認可的數據結構(Class 對象) 鏈接(Linking),這是核心的步驟,       驗證(

原创 java面試進階26:如何監控和診斷JVM堆內和堆外內存使用?

堆內空間: 堆內分析工具:圖形化工具,如 JConsole、VisualVM(jmc,jconsole在linux上用不了的問題,其實1可以遠程連接,2可以使用xshell);命令行工具進行運行時查詢,如 jstat 和 jmap 等工具

原创 Java面試進階27:垃圾收集器有哪些

Serial GC,它是最古老的垃圾收集器,“Serial”體現在其收集工作是單線程的,並且在進行垃圾收集過程中,會進入臭名昭著的“Stop-The-World”狀態。也意味簡單,所以一直是 Client 模式下 JVM 的默認選項。從年

原创 1、Springboot 入門-配置和原理

**一、**Spring Boot 入門 <!-- 這個插件,可以將應用打包成一個可執行的jar包;--> <artifactId>spring-boot-maven-plugin</artifactId> 將這個應用打成j