Time of Update: 2017-01-18
Interfaces
Time of Update: 2018-08-06
類型萬用字元類型萬用字元一般是使用?代替具體的類型實參(此處是類型實參,而不是類型形參)。當操作類型時不需要使用類型的具體功能時,只使用Object類中的功能,那麼可以用 ? 萬用字元來表未知類型。例如 List<?> 在邏輯上是List<String>、List<Integer> 等所有List<具體類型實參>的父類。public class GenericTest { public static void main(String[
Time of Update: 2018-08-06
上面的一篇提到過,為什麼Java泛型為什麼用對象而不是原始類型?但是對Integer和int這兩個的區別還是不怎麼懂,就繼續百度了一下,找到了一篇大佬的文章,感覺還是不錯的,就轉載分享一下。Integer和int的區別Integer是int提供的封裝類,而int是Java的基礎資料型別 (Elementary Data Type); Integer預設值是null,而int預設值是0; 聲明為Integer的變數需要執行個體化,而聲明為int的變數不需要執行個體化;
Time of Update: 2018-08-06
Java是一門物件導向程式設計語言,不僅吸收了C++語言的各種優點,還摒棄了C++裡難以理解的多繼承、指標等概念,因此Java語言具有功能強大和簡單易用兩個特徵。Java語言作為靜態物件導向程式設計語言的代表,極好地實現了物件導向理論,允許程式員以優雅的思維方式進行複雜的編程 。 Java具有簡單性、物件導向、分布式、健壯性、安全性、平台獨立與可移植性、多線程、動態性等特點
Time of Update: 2018-08-06
作為一名JAVA的程式員,無論初學者也好大神也好,學生管理系統是個很好例子,初學者用數組、list等來寫簡單的學生管理系統,大神則是用swing+資料庫做有介面的學生管理系統,廢話不多說,今天我就用List來實現學生管理系統。學生管理系統主要針對學生,我們先把學生對象寫出來。package TestProject;public class student { String name; String age; public String getName() {
Time of Update: 2018-08-06
首先告訴你網上說的5種狀態是誤導,java中的線程實際上有6種狀態。5種狀態的說法其實是早期進程的狀態。早期進程的狀態:這裡所謂“進程狀態”指早期的那種“單線程進程”的狀態。 對於現在普遍的“多線程進程”,顯然,談論“進程狀態”已經沒有意義,應該談論“進程下某個線程的狀態”或者直接說“線程狀態”。不過有時還是會把“進程狀態”和“線程狀態”混著去說。有些系統把線程叫成“輕量級進程”(light-weight
Time of Update: 2018-08-06
死結分析1、死結的產生有以下代碼,類比的是兩個賬戶之間的轉賬情況void transfer(Account from,Account to,int money){ from.setAmount(from.getAmount()-money); to.setAmount(to.getAmount()+money);}單線程下,這段代碼肯定沒問題的,但在多線程下存在問題現在對其加鎖,加鎖後的代碼如下void transfer(Account from,Account to,int
Time of Update: 2018-08-06
深入理解類載入機制說明:開始本文之前,我想先說一下寫這些文章的目的和好處,主要是可以使自己對學習的東西做一個總結,有時候花費很長的時間學了一些東西,理順了一些思路,可是過幾天再回想這些東西的時候還會變得模糊,所有又要花費時間找相關資料,翻看資料。而現在自己做這樣一個總結,不但可以對新學習的知識做一個鞏固加深,還有就是即使將來回頭翻看的時候也有一個集中的資料和大致的思路,可以快速恢複記憶;以前總是手寫記錄在筆記本上或者看書的時候直接記錄,但是這在自己回看的時候很難尋找,也很容易丟失,這也是我自己寫
Time of Update: 2018-08-06
本文介紹了java常用類之Random類的用法,下文是實戰案例,沒有做額外的文字說明,需要解釋的我都寫在代碼注釋裡了。import java.util.Random;public class random1 { public static void main(String[] args){ //兩種建構函式 Random r1=new Random(); //Random r2=new Random(120); 使用單個 long
Time of Update: 2018-08-06
Java 之 23 種設計模式解析一、設計模式概述總體來說設計模式分為三大類:建立型模式,共五種:Factory 方法模式、抽象原廠模式、單例模式、建造者模式、原型模式。結構型模式,共七種:適配器模式、裝飾器模式、代理模式、面板模式、橋接模式、組合模式、享元模式。行為型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭代子模式、責任鏈模式、命令模式、備忘錄模式、狀態模式、訪問者模式、中介者模式、解譯器模式。具體如下:其中建立型有:一、Singleton,單例模式:保證一個類只有一個執行個體,
Time of Update: 2018-08-06
很多初學者可能搞不清static方法的用法,這裡我說下自己的理解:static方法的調用不需要依靠創造類對象由於不需要建立對象,所以static方法中不使用this關鍵字靜態方法中只能調用靜態成員變數和靜態方法,因為普通方法需要通過建立對象來調用,這一點與靜態方法衝突普通方法中可以調用靜態成員變數和靜態方法,可以直接通過 類名.靜態方法 的形式進行調用靜態代碼塊,在類載入的時候就執行且只執行一次道理講完了,看個實際的例子:class Person{ static{
Time of Update: 2018-08-04
1、 流的繼承關係,以及位元組流和字元流。2、 節點流FileOutputStream和FileInputStream和處理流BufferedInputStream和BufferedOutputStream。以及對應的FileOutputWriter,FileInputReader,BufferedInputReader,BufferedOutputWriter。3、
Time of Update: 2018-08-09
1 File類 File(檔案)類這個名字有一定的誤導性;我們可能會認為它指代的是檔案,實際上卻並非如此。它既能代表一個特定檔案的名稱,又能代表一個目錄下的一組檔案的名稱。實際上,FilePath(檔案路徑)對這個類來說是更好的名字。 如果它指的是一個檔案集,我們就可以對此集合調用list()方法,這個方法會返回一個字串數組。2 輸入和輸出(Input an output) 程式設計語言的I/O類庫常使用流這個抽象概念,它代表任何有能力產出資料的資料來源對象或者是有能力接收資料的接收對象。
Time of Update: 2018-08-09
一個簡單的動態數組實現基於數組實現 添加10w的容量 在刪除 所有 容量 平均是 0.4秒 這個效率是可觀的 下面來一起看看代碼package com.array;import java.util.List;import java.util.Random;/** * * @author XiaoTian * @date 2018-08-08 *///基於動態數組的實現 E 是泛型//借用了一下 Java中的ArrayList的代碼//研究源碼也是一種樂趣//還能讓我們技術有所提高public
Time of Update: 2018-08-08
摘要:在Java中,一個對象在可以被使用之前必須要被正確地初始化,這一點是Java規範規定的。在執行個體化一個對象時,JVM首先會檢查相互關聯類型是否已經載入並初始化,如果沒有,則JVM立即進行載入並調用類構造器完成類的初始化。在類初始化過程中或初始化完畢後,根據具體情況才會去對類進行執行個體化。本文試圖對JVM執行類初始化和執行個體化的過程做一個詳細深入地介紹,以便從Java虛擬機器的角度清晰解剖一個Java對象的建立過程。一.Java對象建立時機我們知道,一個對象在可以被使用之前必須要被正確
Time of Update: 2018-08-08
總結:線程池的特點是,線上程的數量=corePoolSize後,僅任務隊列滿了之後,才會從任務隊列中取出一個任務,然後構造一個新的線程,迴圈往複直到線程數量達到maximumPoolSize執行拒絕策略。線程池-intsmaze線程池的思想是:在系統中開闢一塊地區,其中存放一些待命的線程,這個地區被稱為線程池。如果有需要執行的任務,則從線程池中借一個待命的線程來執行指定的任務,到任務結束可以再將所借線程歸還。這樣就避免了大量重複建立線程對象,浪費CPU,記憶體資源。自訂線程池-intsmaze如
Time of Update: 2018-08-08
今天在看hadoop源碼時,想想自己最近在做的那個系統,發現很多異常處理的方式不對,還是按照傳統的異常處理方式(即:採用傳回值來標識程式出現的異常情況)。而hadoop中很多方法的聲明是有異常拋出的,而我的系統中的很多方法的聲明都沒有拋出異常。只是判斷了異常情況,並輸出了錯誤提示,但是並沒有拋出異常。org.apache.hadoop.hdfs.protocol包下的Block類的readFields()方法:public void readFields(DataInput in)
Time of Update: 2018-08-08
Java集合大致分為Set、List、Queue、Map四個體系 其中Set代表無序、不可重複的集合;List代表有序、重複集合;Map代表具有映射關係的集合;Queue是隊列的實現。集合和數組不一樣,數組元素既可以是基本類型的值,也可以是對象(實際上儲存的是對象的引用變數),集合裡面只能儲存對象(實際上只是儲存對象的引用變數)。Java集合中有兩個派生的 介面:Collection 和 Map Collection集合體系的繼承樹:Map集合體系的繼承樹: 下面分別講述 Set集合:
Time of Update: 2018-08-08
當java程式首次通過下面6中方式來使用某個類或介面時,系統就會初始化該類或介面。 (1)建立類的執行個體。為某個類建立執行個體的方式包括:使用new操作符來建立執行個體,通過反射來建立執行個體,通過還原序列化的方式來建立執行個體。 (2)調用某個類的類方法(靜態方法)。 (3)訪問某個類變數或為某個類變數。或為該變數賦值
Time of Update: 2018-12-07
原文出自 http://www.cnblogs.com/ggjucheng/archive/2012/12/16/2820839.html英文出自 http://docs.oracle.com/javase/tutorial/java/nutsandbolts/switch.html不像if-then和if-then-else語句,switch語句可以有多個可能的執行路徑。switch工作于于byte,short, char,