Time of Update: 2018-07-26
今天在github上看到了一個開源項目,裡面是在整理並翻譯stackoverflow上的熱門問題,第一個問題是在討論 i += j 是否等同於 i = i + j;結論是不等於。論證如下: 如果 int i = 9; long j = 11; 那麼 i = i + j不能編譯,但 i += j 卻可以編譯。說明i += j,實際是等同於 i= (type of i) (i + j);
Time of Update: 2018-07-26
簡介 CopyOnWriteArrayList是jdk concurrent包中提供的一個非阻塞型的,安全執行緒的List實現。CopyOnWriteArrayList是一個安全執行緒、並且在讀操作時無鎖的ArrayList。 CopyOnWriteArrayList在進行資料修改時,會對資料進行鎖定,每次修改時,先拷貝整個數組,然後修改其中的一些元素,完成上述操作後,用一個原子操作替換整個數組的指標。
Time of Update: 2018-07-26
ConcurrentHashMap ConcurrentHashMap是一個安全執行緒的Hash Table,它的主要功能是提供了一組和HashTable功能相同但是安全執行緒的方法。ConcurrentHashMap可以做到讀取資料不加鎖,並且其內部的結構可以讓其在進行寫操作的時候能夠將鎖的粒度保持地盡量地小,不用對整個ConcurrentHashMap加鎖。 ConcurrentHashMap的內部結構
Time of Update: 2018-07-26
最近需要進行網路傳輸大檔案,於是對基於socket的檔案傳輸作了一個初步的瞭解。在一位網友提供的程式基礎上,俺進行了一些加工,採用了緩衝輸入/輸出流來封裝輸出資料流,再採用資料輸入/輸出輸出資料流進行封裝,加快傳輸的速度。廢話少說,先來看伺服器端的程式。 1.伺服器端 package sterning;import java.io.BufferedInputStream;import java.io.DataInputStream;import
Time of Update: 2018-07-26
最近的一個項目中用到了郵件發送,所以研究了一下。將其總結下來。 要發送郵件就要用到java中的JavaMail,關於JavaMailAPI的詳解呢在 (http://blog.csdn.net/imain/article/details/1453677“)中有非常詳盡的介紹,我就直接上代碼了。 1:使用JavaMail發送郵件 // 1.建立一個程式與郵件伺服器會話對象 Session Properties props = new Properties();
Time of Update: 2018-07-26
操作方式:使用HDFS的API 直接讀取檔案: 解決辦法: 第一種方法: 原始碼:FileSystem fs = FileSystem.get(URI.create(hdfsFilePath), config); 改為: FileSystem fs = FileSystem.newInstance(URI.create(hdfsFilePath), config); 第二種方法: 在hdfs core-site.
Time of Update: 2018-07-26
首先說明一下:方法鎖和對象鎖說的是一個東西,即只有方法鎖或對象鎖 和類鎖兩種鎖 作者用通俗易懂的語言將複雜的技術講解的如此透徹,學習,傳播。 原文地址:http://zhh9106.iteye.com/blog/2151791 在java編程中,經常需要用到同步,而用得最多的也許是synchronized關鍵字了,下面看看這個關鍵字的用法。 因為synchronized關鍵字涉及到鎖的概念,所以先來瞭解一些相關的鎖知識。
Time of Update: 2018-07-26
在7月份的那期 Java理論與實踐(“並發集合類”)中,我們簡單地回顧了延展性的瓶頸,並討論了怎麼用共用資料結構的方法獲得更高的並發性和輸送量。有時候學習的最好方法是分析專家的成果,所以這個月我們將分析 Doug Lea 的util.concurrent 包中的 ConcurrentHashMap 的實現。JSR 133 將指定 ConcurrentHashMap 的一個版本,該版本針對 Java 記憶體模型(JMM)作了最佳化,它將包含在 JDK 1.5 的
Time of Update: 2018-07-26
1. 擷取父類 這是最簡單也是最容易理解的方法——getSuperclass(),唯一需要說明的是,返回的一定是類,不是介面。 2. 擷取內部類 擷取內部類有兩種,分別為class.getClasses()與class.getDeclaredClasses(),但它們兩個差別極大,見下表: 方法名稱 返回結果 包含介面 包含繼承結果 僅包含公開
Time of Update: 2018-07-26
本試卷包含兩種題型:“代碼填空”與“程式設計”。 填空題要求參賽選手在弄清給定代碼工作原理的基礎上填寫缺失的部分,使得程式邏輯正確、完整。所填寫的代碼不多於一條語句(即不能出現分號)。 編程題要求選手設計的程式對於給定的輸入能給出正確的輸出結果。注意:在評卷時使用的輸入資料與試卷中給出的執行個體資料可能是不同的。選手的程式必須是通用的,不能只對試卷中給定的資料有效。 1. 代碼填空(滿分3分) 以下程式列印出0~9的數字,請補充缺少的代碼。 public&
Time of Update: 2018-07-26
java應用(非web應用)中log4j.properties動態修改設定檔,無需重啟,就能立即生效,如何?。 主要使用:PropertyConfigurator.configureAndWatch(path,1000);// 間隔特定時間,檢測檔案是否修改,自動重新讀取配置 來實現log4j設定檔修改後自動重載。 Log4jConfig.java package log4jautoload; import
Time of Update: 2018-07-26
在執行前,設定了參數Goals: compile compile exec:java -Dexec.mainClass=”com.weimenhu.appUtil.test” 網上尋找資料,在 http://www.cnblogs.com/csophys/archive/2012/05/18/2507926.html 中找到是因為沒有遵守Maven約定造成的:
Time of Update: 2018-07-26
1、 建立線程有幾種不同的方式。你喜歡哪一種。為什麼。 3種: 繼承Thread類、 實現Runnable介面、實現Callable介面 實現Runnable介面;因為這不需要繼承Thread類。在應用設計中已經繼承了別的對象的情況下, 這需 要 多
Time of Update: 2018-07-26
【204-Count Primes(統計質數)】 【LeetCode-面試演算法經典-Java實現】【所有題目目錄索引】 代碼下載【https://github.com/Wang-Jun-Chao】 原題 Description: Count the number of prime numbers less than a non-negative number, n. 題目大意 統計小於非負整數n的素數的個數。 解題思路
Time of Update: 2018-07-26
面試題:Java中for和foreach區別在哪裡。什麼時候用for?什麼時候用foreach? 從Java 5 之後,Java提供另一種更簡單的迴圈:foreach迴圈,這種迴圈遍曆數組和集合更加簡潔。使用foreach迴圈遍曆數組和集合元組時,無須獲得數組和集合的長度,無鬚根據索引來訪問數組元素和集合元素,foreach迴圈會自動遍曆數組和集合的每個元素。 一、常見使用方式 1. foreach遍曆數組 public class ForeachTest{ public
Time of Update: 2018-07-26
最近寫了一個連資料庫的程式,發現老是記憶體不夠. 最後發現是statement 沒有及時關閉,佔用了大量資源. 源碼如下 public static int executeUpdate(String sql){Statement stmt=null;int count=0;try {stmt = conn.createStatement();count = stmt.executeUpdate(sql);}catch (SQLException e)
Time of Update: 2018-07-26
1 單例模型,對資源進行共用。 類如ListTest,用Test類進行測試。 import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReadWriteLock; import java.util.concurrent.locks.ReentrantLock; import java.util.concurrent.locks.ReentrantReadWriteLock; public class
Time of Update: 2018-07-26
近日,tomcat6下,同時發布多個app(實際上就兩個app,這兩個app之間通過WebService互相訪問,另外有三個Socket服務端監聽),系統啟動的時候No problem。but系統運行時總是拋出java.lang.OutOfMemoryError: PermGen space。 根據以往經驗,調大java的-Xss參數,可是增大至16M時,仍然一如既往的throw Exception。如此,若何。 Google後,得知是因為JVM中的permanent
Time of Update: 2018-07-26
Java中的資料類型和SQL中的資料類型有很多不一樣,需要仔細區分,不然易在開發中造成莫名的錯誤。 Java資料類型 Hibernate資料類型 標準SQL資料類型(PS:對於不同的DB可能有所差異) byte、java.lang.Byte byte TINYINT short、java.lang.Short short
Time of Update: 2018-07-26
1.mysql 日期(天) group by 2.servlet生命週期3.各種方式定義的string的==和equals4.js string 定義新方法5.public private protected default區別6.多線程情境,及解決辦法7.談談你對資料庫事務的認識。8.spring中ioc