Time of Update: 2018-07-27
最近在修程式的bug,發現後台拋出以下異常: Exception in thread "main" java.util.ConcurrentModificationException at java.util.HashMap$HashIterator.nextEntry(HashMap.java:793) at java.util.HashMap$KeyIterator.next(HashMap.java:828) at
Time of Update: 2018-07-27
/*** 1、字串的空判斷 org.aphche.commons.lang.StringUtils */ // Checks if a String is empty ("") or null.System.out.println(StringUtils.isEmpty(null)); // trueSystem.out.println(StringUtils.isEmpty("")); //
Time of Update: 2018-07-27
我們知道,一旦申明一個String類型的變數,它就會指向一個對象,而當對這個變數進行修改時,這個變數就會指向一個新的對象。但是像StringBuffer,它並不會產生新的對象: StringBuffer sb = new StringBuffer();sb.append("abc").append("def");這裡sb會一直指向同一個對象。而我們使用“+”來拼接兩個字串時,比如String str = str1+str2會進行如下操作:
Time of Update: 2018-07-27
一: Random類(java.util.Random) 構造器: 樣本: /** * 功能描述:隨機擷取6位純數字 * * @param */public static String getRandom() {int code = 0;while (code < 100000) {code = new Random().nextInt(999999);}return String.valueOf(code);} public
Time of Update: 2018-07-27
系統啟動一個新線程的成本是比較高的,因為它涉及到與作業系統的互動。在這種情況下,使用線程池可以很好的提供效能,尤其是當程式中需要建立大量生存期很短暫的線程時,更應該考慮使用線程池。 與資料庫連接池類似的是,線程池在系統啟動時即建立大量閒置線程,程式將一個Runnable對象傳給線程池,線程池就會啟動一條線程來執行該對象的run方法,當run方法執行結束後,該線程並不會死亡,而是再次返回線程池中成為空白閑狀態,等待執行下一個Runnable對象的run方法。
Time of Update: 2018-07-27
在前面的文章中,我們使用線程的時候就去建立一個線程,這樣實現起來非常簡便,但是就會有一個問題: 如果並發的線程數量很多,並且每個線程都是執行一個時間很短的任務就結束了,這樣頻繁建立線程就會大大降低系統的效率,因為頻繁建立線程和銷毀線程需要時間。 那麼有沒有一種辦法使得線程可以複用,就是執行完一個任務,並不被銷毀,而是可以繼續執行其他的任務。 在Java中可以通過線程池來達到這樣的效果。 1 線程池做什麼
Time of Update: 2018-07-27
參考:http://ifeve.com/concurrency-semaphore/ https://www.cnblogs.com/feijishuo/p/4538814.html https://zhuanlan.zhihu.com/p/29463581 簡介
Time of Update: 2018-07-27
參考: https://www.jianshu.com/p/1716ce690637http://ifeve.com/talk-concurrency-countdownlatch/ CountDownLatch是什麼 CountDownLatch也叫閉鎖,在JDK1.5被引入,允許一個或多個線程等待其他線程完成操作後再執行。
Time of Update: 2018-07-27
1.1.1 定義 委託是一種引用方法的類型。一旦為委託分配了方法,委託將與該方法具有完全相同的行為。委託方法的使用可以像其他任何方法一樣,具有參數和傳回值,如下面的樣本所示: //Code in C# public delegate int PerformCalculation(int x, int y); 與委託的簽名(由傳回型別和參數組成)匹配的任何方法都可以分配給該委託。
Time of Update: 2018-07-27
在Java中,數組一旦建立,其大小是無法改變的。因此,我們可以更改數組的實現,動態調整數組的大小,使得既能儲存所有元素,又不至於浪費空間。實際上,完成這個很簡單: private void resize(int max){ //將大小為N<MAX的棧移動到大小為MAX的數組中 Item[] temp = (Item[])new Object[max]; for(int i = 0;i < N;i++){ temp[i] = a[i]; }
Time of Update: 2018-07-27
一、線程兩種實現 1.繼承Thread類: (1)【直接在主類繼承】 package org; // 繼承 Thread 類 public class TestThreadofExt extends Thread { private static int count = 0; public static void main(String[]args) { // new 一個 線程,然後啟動
Time of Update: 2018-07-27
錯誤提示: java.lang.IllegalStateException: No activityat android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1075)at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)at
Time of Update: 2018-07-27
註:selenium與testng的安裝及使用網上很多例子,這裡主要是記錄一下本人在搭建ant環境中的一些例子 一。安裝 1、 到 http://ant.apache.org/bindownload.cgi 下載 ant發布版本 2、 將下載後的 zip 檔案解壓縮到任意目錄,比如 D:\ant 3、 在環境變數中增加 ANT_HOME=D:\ant( 替換成你解壓縮的目錄 ) 4、 在環境變數 path 中增加 ;D:\ant\bin;
Time of Update: 2018-07-27
定義一個int 類型的數組,並將其中的數從小到大的排列。 思路:從數組中拿出兩個數來進行比較並保留最小的值來和數組中的其他值進行比較,得到最小值,並把他放到第一位(i 迴圈一次,j 進行了一次所有值的比對) 第一個for迴圈每次只能夠完成一個最小值的排列,當迴圈完成,排序也就完成。 public int[] bubbleSortball(int[] array ){
Time of Update: 2018-07-27
最近在做一個業餘項目,期望在項目中學習Java語言,在這個過程中遇到了ByteBuffer,感覺在這個項目中是一個很重要很基礎的一個東西,所以借這個機會學習了一下,以此為記。 flapmmo-20140225\src\main\java\org\javaee7\websocket\flapmmo\FlapEndpoint.java package org.javaee7.websocket.flapmmo;import
Time of Update: 2018-07-27
代碼如下: String pptFileName = null; for (Iterator<FileUploadBean> it = filesList.iterator(); it.hasNext();) {if(it.next().getId().toString().equals(method)){ pptFileName = it.next().getFilePath();} 運行時報錯:
Time of Update: 2018-07-27
java中Set集合是一個不包含重複元素的Collection,首先我們先看看遍曆方法 package com.sort;import java.util.HashSet;import java.util.Iterator;import java.util.Set;/** * 一個不包含重複元素的 collection。更確切地講,set 不包含滿足 e1.equals(e2) 的元素對 e1 和 e2, * @author Owner * */public class
Time of Update: 2018-07-27
import java.io.FileInputStream;import java.io.IOException;import java.util.HashMap;/** * 擷取和判斷檔案頭資訊 * * @author Sud * */public class GetTypeByHead {// 快取檔案頭資訊-檔案頭資訊public static final HashMap<String, String> mFileTypes = new
Time of Update: 2018-07-27
如果使用Hibernate, 查詢出重複的資料或者使用類似下面的資料 User s = new User(); s.setAccount("2121"); List<User> list = new ArrayList<User>(); list.add(s); list.add(s); System.out.println(JSON.toJSONString(list)); 運行結果是:
Time of Update: 2018-07-27
在多線程程式的編寫中,經常能遇到ConcurrentModificationException這個異常,這個異常的意思是指出現了並發修改的情況,為了降低對程式的效能的影響,Java開發人員將捕獲的這種錯誤以“善意”的方式進行提醒。這種異常一般在對容器的元素遍曆的過程中出現了對容器的寫操作(包括增加、修改和刪除操作)時出現。仔細閱讀源碼就知道,使用迭代器遍曆元素時由一個計數器,這個計數器就是為“快速失敗”機制設計的。