原创 多線程-線程之間的通信

自我總結核心內容:線程之間的通信是通過具體對象來實現信息的交互的。而對象有wait和notafy方法,當一個線程調用了一個對象的wait方法,那麼這個線程就處於暫停狀態,如果另外一個線程調用了第一個線程對象的notify,那麼含義就是說,

原创 【集合】comparable接口與comparator

作用:這兩個接口可以實現對類對象的集合進行排序   comparable接口: 一個類實現此接口,並實現其中的接口方法,那麼對這個類對象的集合進行排序時候,就可以把此comparable作爲默認的比較方法,進行自定義的升序或者降序集合排列

原创 【集合】JDK源碼類圖

  集合類圖

原创 java 內存分配 詳解

Java 內存分配 Java 程序運行時的內存結構分成:方法區、棧內存、堆內存、本地方法棧幾種。棧和堆都是數據結構的知識,如果不清楚,沒有關係,就當成一個不同的名字就好了,下面的講解不需要用到它們具體的知識。1:方法區方法區存放裝載的類數

原创 重構的一些原則

第一:儘量在方法裏面避免臨時變量的相互傳遞; 第二:單一職責原則,儘量把一個對象變化,引起的一系列變化,放到一個對象裏面處理,如果發現一個對象裏面的屬性變化,而需要去更改其他對象裏面額一些操作,說明需要重構,表明其他類裏面的東西不屬於他的

原创 java 多線程基本知識

多線程voliation應用。 對於多線程併發操作。每個線程都有自己獨立的工作內存空間,對於volication修飾的變量。有兩個作用。 第一:保證

原创 java中volatile關鍵字的含義

在java線程併發處理中,有一個關鍵字volatile的使用目前存在很大的混淆,以爲使用這個關鍵字,在進行多線程併發處理的時候就可以萬事大吉。 Java語言是支持多線程的,爲了解決線程併發的問題,在語言內部引入了 同步塊 和 vo

原创 多線程 - 死鎖

java 死鎖的實現原理一句話:對象不能被其他線程來訪問 一步步分析來,對象要想不被其他線程訪問,就是給對象加鎖,這樣其他線程就不可以訪問了,但是怎

原创 java 內存分佈

首先明白,java創建一個對象,就是分配一塊內存區域,然後把這個對象的一些具體信息,存放在這個區域裏面。  虛擬機會把計算機中的許多內存管理起來。相當於一個大管家,不同的區域也有不同的應用。因此,也就構成了java的內存分配區域。 第一種

原创 多線程切換以及線程進程之間關係

進程是資源擁有的單位。線程是調度的最小單位。又稱爲輕進程。他只擁有進程中一些資源,這次資源對於這個線程來說是必不可少的。而所有的線程共享進程的資源。

原创 java語言的線程安全volatile用法

Java 語言中的 volatile 變量可以被看作是一種 “程度較輕的 synchronized”;與 synchronized 塊相比,volatile 變量所需的編碼較少,並且運行時開銷也較少,但是它所能實現的功能也僅是 sync

原创 【IO】【NIO與傳統IO的區別】

原文:http://blog.csdn.net/zhouhl_cn/article/details/6568119     傳統的socket IO中,需要爲每個連接創建一個線程,當併發的連接數量非常巨大時,線程所佔用的棧內存和CPU線程

原创 【IO】【NIO】【詳細介紹】

    最初NIO剛出來的相當一段時間裏,我一直以爲NIO是None-Blocking IO的意思,直到被同事糾正我的錯誤:原來是NewIO。NewIO裏用的最多的就是異步Socket,其他的東西不是主要的。這裏我主要討論Socket相關

原创 【IO】【Nio和IO內存交互圖】

d:文件描述符的意思   需要了解幾個概念:   文件描述符:也就是圖上的fd,暫且可以理解爲一個文件描述符對應一個socket,例如同一主機多個客戶端訪問同一個端口號的服務端,由於他們都來於同一個ip地址,也就是tcp的數據包,來自同

原创 【IO】【NIO】【Java NIO原理 圖文分析及代碼實現】

一.java NIO 和阻塞I/O的區別    1. 阻塞I/O通信模型    假如現在你對阻塞I/O已有了一定了解,我們知道阻塞I/O在調用InputStream.read()方法時是阻塞的,它會一直等到數據到來時(或超時)纔會返回;同