Time of Update: 2018-07-26
要想講清楚nio的原理和它的優點得先清楚Java應用程式的檔案讀寫原理和虛擬記憶體的原理。Java檔案讀取原理可參見如下圖: 當應用程式需要讀取檔案的時候,核心首先通過DMA技術將檔案內容從磁碟讀入核心中的buffer,然後Java應用進程再從核心的buffer將資料讀取到應用程式的buffer。 為了提升I/O效率和處理能力,作業系統採用虛擬記憶體的機制。虛擬記憶體也就是我們常說的交換記憶體,它實際上是硬碟上的檔案,虛擬記憶體有兩個作用: 1.
Time of Update: 2018-07-26
在學習java集合的迭代器遍曆集合內容,並新增內容的時候,遇到了一個ConcurrentModificationException異常, for(Iterator<String> it=arrList.iterator();it.hasNext();){//System.out.println(it.next()); //當for迴圈結束的時候,it引用就被回收器回收Pattern p=Pattern.compile("風清揚");Matcher m=p.
Time of Update: 2018-07-26
先放入效果圖 實現環節 1-前端實現將把資訊發送到後台和接收後台發送過來的資訊並且將其發射彈幕到瀏覽器上 2-通過websocket與每個服務端串連,當接收到來自任何一個前端發來的資訊,就將該資訊群發至所有的用戶端(也就是瀏覽器) 用戶端(瀏覽器)的代碼如下: <%@ page language="java" contentType="text/html;
Time of Update: 2018-07-26
一、單線程 1. 異常情況舉例 只要拋出出現異常,可以肯定的是代碼一定有錯誤的地方。先來看看都有哪些情況會出現ConcurrentModificationException異常,下面以ArrayList remove 操作進行舉例: 使用的資料集合: List myList = new ArrayList(); myList.add( "1"); myList.add( "2");
Time of Update: 2018-07-26
java運算中,常涉及將String 型的字串轉為int 型數位情況。 哪些字串可以轉為數字,哪些不可以呢,不能總以Integer.parseInt() 是否拋出異常來判斷。 剛好碰到了轉換情況,就總結了下,分享出來。 定義方法簽名 /*** 查看一個字串是否可以轉換為數字* @param str 字串* @return true 可以; false 不可以*/public static boolean isStr2Num(String str) { }
Time of Update: 2018-07-26
1. DDE(動態資料交換)方式VBA具有DDE能力,Java沒有。網上搜尋了一下,有幾個公司開發了這方面的類庫,可以使Java具有DDE能力。 (1)JavaDDE - nevaobject: http://www.nevaobject.com/_docs/_javadde/JavaDde.pdf (2)WinPack - jniwrapper: http://www.jniwrapper.com/pages/winpack/overview
Time of Update: 2018-07-26
關於 java 除0的問題 有麽一個問題,1/0和1.0/0.0的結果是什麼。 代碼如下: 輸出如下: [java] view plain copy
Time of Update: 2018-07-26
一. lock可以代替synchronized關鍵字實現互斥功能。使用方法如下: Lock l = ...; l.lock(); try { // access the resource protected by this lock } finally { l.unlock(); } 需要注意的是。 1.需要互斥的一個或多個方法要使用同一個互斥鎖。
Time of Update: 2018-07-26
程式中有一個複雜的對象資料要儲存起來,我們把這個對象用GSON轉成字串,然後直接存進資料庫的一個CLOB欄位作為持久化。下次使用的時候,直接取出,然後藉助GSON轉成Java對象,對於簡單的Java對象,GSON的互轉都是沒有問題的。但是我的這個結構嵌套層級有點多,Java資料類型是: Map<String, Collection<LinkedHashMap<String, String>>> 在使用 new
Time of Update: 2018-07-26
在Java SE5之前,我們要使用枚舉類型時,通常會使用static final 定義一組int常量來標識,代碼如下 public static final int MAN = 0;public static final int WOMAN = 1; 相信很多小夥伴,在實際開發中也是那麼乾的,既然這樣已經能實現枚舉的功能,為什麼還要引入枚舉呢。我們接著往下看當我們需要是同這組“int枚舉”是代碼如下 public void showSex(int sex){ switch(
Time of Update: 2018-07-26
package cn.Date; import java.text.Format; import java.text.SimpleDateFormat; import java.util.Date; /* *DateFormat 是日期/時間格式化子類的抽象類別,因為他是一個抽象類別,所以要有具體構造方法
Time of Update: 2018-07-26
應用情境:將要操作的檔案或者目錄一同放在工程的某個目錄下,連同工程一起部署放便管理。 最容易想到的方式為system.getProperty("user.dir");但是這種方法在發布情況和對於Eclipse的情況擷取到的地址是不同的,發行的動態web工程是system.getProperty("user.dir")值為:D:/eclipse/,對於Eclipse則是D:/workspace/test01/。
Time of Update: 2018-07-26
1、JAVA中,char佔2位元組,16位。可在存放漢字 2、char賦值 char a='a'; //任意單個字元,加單引號。 char a='中';//任意單個中文字,加單引號。 char a=111;//整數。0~65535。十進位、八進位、十六進位均可。輸出字元編碼表中對應的字元。註:只能放單個字元。 3、char運算 char類型是可以運算的因為char在ASCII等字元編碼表中有對應的數值。
Time of Update: 2018-07-26
食物類,動物類,飼養員類,測試類別。實現飼養員給動物餵食物。 食物類: 屬性name 動物類: 屬性name 方法void eat 飼養員類: 屬性name 方法void feed 測試類別列印的結果: 張三喂大熊貓 大熊貓吃竹筍 package demo03; public class Animal { public String name;public Food f;public void eat(){ System.out.println(name+"
Time of Update: 2018-07-26
Java基礎環境變數的配置 Java環境變數的配置主要包含如下三個重要環境變數,至於後續做web項目的時候,還需要配置tomcat相關的環境變數,這裡先不做總結。 一. path 1.
Time of Update: 2018-07-26
private String generateWord() {
Time of Update: 2018-07-26
一,線程狀態的檢查 一般情況下無法確定一個線程的運行狀態,對於這些處於未知狀態的線程,可以通過isAlive()方法用來確定一個線程是否仍處在活動狀態。當然即使處於活動狀態的線程也並不意味著這個線程一定正在運行,對於一個已開始運行但還沒有完成任務的線程,這個方法傳回值為true。二,後台線程
Time of Update: 2018-07-26
做這個項目前需要先做好分析: 聊天室分為兩個模組,伺服器和用戶端。 伺服器主要實現邏輯是:用戶端第一次進入聊天室列印歡迎日誌、接收用戶端的訊息列印在聊天室中、群發給其他使用者、判斷私聊的條件。 用戶端主要實現邏輯是:初始化資訊、發送訊息給伺服器、接收來自伺服器的訊息。 項目從簡單版本往上寫,逐步增加功能: 第一個版本:通過TCP搭建伺服器和用戶端,一個用戶端上線伺服器就列印一條上線提示。
Time of Update: 2018-07-26
翻譯:Cheramiemail:cherami@163.net 原文:http://developer.java.sun.com/developer/TechTips/2000/tt0815.html如果你經常使用UNIX 或者 Windows shells (命令處理器),你可能經常像這樣使用I/O重新導向: $ command >outfile這個用法是說:運行一個命令,
Time of Update: 2018-07-26
注意要引入包 java.util.regex 用於匹配字元序列與Regex指定模式的類。 package com.test1; import java.io.*; import java.util.regex.*; public class Test2 { /** * @param args */ public static void main(String[] args) {