原创 java中自定義String會怎樣?

爲了驗證java的雙親委派模型模型,小編我決定自己做個試驗。 包名和java自身String所在的java.lang包名不一致時的情況 首先,我們自定義一個包名不是java.lang的String(注意如果包名不是java.lang直接將

原创 爲什麼要重寫hashCode和equals方法【深入分析版】

 在回答這個問題前,我們先來看看Object類中的這兩個方法: public native int hashCode(); public boolean equals(Object obj) { return (th

原创 面試答案-java基礎

JAVA 基礎   1、JAVA 中的幾種基本數據類型是什麼,各自佔用多少字節。 答案:8位:Byte(字節型);  16位:short(短整型)、char(字符型);  32位:int(整型)、float(單精度型/浮點型);    6

原创 組合、聚合、繼承詳解

  有人學了繼承,認爲他是面向對象特點之一,就在所有能用到繼承的地方使用繼承,而不考慮究竟該不該使用,無疑,這是錯誤的。那麼,究竟該如何使用繼承呢? java中類與類之間的關係 大部分的初學者只知道java中兩個類之間可以是繼承與被繼

原创 面試題總結-問題總覽

面試題總結 目錄 面試題總結 JAVA 基礎   JVM 知識       開源框架知識 操作系統   多線程   TCP 與 HTTP 架構設計與分佈式     算法       數據庫知識       消息隊列       緩存  

原创 String面試總結

前端時間筆者去騰訊面試,面試官給的第一道題就是String各種操作的問題,雖然之前看過這些知識,當時筆者一時也沒想起來,好記性不如爛筆頭呀,這裏做下筆記,以防下次再問。 一、無‘+’操作符時的比較 //代碼1 String s1 =new

原创 Reactor詳解

reactor 是什麼 爲何要用,能解決什麼問題 如何用,更好的方式 其他事件處理模式 一、Reactor 是什麼 關於reactor 是什麼,我們先從wiki上看下: The reactor design patt

原创 Linux的五種IO模型

1)阻塞I/O(blocking I/O) 2)非阻塞I/O (nonblocking I/O) 3) I/O複用(select 和poll) (I/O multiplexing) 4)信號驅動I/O (signal driven I/O

原创 Java NIO詳解

也許很多朋友在學習NIO的時候都會感覺有點吃力,對裏面的很多概念都感覺不是那麼明朗。在進入Java NIO編程之前,我們今天先來討論一些比較基礎的知識:I/O模型。下面本文先從同步和異步的概念 說起,然後接着闡述了阻塞和非阻塞的區別,接着

原创 IO模型分析

基本概念說明 用戶空間與內核空間 現在操作系統都是採用虛擬存儲器,那麼對32位操作系統而言,它的尋址空間(虛擬存儲空間)爲4G(2的32次方)。操作系統的核心是內核,獨立於普通的應用程序,可以訪問受保護的內存空間,也有訪問底層硬件設備的所

原创 select、poll、epoll的 區別

處理IO的幾種方法 第一種方法就是最傳統的多進程併發模型 (每進來一個新的I/O流會分配一個新的進程管理。)第二種方法就是I/O多路複用 (單個線程,通過記錄跟蹤每個I/O流(sock)的狀態,來同時管理多個I/O流 。) 其實“I/O多

原创 鎖優化總結

避免死鎖 死鎖出現的四要素: 互斥條件:進程對於所分配到的資源具有排它性,即一個資源只能被一個進程佔用,直到被該進程釋放; 請求與保持條件:一個進程因請求被佔用資源而發生阻塞時,對已獲得的資源保持不放 不可中條件:任何一個資源在沒被該進程

原创 有界無界隊列

Java提供了4鍾線程池: newCachedThreadPool newFixedThreadPool newSingleThreadExecutor newScheduledThreadPool 你可以通過Executors來實例化

原创 線程池原理

在面向對象編程中,對象創建和銷燬是很費時間的,因爲創建一個對象要獲取內存資源或者其它更多資源。在Java中更是如此,虛擬機將試圖跟蹤每一個對象,以便能夠在對象銷燬後進行垃圾回收。所以提高服務程序效率的一個手段就是儘可能減少創建和銷燬對象的

原创 BigDecimal去掉多餘0

使用BigDecimal的stripTrailingZeros()就能去除掉多餘的0 比如10.12000就會變成10.12