Time of Update: 2018-12-05
Java把記憶體劃分成兩種:一種是棧記憶體,一種是堆記憶體。 在函數中定義的一些基本類型的變數和對象的引用變數都在函數的棧記憶體中分配。 當在一段代碼塊定義一個變數時,Java就在棧中為這個變數分配記憶體空間,當超過變數的範圍後,Java會自動釋放掉為該變數所分配的記憶體空間,該記憶體空間可以立即被另作他用。 堆記憶體用來存放由new建立的對象和數組。 在堆中分配的記憶體,由Java虛擬機器的自動記憶體回收行程來管理。
Time of Update: 2018-12-05
這篇文章從網上找到的,作者是誰不詳,因為到處都是轉帖。看了之後,解開了我對synchronized的一些疑問,同時也驗證了我之前的理解是正確的,記錄下來。 在java編程思想中對synchronized的一點解釋:1、synchronized關鍵字的範圍有二種: 1)是某個對象執行個體內,synchronized
Time of Update: 2018-12-05
Queue介面: 繼承自Collection介面 FIFO常用方法: offer() 將元素插入隊尾,越界檢查 peek() 擷取隊頭元素,非空檢查 poll() 擷取並刪除隊頭元素,非空檢查 LinkedList: LinkedList實現了Deque介面(Double Ended Queue,雙端隊列),而Deque是Queue的子介面常用方法: addFirst() 插入隊頭 addLast() 插入隊尾 getFirst()
Time of Update: 2018-12-05
package lq.test;import java.io.*;import java.util.*;//*********建立型模式***************//factory method 1//1具體的構造演算法,和2構造出的具體產品由子類實現interface Product {}//或者我也提供一個工廠的介面,由這個抽象類別來繼承它abstract class Factory {abstract public Product
Time of Update: 2018-12-05
Java中文問題一直困擾著很多初學者,如果瞭解了Java系統的中文問題原理,我們就可以對中文問題能夠採取根本的解決之道。 最古老的解決方案是使用String的位元組碼轉換,這種方案問題是不方便,我們需要破壞對象封裝性,進行位元組碼轉換。 還有一種方式是對J2EE容器進行編碼設定,如果J2EE應用系統脫離該容器,則會發生亂碼,而且指定容器配置不符合J2EE應用和容器分離的原則。
Time of Update: 2018-12-05
如何學習java(一)最近論壇上看到好幾個朋友都在問,如何學習 Java的問題,“我已經學習了J2SE,怎麼樣才能轉向J2EE?”,“我看完了Thinking in Java, 可以學習J2EE了麼?”。於是就有了寫這篇文章的想法,希望能協助初學者少走一些彎路。也算是對自己幾年來學習Java的一個總結吧。 在開始之前有必要再討論一下J2ME,J2SE,J2EE這些概念。J2ME,The Micro Edition of the Java 2
Time of Update: 2018-12-05
串連工廠,實現了DataSource介面 package skydev.modules.data;import java.sql.*;import javax.sql.DataSource;import java.io.PrintWriter;public class ConnectionFactory implements DataSource {private String userName;private String password;private String driverName;
Time of Update: 2018-12-05
前端時間要把一個signjar的類移到android中,來給apk檔案簽名,這樣就可以在android系統中產生apk檔案。windows下的JDK中的signjar的類使用的是sun.security包,而android提供的加密相關的包是bouncycastle,加密相關的知識短時間內學不了,最快的辦法還是把案頭環境下sun.security裡面的包移植到android中使用。
Time of Update: 2018-12-05
錯誤資訊為:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userService' defined in file [F:\eclipse\ec_wp\SpringProgramming0300\bin\com\spring\service\UserService.class]: Initialization of bean failed; nested
Time of Update: 2018-12-05
大家都知道,String對象是不可變的,不可變性會帶來效率問題。為String對象重載“+”操作符時,都會自動產生一個新的String對象。也有人說,String在上述的問題中已經會自動引入StringBuilder來解決效率問題。為此,我在《Java編程思想》中找到了答案。第一個小例子:package com.linc.TestString;public class TestString {public static void main(String[] args){String mango
Time of Update: 2018-12-05
首先讓我們來思考一下什麼是檔案。這裡的檔案專指電腦中的檔案,如我們經常使用的txt文字檔、word文檔、視頻檔案、音頻檔案、windows系統下的exe可執行檔、編寫程式的原始碼檔案等等,我們平時上網衝浪瀏覽的網頁,其實也是一種檔案。它與我們的電腦生活形影不離,一句話,我們使用電腦,就是與檔案打交道。概括的講,電腦檔案就是儲存在某種存放裝置上的資料流。為了有組織的管理這些儲存在電腦中的檔案,以人類辦公中的檔案夾為靈感,設計了電腦中的檔案夾\目錄概念。接著就引入了檔案系統,這個專門負責管理檔案和檔
Time of Update: 2018-12-05
首先通過一個例子來簡單回顧Java中與日期和時間相關的類:package day7;import java.text.SimpleDateFormat;import java.util.Date;/** * Date類:處理日期,時間,該類中的大部分方法已經過時,不推薦使用 * 從 JDK 1.1 開始,應該使用 Calendar 類實現日期和時間欄位之間轉換 * 使用 DateFormat 類來格式化和解析日期文字 * 常用構造方法:Date()分配 Date
Time of Update: 2018-12-05
題目:類比銀行取款,使用三種線程同步方法實現取款的安全。編寫如下類,並進行取款測試:賬戶類:Account,含餘額欄位balance取款類:DrawMoney,在指定帳戶中進行取款操作編寫線程體:實現取款操作的安全 方法1:同步代碼塊/** * 銀行帳戶 */class Account {/** * 餘額 */private double balance;/** * 構造方法 * @param balance */Account(double balance)
Time of Update: 2018-12-05
Java中的字元是Unicode編碼,是雙位元組的,即一個字元等於兩個位元組。字元流的好處是可以更加便捷的操作文字檔。 (抽象流)字元輸出資料流:Writer 字元輸入資料流:Reader package day20.charstream;import java.io.File;import java.io.FileReader;import java.io.IOException;import java.io.Reader;public class Demo1 {public
Time of Update: 2018-12-05
Map表示映射關係,為一對對的(key,value)關係。key值不允許重複,通過key和value的關係是多對一的關係,即每個value對應唯一的keyMap.Entry是Map介面的內部將誒看,專門用來儲存key-value內容import java.util.HashMap;import java.util.Map;import java.util.Set;public class MapDemo {public static void main(String[] args) {Map
Time of Update: 2018-12-05
這裡簡要說明Java中的分層設計思想。如所示:將功能的實現分在兩層進行,訪問層和業務層。(1)設計IDao介面package web.java.xml.model;public interface IDao {public void create();}(2)設計介面實作類別DaoJdbcpackage web.java.xml.model;public class DaoJdbc implements IDao {@Overridepublic void create()
Time of Update: 2018-12-05
關於JavaBean:符合特定規則的類(JavaBean只是一個規範而已!) (1)私人的欄位(private Field) (2)對私人欄位提供存取方法(getter/setter) (3)數量任意的業務方法 內省(IntroSpector)是java對Bean類屬性、事件的一種預設處理方法。即通過getter/setter來訪問屬性。Java 中提供了一套 API 用來訪問某個屬性的 getter/setter 方法,通過這些 API
Time of Update: 2018-12-05
以下是Java對幾種文字檔內容讀取代碼。其中,OFFICE文檔(WORD,EXCEL)使用了POI控制項,PDF使用了PDFBOX控制項。 點擊這裡 查看相關控制項的和配置方法。 WORD Java代碼package textReader;import java.io.*;import org.apache.poi.hwpf.extractor.WordExtractor; public class WordReader { public WordReader(){ }
Time of Update: 2018-12-05
作為Applet程式的一個入門,我們今天探討一下如何?一個半徑不斷增大的小球動畫,正如所示。 設計的關鍵思想: 我們需要設定一個小球的圓心座標,最好是在視窗的中央,然後令小球的半徑不斷增大,不斷的重繪,以實現小球的增大動畫。設計方案: 我們要繪製小球,就用到了一個Graphics類,Graphics類有繪製的功能。 然後再設計一個線程專門用來控制動畫的播放,我們重載run()方法,在其中實現小球半徑的增加,以及調用表單的重繪函數,每隔一定時間重繪表單。
Time of Update: 2018-12-05
堆有最大堆和最小堆之分,最大堆就是每個節點的值都>=其左右孩子(如果有的話)值的完全二叉樹。最小堆便是每個節點的值都<=其左右孩子值的完全二叉樹。 設有n個元素的序列{k1,k2,...,kn},若且唯若滿足下列關係時,稱之為堆。 堆的三種基本操作(以下以最大堆為例): ⑴最大堆的插入 由於需要維持完全二叉樹的形態,需要先將要插入的結點x放在最底層的最右邊,插入後滿 足完全二叉樹的特點;