原创 Java性能調優工具

Java性能調優工具 1、JDK命令行工具                                                                        1.1、jps命令       jps用於列出Jav

原创 【Mysql高級】談談你對存儲過程的瞭解?

一、概述 經過事先編譯存儲在數據庫的一段SQL語句的集合,調用存儲過程和函數可以簡化應用開發人員的很多工作。減少數據在數據庫和應用服務器之間的傳輸,從而提高了數據處理效率。 存儲過程和函數的區別:函數有返回值,存儲過程沒有。 二、存儲過程

原创 面試必問系列:8、重載和重寫的區別?相同參數不同返回值能重載嗎?

思路: 重載  —— 類多態 —— 一種什麼樣的手段? —— 特點             重寫  —— 繼承多態 —— 特點   重載    (1)一個類中多態性的表現。調用方法時通過傳遞給它們的不同參數個數和參數類型來決定具體使用

原创 【高頻面試題】java.util.concurrentModificationException解決方案?

一、故障原因 java.util.concurrentModificationException ArrayList在高併發情況下的併發修改異常 二、導致原因 併發爭搶修改導致 三、解決方案 1、new Vector() 2、Collec

原创 Java類鎖和對象鎖實踐

  類鎖和對象鎖是否會衝突?對象鎖和私有鎖是否會衝突?通過實例來進行說明。 一、相關約定 爲了明確後文的描述,先對本文涉及到的鎖的相關定義作如下約定: 1. 類鎖:在代碼中的方法上加了static和synchronized的鎖,或者syn

原创 【Netty】二、IO模型

1、Java IO模型 BIO  同步並阻塞  傳統阻塞型   一個連接對應一個線程 當客戶端請求的時候服務器端會啓動一個線程處理 缺點:客戶端很多的時候,很產生大量線程,產生不必要開銷。 NIO  同步非阻塞   一個線程可以處理多個

原创 【Hadoop】Combiner的本質是迷你的reducer,不能隨意使用,典型的使用場景是詞頻統計

問題提出: 衆所周知,Hadoop框架使用Mapper將數據處理成一個<key,value>鍵值對,再網絡節點間對其進行整理(shuffle),然後使用Reducer處理數據並進行最終輸出。    在上述過程中,我們看到至少兩個性能瓶頸:

原创 【Springboot】日誌框架的分類與選擇

一、框架選擇 SLF4j和logback/log4j/log4j2 皆出自同一人之手,logback是log4j的升級版   二、SLF4j的適配 三、遺留問題   四、Springboot的應用

原创 【高頻面試題】 介紹一下你對NIO的理解

一、NIO原理 1、緩衝區 緩衝區其實就是一個數組,讀取和寫入都會用到緩衝器。最常用的就是ByteBuffer 2、通道 通道傳輸的數據是基於緩衝區的,不能直接對通道就行寫或讀的操作。通道和流的不同之處通道是雙向的。 當讀或寫的事件發生時

原创 【Netty】一、Nety的介紹

Netty的概念 Netty由JBOSS提供的Java開源框架,現爲Github開源框架。 Netty是一個異步的、基於事件驅動程序的網絡應用框架。 Netty針對TCP/IP協議,通過JDK io/網絡、對NIO進行了封裝和優化 體系簡

原创 面試必問系列:4、String、StringBuffer和StringBuilder的區別

思路: 共同點、不同點、運行效率 ,線程安全,使用場景 1、String、StringBuffer、StringBuilder類都是final修飾的,不可被繼承。 2、String是不可變的,底層是final類型修飾的數組,拼接時會創建新

原创 面試必問系列:7、你所知道的Object()方法有哪些?

Object默認無參構造方法 clone() 創建並返回此對象的的一個副本。  native方法 equals()判斷某個對象是否與此對象相等。 finalize()當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法

原创 【Netty】談談你對BIO的理解?

一、簡介 BIO 同步阻塞IO  一個連接一個線程,可以通過線程池機制來改善 適用於連接數目比較小且固定的架構。 二、BIO編程流程 (1)服務端啓動一個serverSocket (2)客戶端啓動Socket對服務器進行通信,默認情況下服

原创 【Mysql高級】 Mysql5.6 Linux安裝

一、MySQL linux 安裝 1、查找原始mysql是否存在 rpm -qa| grep -i mysql 2.刪除 rpm -e mysql-**** --nodeps 3、上傳並解壓 tar -xvf  mysql -C /Mys