Time of Update: 2018-07-25
在java中,除了long和double的8個位元組、64位位元的變數外,其他的基本變數都是原子性的。 java儲存模型要求擷取和儲存操作都為原子性,但是對於非volatile的long和double變數,jvm允許將64位的讀或寫劃分為兩個32位的操作。 如果讀和寫發生在不同的線程,這種情況讀取一個非volatile類型long就可能會出現得到一個值的高32位和另一個值的低32位。
Time of Update: 2018-07-25
Time of Update: 2018-07-25
一、多線程以及安全執行緒 java安全執行緒就是指控制多個線程對某個資源的有序訪問或修改。這涉及兩個很重要的概念:java的記憶體模型和java的線程同步機制。 1.java的記憶體模型 要解決兩個主要的問題:可見度和有序性
Time of Update: 2018-07-25
對Java中的靜態修飾符還是不太瞭解.如果定義個靜態方法,方法內部不涉及調用外部變數,比如說這個方法是為瞭解決某個問題的一個工具方法,就像"Array.getLong(arg0, arg1)"這種一樣,那麼這個靜態方法在遇到多線程問題的時候是否會存在安全隱患呢? 我寫了下面一段代碼,用兩個線程不停的去調用類中的一個靜態方法,試問:Sytem.err.println()中的內容是否會列印出來。
Time of Update: 2018-07-25
今天偶爾發現java的輸出資料流的安全執行緒問題 先看代碼吧 import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.OutputStream;import java.util.Random;import java.util.concurrent.TimeUnit;public class TestFileWrite {public
Time of Update: 2018-07-25
一、測試int為線程不安全 在java中,高並發/多線程情況下,int的自增自減操作都不是安全執行緒的,使用AtomicInteger可以保證。 package com.yezi.learn.atomic;import java.util.concurrent.atomic.AtomicInteger;/** * Created by yezi on 2014/5/10. */public class TestAtomicInteger { private int
Time of Update: 2018-07-25
import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.util.Properties;import java.util.ResourceBundle;/** * * <b>Application
Time of Update: 2018-07-25
Volatile變數 volatile 變數表示保證它必須是與主記憶體保持一致,它實際是 " 變數的同步 ", 也就是說對於 volatile 變數的操作是原子型的,如用在 long 或 double 變數前。 Java 語言中變數被儲存在主記憶體中,可以用於多線程間的通訊,除此之外,每個線程擁有自己的工作記憶體。 Volatile
Time of Update: 2018-07-25
設定檔名: email.properties 設定檔內容: #Update 'EMAIL_SET' value #Thu Nov 01 10:03:57 CST 2012 EMAIL_SUBJECT=這是發送的郵件標題 EMAIL_USERNAME=XXXXXX@163.com SERVER_PORT=8080 EMAIL_GETPWD=請查收您的密碼 EMAIL_PASSWORD=************ EMAIL_SERVER_PORT=25
Time of Update: 2018-07-25
第一步:定義一個List介面,規定一些基本操作 package my.stack;public class Node<T> {private T data;private Node<T> next;public Node(){data = null;next = null;}public Node(T data){this.data = data;this.next = null;}public Node(T data, Node<T> next){
Time of Update: 2018-07-25
鏈表是面試中常出現的一類題目,本文用Java實現了面試中常見的鏈表相關題目。本文主要參考整合重寫了《輕鬆搞定面試中的鏈表題目》和 《演算法大全(1)單鏈表》兩篇大作。兩篇大神的實現分別是C和C#,因為我更喜歡用Java面試,所以用Java重寫了所有實現,並附上自己的一些思考注釋。演算法大全(1)單鏈表 尚未有一些問題尚未整合進來,很快我會更新本文。接下來還會出關於二叉樹的大總結和棧和隊列的大總結。因為這些都屬於面試中的送分題。必須毫無偏差地拿下。至於像動態規劃這些比較“高端”的演算法,
Time of Update: 2018-07-25
NodeList subNodeList = rootNode.getChildNodes(); for (int i = 0; i < subNodeList.getLength(); i++) { System.out.println("子節點的節點名稱:" + subNodeList.item(i).getNodeName());
Time of Update: 2018-07-25
定義介面://Deque.javapackage dsa; //根據自己的程式位置不同public interface Deque {public int getSize();//返回隊列中元素數目public boolean isEmpty();//判斷隊列是否為空白public Object first() throws ExceptionQueueEmpty;//取首元素(但不刪除)public Object last() throws ExceptionQueueEmpty;//
Time of Update: 2018-07-25
棧數組實現一:優點:入棧和出棧速度快,缺點:長度有限(有時候這也不能算是個缺點) public class Stack {private int top = -1;private Object[] objs;public Stack(int capacity) throws Exception{if(capacity < 0)throw new Exception("Illegal capacity:"+capacity);objs = new
Time of Update: 2018-07-25
前言 最近參加一些校招,博主被問了很多資料結構的問題,其中很多問題面試官需要的答案不僅僅是需要你瞭解這些概念,而是需要你通過某種語言(C、C++、Java)把這種結構實現,同時還能根據公司的具體需求進一步最佳化。對於博主這樣,資料結構功底薄弱的選手,最終結果只能“被面”。痛定思痛,現在痛苦狂補中。正如江湖中有句話“欠下的債終究要還的”。 鏈棧 棧的鏈式儲存結構稱為鏈棧。
Time of Update: 2018-07-25
如何讀取資源檔:(一)Properties props = new Properties(); props.load(new FileInputStream("db.properties"));(二)blog.properties檔案如下dbdriver=oracle.jdbc.driver.OracleDriverdburl=jdbc:oracle:thin:@127.0.0.1:1521:ora92dbuser=blogdbpwd=blog--------------
Time of Update: 2018-07-25
上一篇是自己寫的網路Stream讀取並轉換成String的原始碼,今天研究了一下新浪的寫法,下面貼出來供大家參考>>: /** * Returns the response body as string.<br> * Disconnects the internal HttpURLConnection silently. * @return response body * @throws WeiboException */
Time of Update: 2018-07-25
JMF 結構 ● 資料來源(Data source) ● 截取裝置(Capture Device,包括視頻和音頻截取裝置) ● 播放器(Player) ● 處理器(Processor) ● 資料格式(Format) ● 管理器(Manager) 直接貼代碼: package B110; import java.awt.BorderLayout; import java.awt.Component; import
Time of Update: 2018-07-25
java.lang.NullPointerExceptionorg.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:289)org.apache.struts.config.FormBeanConfig.createActionForm(FormBeanConfig.java:357)org.apache.struts.chain.commands.CreateActionForm.execute(
Time of Update: 2018-07-25
文章來源:http://blog.sina.com.cn/s/blog_700dec940100spox.html 他使用的是jdom.jar解析xml檔案 import java.io.IOException; import java.io.StringReader; import java.util.List; import org.jdom.Document; import org.jdom.Element; import org.jdom.JDOMException;