Time of Update: 2017-01-19
Java中的變數分為兩類:局部變數和類變數。局部變數是指在方法內定義的變數,如在run方法中定義的變數。對於這些變數來說,並不存線上程之間共用的問題。因此,它們不需要進行資料同步。類變數是在類中定義的變數,範圍是整個類。這類變數可以被多個線程共用。因此,我們需要對這類變數進行資料同步。資料同步就是指在同一時間,只能由一個線程來訪問被同步的類變數,當前線程訪問完這些變數後,其他線程才能繼續訪問。這裡說的訪問是指有寫操作的訪問,如果所有訪問類變數的線程都是讀操作,一般是不需要資料同步的。那麼如果不對
Time of Update: 2017-01-19
一、通過類變數和方法返回資料使用這種方法返回資料需要在調用start方法後才能通過類變數或方法得到資料。讓我們先來看看常式2-13會得到什麼結果。複製代碼 代碼如下:package mythread;public class MyThread extends Thread{ private String value1; private String value2; public void
Time of Update: 2017-01-19
在傳統的同步開發模式下,當我們調用一個函數時,通過這個函數的參數將資料傳入,並通過這個函數的傳回值來返回最終的計算結果。但在多線程的非同步開發模式下,資料的傳遞和返回和同步開發模式有很大的區別。由於線程的運行和結束是不可預料的,因此,在傳遞和返回資料時就無法象函數一樣通過函數參數和return語句來返回資料。本文就以上原因介紹了幾種用於向線程傳遞資料的方法,在下一篇文章中將介紹從線程中返回資料的方法。欲先取之,必先予之。一般在使用線程時都需要有一些初始化資料,然後線程利用這些資料進行加工處理,並
Time of Update: 2017-01-19
volatile關鍵字相信瞭解Java多線程的讀者都很清楚它的作用。volatile關鍵字用於聲明簡單類型變數,如int、float、boolean等資料類型。如果這些單一資料型別聲明為volatile,對它們的操作就會變成原子層級的。但這有一定的限制。例如,下面的例子中的n就不是原子層級的:複製代碼 代碼如下:package mythread;public class JoinThread extends Thread{public static volatile int n =
Time of Update: 2017-01-19
在上面的例子中多次使用到了Thread類的join方法。我想大家可能已經猜出來join方法的功能是什麼了。對,join方法的功能就是使非同步執行的線程變成同步執行。也就是說,當調用線程執行個體的start方法後,這個方法會立即返回,如果在調用start方法後後需要使用一個由這個線程計算得到的值,就必須使用join方法。如果不使用join方法,就不能保證當執行到start方法後面的某條語句時,這個線程一定會執行完。而使用join方法後,直到這個線程退出,程式才會往下執行。下面的代碼示範了join的
Time of Update: 2017-01-19
複製代碼 代碼如下:// 開始線程public void start( );public void run( );// 掛起和喚醒線程public void resume( ); // 不建議使用public void suspend( );// 不建議使用public static void sleep(long millis);public static void sleep(long millis, int nanos);// 終止線程public void stop( ); &
Time of Update: 2017-01-19
在Java中建立線程有兩種方法:使用Thread類和使用Runnable介面。在使用Runnable介面時需要建立一個Thread執行個體。因此,無論是通過Thread類還是Runnable介面建立線程,都必須建立Thread類或它的子類的執行個體。Thread類的構造方法被重載了八次,構造方法如下:複製代碼 代碼如下:public Thread( );public Thread(Runnable target);public Thread(String name);public Thread(
Time of Update: 2017-01-19
一、線程概述
Time of Update: 2017-01-19
Lambda簡介Lambda運算式是Java SE 8中一個重要的新特性。lambda運算式允許你通過運算式來代替功能介面。 lambda運算式就和方法一樣,它提供了一個正常的參數列表和一個使用這些參數的主體(body,可以是一個運算式或一個代碼塊)。Lambda運算式還增強了集合庫。 Java SE 8添加了2個對集合資料進行大量操作的包: java.util.function 包以及 java.util.stream 包。
Time of Update: 2017-01-19
今天學習了一下JavaMail,javamail發送郵件確實是一個比較麻煩的問題。為了以後使用方便,自己寫了段代碼,打成jar包,以方便以後使用。呵呵 以下三段代碼是我的全部代碼,朋友們如果想用,直接複製即可。jar包因為我不知道怎麼傳到javaeye上,所以朋友們回去自己打吧。 My Code有三個類: 第一個類:MailSenderInfo.java 複製代碼 代碼如下:package com.util.mail;/** * 發送郵件需要使用的基本資料 */ import
Time of Update: 2017-01-19
java的new關鍵字想必大家都知道這是執行個體化一個對象。沒錯,也是為新對象分配記憶體空間。比如new
Time of Update: 2017-01-19
本文執行個體講述了java資料結構與演算法之中綴運算式轉為尾碼運算式的方法。分享給大家供大家參考,具體如下://stackpublic class StackX { private int top; private char[] stackArray; private int maxSize; //constructor public StackX(int maxSize){ this.maxSize = maxSize; this.top = -1;
Time of Update: 2017-01-19
本文執行個體為大家分享了java日期時間基本操作方法,供大家參考,具體內容如下1. 獲得Calendar執行個體:Calendar c = Calendar.getInstance(); 2. 定義日期/時間的格式:SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 3. 把日期/時間轉換成固定格式,使用SimpleDateFormat的format()方法:String datetime =
Time of Update: 2017-01-19
fastjson 是一個效能很好的 Java 語言實現的 JSON 解析器和產生器,來自阿里巴巴的工程師開發。主要特點:• 快速FAST (比其它任何基於Java的解析器和產生器更快,包括jackson)• 強大(支援普通JDK類包括任意Java Bean Class、Collection、Map、Date或enum)• 零依賴(沒有依賴其它任何類庫除了JDK)範例程式碼:import com.alibaba.fastjson.JSON; Group
Time of Update: 2017-01-19
自訂線程兩種方法自訂一個runnable介面的實作類別,然後構造一個thread,即對thread傳入一個runnable介面類。new一個thread或者寫個thread子類,覆蓋它的run方法。(new 一個thread並覆蓋run方法實際上是匿名內部類的一種方式)範例程式碼public static void main(String[] args) {new Thread(new Runnable() {@Overridepublic void run()
Time of Update: 2017-01-19
如下所示:import java.util.List;import java.util.ArrayList;import java.util.Set;import java.util.HashSet;public class lzwCode {public static void main(String [] args) {testA();System.out.println("===========================");testB();System.out.println("=
Time of Update: 2017-01-19
如下所示:public static String reThreeStr(String ss){ boolean result= ss.matches("^[-+]?(([0-9]+)([.]([0-9]+))?|([.]([0-9]+))?)$"); if(result&&ss!=null&&!"".equals(ss)){ Double sss=Double.valueOf(ss); String numStr=new
Time of Update: 2017-01-19
初次遇見 native是在 java.lang.Object 源碼中的一個hashCode方法:public native int hashCode(); 為什麼有個native呢?這是我所要學習的地方。所以下面想要總結下native。一、認識 native 即 JNI,Java Native Interface 凡是一種語言,都希望是純。比如解決某一個方案都喜歡就單單這個語言來寫即可。Java平台有個使用者和本地C代碼進行互操作的API,稱為Java Native Interface
Time of Update: 2017-01-19
功能檔案的上傳,下載和管理 技術:1.用xml當做資料庫儲存資訊(dom4j,xpath) 2.Java表單的檔案上傳和下載 3.檔案目錄的打散 ( Hash目錄是一種最佳化檔案儲存體效能的方法)需要的jar包: commons-fileupload-1.2.2.jar、commons-io-2.1.jar、dom4j-1.6.1.jar和jaxen-1.1-beta-6.jar-----------------------------------------------------------
Time of Update: 2017-01-19
Java反射機制與動態代理,使得Java更加強大,Spring核心概念IoC、AOP就是通過反射機制與動態代理實現的。1 Java反射樣本:User user = new User();user.setTime5Flag("test"); Class<?> cls = Class.forName("com.test.User");//介面必須public,無論是否在本類內部使用!或者使用cls.getDeclaredMethod(),或者遍曆修改可訪問性Method