Time of Update: 2018-12-04
關於檢查異常和非檢查異常的關係不再多說了。想說一下 檢查異常時extends Exception 非檢查異常時extends RuntimeException 當自己定義自己的異常類的時候 如果選擇了extends Exception ,當拋出自己的異常的時候要多寫try 語句塊,代碼不好看。如果選擇extends RuntimeException的時候,代碼簡潔,但是如果在mvc架構
Time of Update: 2018-12-04
今天去逛javaworld.com.tw看到有人在問線程同步的問題,最近對多線程高度興趣,寫了不少類似的程式,所以線程同步也是肯定要用的到的,synchronized加在函數名稱中間,我記得是對對象的同步,也就是說多線程如果想保持同步,必須保證這些線程用的是一個對象。看到過synchronized寫到函數裡面的,但是沒得感受,今天測試了一把,把synchronized寫到函數內部的,就不用保證一個對象了,所有的N個不同對象都可以。這個是代碼看下吧。先來個synchronized寫到函數內部的/*
Time of Update: 2018-12-04
2011-1-6 java遍曆map所有元素//JDK1.5後Map map = getMap(); for(Object obj : map.keySet()) { Object key = obj; Object value = map.get(obj);}//JDK1.5之前Map map = getMap();Iterator iter = map.entrySet().iterator(); while(iter.hasNext()) {
Time of Update: 2018-12-04
兩段代碼,結果的差異,請結合代碼給圖解下記憶體和執行過程。 萬分感謝! public class PassAddr { public static void main(String[] args) { String s=new String("old"); //1 method(s); //3 System.out.println(s); } static
Time of Update: 2018-12-04
package net.nie.test;import java.util.HashMap;import java.util.Iterator;import java.util.Map;public class HashMapTest { private static Map<Integer, String> map=new HashMap<Integer,String>(); /** 1.HashMap 類映射不保證順序;某些映射可明確保證其順序:
Time of Update: 2018-12-04
通過include可以防止頁面代碼冗餘和重複,並且規範布局,只需要一個包含語句,就可以實現代碼重用,提高效率,具體如下:1> include指令:<%@ include
Time of Update: 2018-12-04
平時寫IO相關代碼機會挺少的,但卻都知道使用BufferedXXXX來讀寫效率高,沒想到裡面還有這麼多陷阱,這兩天突然被其中一個陷阱折騰一下:讀一個檔案,然後寫到另外一個檔案,前後兩個檔案居然不一樣? 解決這個問題之後,總結了幾個注意點。注意點一:Reader/Writer讀寫二進位檔案是有問題的:[java] view plaincopyprint?public void copyFile1() { File srcFile = new File("E://atest/
Time of Update: 2018-12-04
如何調在CLI中使用java tool(JDK中的java命令)調用一個打包在jar中的類,我想大多數人都能給出籠統的方案:java -classpath xxxxx com.test.classA這個答案只能說太籠統,再追問一句,如果這個類還依賴若干jar包,並且這些jar包,包括classA所在的jar包都放在路徑/root/lib/ 下,classpath內容應該是什嗎?我給我的答案是 -classpath=/root/lib,
Time of Update: 2018-12-04
下面的代碼在cmd模式下通過javac命令編譯,java命令運行Hello world可以正常輸出。public class Test { static{ System.out.println("Hello World!"); System.exit(0); }}在網上看見了這段沒有main方法也可以執行的代碼的時候,為了弄清楚java中代碼的運行先後順序原因,寫了如下兩段測試代碼。public class TestStatic {/*
Time of Update: 2018-12-04
記憶體回收,是java同c++的一個重大區別,也是編寫java程式不用指標的一個重要保證。在c++中,當一個對象不再有價值的時候,我們需要手動的清除這個對象,以釋放空間。在java中,這個工作由記憶體回收行程自動完成,程式員不必考慮難纏的對象回收問題。一、記憶體回收的好處: 記憶體回收使程式員從釋放記憶體的重擔中解脫,可以把更多的精力放在編程和邏輯上,提高了效率。 記憶體回收保證了程式的正常運行,不會出現如c++中的因為對象忘記釋放而產生的記憶體泄露等諸多問題。二、記憶體回收的基本方法:
Time of Update: 2018-12-04
一、基礎類1、《Thinking in java》,入門第一位是建立正確的概念。2、《Core Java》,我沒系統讀過,這本書更貼近實踐,更多API的介紹,同樣,更新也更頻繁。二、進階類1、《Effective Java》,在熟悉文法、API之後,你需要知道最佳實務和陷阱,沒有比這本更好的。2、《Java Puzzlers》,通過謎題介紹一些你可能沒有注意到的邊角料,作為趣味讀物也不錯3、《深入Java虛擬機器》,翻譯一般,但不可不讀,最好結合最新的JVM規範來讀。三、特定領域1、網路編程:(
Time of Update: 2018-12-04
JDK1.5增加的新特性裡面有一個就是泛型。對於泛型的評價,褒貶不一,廢話不多說,先來看看他的原理。泛型是提供給javac編譯器使用的,可以限定集合中的輸入類型,讓編譯器攔截來源程式中的非法輸入,編譯器編譯帶類型說明的集合時會去掉類型資訊,對於參數化得泛型型別,getClass()方法的傳回值和原始類型完全一樣。對於下面這個來源程式: public class Oliver { public static void main(String[] args) {
Time of Update: 2018-12-04
package com.qiaole.conn;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException;public class DB2 { public static void main(String[] args) { try
Time of Update: 2018-12-04
文法糖(Syntactic Sugar),也叫糖衣文法,是英國電腦科學家彼得·約翰·蘭達(Peter J. Landin)發明的一個術語。指的是,在電腦語言中添加某種文法,這種文法能使程式員更方便的使用語言開發程式,同時增強程式碼的可讀性,避免出錯的機會;但是這種文法對語言的功能並沒有影響。Java中的泛型,變長參數,自動拆箱/裝箱,條件編譯等都是,下面做簡單的介紹和分析。泛型
Time of Update: 2018-12-04
DK1.5引入了新的類型——枚舉。在Java中它雖然算個“小”功能,卻給我的開發帶來了“大”方便。用法一:常量 在JDK1.5之前,我們定義常量都是:public static fianl ....。現在好了,有了枚舉,可以把相關的常量分組到一個枚舉類型裡,而且枚舉提供了比常量更多的方法。public enum Color { RED, GREEN, BLANK, YELLOW}用法二:switch
Time of Update: 2018-12-04
有時候吧,一個項目不是由單一的某種語言構成的,所以避免不了語言與語言之間的協作關係。比如:這時你的項目部分是用JAVA編寫的,你需要對資料進行加密與解密的操作,一般來說你會用JAVA實現一個密碼編譯演算法。不過呢,現在你手頭上有個非JAVA的組件可以用,比如DLL,考慮到效率上的問題你使用這個DLL更好些。這時候你就得使用JNI(JAVA NATIVE INTERFACE)—JAVA 原生介面。 這樣我們從一個JAVA調用一個存在的DLL例子入手吧。
Time of Update: 2018-12-04
Java的資料轉換1 字串轉換成資料 字串轉換成整數: String MyNumber="1234"; int MyInt =Integer.parseInt(MyNumber); 字串轉換成byte, short, int,float, double, long等資料類型,可 以分別參考Byte, Short,Integer, Float, Double, Long類的parseXXX 方法。 2 資料轉換成字串 整數轉換成字串: int MyInt = 1234; String
Time of Update: 2018-12-04
java中的Vector類 java.lang.Object | +----java.util.Vectorpublic class Vector extends Object implements Cloneable, Serializable 下列類的父類: Stack Vector 類實現了可動態擴充的對象數組。類似數組,它包含的元素可通過數組下標來訪問。但是,在 Vector 建立之後。Vector 可根據增加和刪除元素的需要來擴大或縮小。 每個向量可通過維護 capacity
Time of Update: 2018-12-04
在這裡看到的:http://lanvis.blog.163.com/blog/static/26982162009798422547/1 wait方法: 該方法屬於Object的方法,wait方法的作用是使得當前調用wait方法所在部分(代碼塊)的線程停止執行,並釋放當前獲得的調用wait所在的代碼塊的鎖,並在其他線程調用notify或者notifyAll方法時恢複到競爭鎖狀態(一旦獲得鎖就恢複執行)。 調用wait方法需要注意幾點:
Time of Update: 2018-12-04
查錯:11 1. public class WhatHappens {2. public static void main(String[] args) {3. StringBuffer[] stringBuffers = new StringBuffer[10];4.