1. 程式人生 > >Java程式碼常用功能實現總結

Java程式碼常用功能實現總結

目錄

1.獲取當前系統時間:

SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設定日期格式

System.out.println(df.format(new Date()));

執行結果:

2017-10-22 12:18:37

(1)時間戳(精確到秒為10位)轉換為日期格式:

df.format(new Date(Long.valueOf(1538209477+"000")))

(2)日期格式轉換為時間戳:

String.valueOf(df.parse("2018-09-29 16:27:42").getTime())

2.獲取當前時間戳:

-------------------------------------------
(1)方法 一
System.currentTimeMillis();
(2)方法 二
Calendar.getInstance().getTimeInMillis();
(3)方法 三
new Date().getTime();

補充:獲取時間戳三種方法執行效率比較

import java.util.Calendar;
import java.util.Date;
 
public class TimeTest {
    private static long _TEN_THOUSAND=10000;
    public static void main(String[] args) {
        long times=1000*_TEN_THOUSAND;
        long t1=System.currentTimeMillis();
        testSystem(times);
        long t2=System.currentTimeMillis();
        System.out.println(t2-t1);
 
        testCalander(times);
        long t3=System.currentTimeMillis();
        System.out.println(t3-t2);
 
        testDate(times);
        long t4=System.currentTimeMillis();
        System.out.println(t4-t3);
    }
 
    public static void testSystem(long times){
        for(int i=0;i<times;i++){
            long currentTime=System.currentTimeMillis();
        }
    }
 
    public static void testCalander(long times){
        for(int i=0;i<times;i++){
            long currentTime=Calendar.getInstance().getTimeInMillis();
        }
    }
 
    public static void testDate(long times){
        for(int i=0;i<times;i++){
            long currentTime=new Date().getTime();
        }
    }
 
}
執行結果:
43
1885
45
Calendar.getInstance().getTimeInMillis() 這種方式速度最慢,這是因為Canlendar要處理時區問題會耗費較多的時間。

Python:

import time
print (time.time())
print(int(round(time.time()*1000)))
print(int(time.time()))

執行結果:

1513776456.43
1513776456440
1513776456
疑惑:java上面的三種方法獲取的時間戳都是13位的,而python用自帶的time模組獲取的卻是1513776456.43,還得自己轉換成10位或13位的

解答:時間戳的位數是根據演算法計算的,沒有固定的位數。 可信時間戳計算出來的電子檔案的數字指紋是40位~
由於精度不同,導致長度不一致,直接轉換錯誤。 JAVA時間戳長度是13位,如:1294890876859 PHP時間戳長度是10位(不知道js預設是多少位,但是在工作中python傳給js的時間戳還必須是13位,10位的解析不出來), 如:1294890859 php echo date!

3.獲取主機名和IP

-------------------------------------------
InetAddress a=InetAddress.getLocalHost();
String localname=a.getHostName();
String localip=a.getHostAddress();
System.out.println("本機名稱是:" + localname);
System.out.println("本機的ip是 :" + localip);
System.out.println(InetAddress.getLocalHost());
執行結果:
本機名稱是:h66
本機的ip是 :192.168.205.66
h66/192.168.205.66

4.new String用法:

byte[] bytes = "hui".getBytes(); //String轉bytes
String receiveText = new String( bytes,1,2); //bytes轉String
System.out.println(receiveText);

執行結果:

ui

5.ByteBuffer和String的互相轉換:

String hui = "hehe";
ByteBuffer buffer = ByteBuffer.wrap(hui.getBytes());
Charset charset = Charset.forName("UTF-8");
CharsetDecoder decoder = charset.newDecoder();
CharBuffer charBuffer = decoder.decode(buffer.asReadOnlyBuffer());
System.out.println(buffer);
System.out.println(charBuffer.toString());

執行結果:

java.nio.HeapByteBuffer[pos=0 lim=4 cap=4]
hehe

6.int和string相互轉換:

-------------------------------------------
int -> String:
int i=12345;
String s="";
第一種方法:s=i+"";
第二種方法:s=String.valueOf(i);
String -> int或long:
s="12345";
int i;
第一種方法:i=Integer.parseInt(s);或Long.parseInt(s)
第二種方法:i=Integer.valueOf(s).intValue();或Long.valueOf(s).longValue()
這兩種方法有什麼區別呢?作用是不是一樣的呢?是不是在任何下都能互換呢?答:
第一種方法:s=i+""; //會產生兩個String物件
第二種方法:s=String.valueOf(i); //直接使用String類的靜態方法,只產生一個物件
第一種方法:i=Integer.parseInt(s);//直接使用靜態方法,不會產生多餘的物件,但會丟擲異常
第二種方法:i=Integer.valueOf(s).intValue();//Integer.valueOf(s) 相當於 new Integer(Integer.parseInt(s)),也會拋異常,但會多產生一個物件

7.把多個json放到list中:

		List<String> keysList1 = new ArrayList<>();
		JSONObject json1 = new JSONObject();
		json1.put("littleTitle", "你愛誰");
		json1.put("text", "小強簽名設計");
		keysList1.add(json1.toString());
		JSONObject json2 = new JSONObject();
		json2.put("littleTitle", "我愛誰");
		json2.put("text", "你猜");
		keysList1.add(json2.toString());
		System.out.println("keysList11-->"+keysList1);

執行結果:

keysList11-->[{"littleTitle":"你愛誰","text":"小強簽名設計"}, {"littleTitle":"我愛誰","text":"你猜"}]

8.List集合去除重複資料:

import java.util.*;

@SuppressWarnings({ "rawtypes", "unchecked" })
public class printt {
	public static void main(String[] args) {
		List<String> strs = new ArrayList<String>();
		String str2 = "world";
		String str1 = "hello";
		String str3 = "world";
		strs.add(str1);// 通過add方法
		strs.add(str2);
		strs.add(str3);
		System.out.println(removeDuplicate(strs));
		System.out.println(removeDuplicate1(strs));
		System.out.println(removeDuplicate3(strs));
		removeDuplicate4(strs);

		// 可用於效率測試
		final List<String> list = new ArrayList<String>();
		for (int i = 0; i < 1000; i++) {
			list.add("haha-" + i);
		}

		long time = System.currentTimeMillis();
		for (int i = 0; i < 10000; i++) {
			removeDuplicate2(list);
		}
		long time1 = System.currentTimeMillis();
		System.out.println("time1:" + (time1 - time));
	}

	public static List removeDuplicate(List list) {
		for (int i = 0; i < list.size() - 1; i++) {
			for (int j = list.size() - 1; j > i; j--) {
				if (list.get(j).equals(list.get(i))) {
					list.remove(j);
				}
			}
		}
		return list;
	}

	// 利用HashSet不能新增重複資料的特性
	public static List removeDuplicate1(List<String> list) {
		// 如果對list新增順序無要求則可直接用
		// HashSet set = new HashSet(list);
		// list.clear();
		// list.addAll(set);

		// 如果對list新增順序有要求的話,由於HashSet不能保證新增順序,所以只能作為判斷條件
		HashSet<String> set = new HashSet<String>();
		List<String> result = new ArrayList<String>();
		for (String str : list) {
			if (set.add(str)) {
				result.add(str);
			}
		}
		list.clear();
		list.addAll(result);
		return list;
	}

	// 利用LinkedHashSet不能新增重複資料並能保證新增順序的特性
	private static void removeDuplicate2(List<String> list) {
		LinkedHashSet<String> set = new LinkedHashSet<String>(list);
		/*
		 * 或者: LinkedHashSet<String> set = new LinkedHashSet<String>();
		 * set.addAll(list);
		 */
		list.clear();
		list.addAll(set);
		// System.out.println(list);
	}

	// 利用List的contains方法迴圈遍歷
	public static List removeDuplicate3(List list) {
		List listTemp = new ArrayList();
		for (int i = 0; i < list.size(); i++) {
			if (!listTemp.contains(list.get(i))) {
				listTemp.add(list.get(i));
			}
		}
		return listTemp;
	}

	// 刪除ArrayList中重複元素,保持順序
	public static void removeDuplicate4(List list) {
		Set set = new HashSet();
		List newList = new ArrayList();
		for (Iterator iter = list.iterator(); iter.hasNext();) {
			Object element = iter.next();
			if (set.add(element))
				newList.add(element);
		}
		list.clear();
		list.addAll(newList);
		System.out.println(list);
	}
}

執行結果:

[hello, world]
[hello, world]
[hello, world]
[hello, world]
time1:1396

參考:

9.判斷陣列中是否包含某個元素

參考:

在java中,我們如何判斷一個未排序陣列中是否包含一個特定的值?這在java中是一個頻繁非常實用的操作。那麼什麼樣的方法才是最高效的方式?

使用List:
public static boolean useList(String[] arr, String targetValue) {
    return Arrays.asList(arr).contains(targetValue);}

使用Set:
public static boolean useSet(String[] arr, String targetValue) {
    Set<String> set = new HashSet<String>(Arrays.asList(arr));
    return set.contains(targetValue);}

使用迴圈判斷:
public static boolean useLoop(String[] arr, String targetValue) {
    for(String s: arr){
        if(s.equals(targetValue))
            return true;
    }
    return false;}
    
使用Arrays.binarySearch():
優點:使用二分查詢法,效率快捷。
缺點:查詢的陣列必須是有序的,如果不是有序的話,使用此方法是沒有用的。
public static boolean useArraysBinarySearch(String[] arr, String targetValue) { 
    int a =  Arrays.binarySearch(arr, targetValue);
    if(a >= 0)
        return true;
    else
        return false;}
        
時間複雜度
下面的程式碼可以大概的得出各種方法的時間成本。基本思想就是從陣列中查詢某個值,陣列的大小分別是5、1k、10k。這種方法得到的結果可能並不精確,但是是最簡單清晰的方式。
使用一個長度為5的資料:
public static void main(String[] args) {
    String[] arr = new String[] {  "CD",  "BC", "EF", "DE", "AB"};

    //use list
    long startTime = System.nanoTime();
    for (int i = 0; i < 100000; i++) {
        useList(arr, "A");
    }
    long endTime = System.nanoTime();
    long duration = endTime - startTime;
    System.out.println("useList:  " + duration / 1000000);

    //use set
    startTime = System.nanoTime();
    for (int i = 0; i < 100000; i++) {
        useSet(arr, "A");
    }
    endTime = System.nanoTime();
    duration = endTime - startTime;
    System.out.println("useSet:  " + duration / 1000000);

    //use loop
    startTime = System.nanoTime();
    for (int i = 0; i < 100000; i++) {
        useLoop(arr, "A");
    }
    endTime = System.nanoTime();
    duration = endTime - startTime;
    System.out.println("useLoop:  " + duration / 1000000);

//	    String[] array = {"AB","EF","GH"};
//	    System.out.println(Arrays.binarySearch(array,"EF"));
    //use Arrays.binarySearch()
    startTime = System.nanoTime();
    for (int i = 0; i < 100000; i++) {
        useArraysBinarySearch(arr, "A");
    }
    endTime = System.nanoTime();
    duration = endTime - startTime;
    System.out.println("useArrayBinary:  " + duration / 1000000);}
執行結果:
useList:  13
useSet:  72
useLoop:  5
useArraysBinarySearch:  9

使用一個長度為1k的陣列
String[] arr = new String[1000];
Random s = new Random();for(int i=0; i< 1000; i++){
    arr[i] = String.valueOf(s.nextInt());}
結果:
useList:  112
useSet:  2055
useLoop:  99
useArrayBinary:  12

使用一個長度為10k的陣列
String[] arr = new String[10000];
Random s = new Random();for(int i=0; i< 10000; i++){
    arr[i] = String.valueOf(s.nextInt());}
結果:
useList:  1590
useSet:  23819
useLoop:  1526
useArrayBinary:  12

除了以上幾種以外,Apache Commons類庫中還提供了一個ArrayUtils類,可以使用其contains方法判斷陣列和值的關係。

import org.apache.commons.lang3.ArrayUtils;
public static boolean useArrayUtils(String[] arr, String targetValue) {
    return ArrayUtils.contains(arr,targetValue);}
同樣使用以上幾種長度的陣列進行測試,得出的結果是該方法的效率介於使用集合和使用迴圈判斷之間(有的時候結果甚至比使用迴圈要理想)。

useList:  323
useSet:  3028
useLoop:  141
useArrayBinary:  12
useArrayUtils:  181
-------
useList:  3703
useSet:  35183
useLoop:  3218
useArrayBinary:  14
useArrayUtils:  3125
其實,如果檢視ArrayUtils.contains的原始碼可以發現,他判斷一個元素是否包含在陣列中其實也是使用迴圈判斷的方式。

部分程式碼如下:
    if(array == null) {
        return -1;
    } else {
        if(startIndex < 0) {
            startIndex = 0;
        }
        int i;
        if(objectToFind == null) {
            for(i = startIndex; i < array.length; ++i) {
                if(array[i] == null) {
                    return i;
                }
            }
        } else if(array.getClass().getComponentType().isInstance(objectToFind)) {
            for(i = startIndex; i < array.length; ++i) {
                if(objectToFind.equals(array[i])) {
                    return i;
                }
            }
        }
        return -1;
    }

所以,相比較之下,我更傾向於使用ArrayUtils工具類來進行一些合數祖相關的操作。畢竟他可以讓我少寫很多程式碼(因為自己寫程式碼難免有Bug,畢竟apache提供的開源工具類庫都是經過無數開發者考驗過的),而且,效率上也並不低太多。

10.遍歷Map的四種方法

(來自http://www.cnblogs.com/kristain/articles/2033566.html)

public static void main(String[] args) {
	Map<String, String> map = new HashMap<String, String>();
	map.put("1", "value1");
	map.put("2", "value2");
	map.put("3", "value3");
	  
	//第一種:普遍使用,二次取值
	System.out.println("通過Map.keySet遍歷key和value:");
	for (String key : map.keySet()) {
		System.out.println("key= "+ key + " and value= " + map.get(key));
	}
	  
	//第二種
	System.out.println("通過Map.entrySet使用iterator遍歷key和value:");
	Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
	while (it.hasNext()) {
		Map.Entry<String, String> entry = it.next();
		System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
	}
	  
	//第三種:推薦,尤其是容量大時
	System.out.println("通過Map.entrySet遍歷key和value");
	for (Map.Entry<String, String> entry : map.entrySet()) {
		System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
	}

	//第四種
	System.out.println("通過Map.values()遍歷所有的value,但不能遍歷key");
	for (String v : map.values()) {
		System.out.println("value= " + v);
	}
}

參考:http://blog.csdn.net/luanlouis/article/details/43017071

11.除去字串(String)中的換行字元(\r \n \t):

-------------------------------------------
String hui = "'ab cd" + "\n" + "efg'";
System.out.println("轉換前:"+hui);
hui = hui.replaceAll("\r|\n", "");
System.out.println("轉換後:"+hui);
執行結果:
轉換前:'ab cd
efg'
轉換後:'ab cdefg'

補充:

例2:
System.out.println("\\r 輸出:"+"abc"+"\r"+"abc");
System.out.println("\\n 輸出:"+"abc"+"\n"+"abc");
以上兩句在控制檯輸出的格式是一樣的:
\r輸出:abc
abc
\r輸出:abc
abc

那麼他們有什麼區別呢?
例3:
String hui = "'ab cd" + "\n\r" + "efg'";
System.out.println("轉換前:"+hui);
hui = hui.replaceAll("\r|\n", "");
System.out.println("轉換後:"+hui);
執行結果:
轉換前:'ab cd

efg'
轉換後:'ab cdefg'

可以看出\r表示回車,\n表示另起一行(\r 叫回車 Carriage Return  ;\n 叫新行 New Line)
我們可以再做一個實驗:
String hui = "'ab cd" + "\r\n" + "efg'";
System.out.println("轉換前:"+hui);
hui = hui.replaceAll("\r|\n", "");
System.out.println("轉換後:"+hui);
執行結果:
轉換前:'ab cd
efg'
轉換後:'ab cdefg'

注:
trim()用來去首尾的空格符
\n 換行(\u000a)
\t 水平製表符(\u0009)
\s 空格(\u0008)
\r 回車(\u000d)

12.System.getProperty("屬性名")方法的使用:

(參考自:http://blog.csdn.net/wodewutai17quiet/article/details/68946890)

System.out.println("作業系統的名稱:"+System.getProperty("os.name"));	//Windows 8
System.out.println("作業系統的架構:"+System.getProperty("os.arch"));	//amd64
System.out.println("作業系統的版本:"+System.getProperty("os.version"));	//6.2
System.out.println("Java 執行時環境版本:"+System.getProperty("java.version"));	//1.7.0_25
System.out.println("Java 執行時環境供應商:"+System.getProperty("java.vendor"));	//Oracle Corporation
System.out.println("Java 供應商的 URL:"+System.getProperty("java.vendor.url"));	//http://java.oracle.com/
System.out.println("Java 安裝目錄:"+System.getProperty("java.home"));	//C:\Program Files\Java\jdk1.7.0_25\jre
System.out.println("Java 虛擬機器規範版本:"+System.getProperty("java.vm.specification.version"));	//1.7
System.out.println("Java 虛擬機器規範供應商:"+System.getProperty("java.vm.specification.vendor"));	//Oracle Corporation
System.out.println("Java 虛擬機器規範名稱:"+System.getProperty("java.vm.specification.name"));	//Java Virtual Machine Specification
System.out.println("Java 虛擬機器實現版本:"+System.getProperty("java.vm.version"));	//23.25-b01
System.out.println("Java 虛擬機器實現供應商:"+System.getProperty("java.vm.vendor"));	//Oracle Corporation
System.out.println("Java 虛擬機器實現名稱:"+System.getProperty("java.vm.name"));	//Java HotSpot(TM) 64-Bit Server VM
System.out.println("Java 執行時環境規範版本:"+System.getProperty("java.specification.version"));	//1.7
System.out.println("Java 執行時環境規範供應商:"+System.getProperty("java.specification.vendor"));	//Oracle Corporation
System.out.println("Java 執行時環境規範名稱:"+System.getProperty("java.specification.name"));	//Java Platform API Specification
System.out.println("Java 類格式版本號:"+System.getProperty("java.class.version"));	//51.0
System.out.println("Java 類路徑:"+System.getProperty("java.class.path"));
System.out.println("載入庫時搜尋的路徑列表:"+System.getProperty("java.library.path"));
System.out.println("預設的臨時檔案路徑:"+System.getProperty("java.io.tmpdir"));
System.out.println("要使用的 JIT 編譯器的名稱:"+System.getProperty("java.compiler"));
System.out.println("一個或多個擴充套件目錄的路徑:"+System.getProperty("java.ext.dirs"));
System.out.println("檔案分隔符(在 UNIX 系統中是“/”):"+System.getProperty("file.separator"));
System.out.println("路徑分隔符(在 UNIX 系統中是“:”):"+System.getProperty("path.separator"));
System.out.println("行分隔符(在 UNIX 系統中是“/n”):"+System.getProperty("line.separator"));
System.out.println("使用者的賬戶名稱:"+System.getProperty("user.name"));
System.out.println("使用者的主目錄:"+System.getProperty("user.home"));
System.out.println("使用者的當前工作目錄:"+System.getProperty("user.dir"));

13.獲取昨天,上個星期一,本月開始時間:

    	//昨天
    	Date date=new Date();//取時間
    	Calendar calendar = new GregorianCalendar();
    	calendar.setTime(date);
    	calendar.add(calendar.DATE,-1);//把日期往後增加一天.整數往後推,負數往前移動
    	date=calendar.getTime(); //這個時間就是日期往後推一天的結果
    	SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    	String dateString = formatter.format(date);
    	System.out.println(dateString);
    	
    	//上個星期一
//    	Calendar cal = Calendar.getInstance();
//    	int n = cal.get(Calendar.DAY_OF_WEEK) - 1;
//    	if (n == 0) {
//    	    n = 7;
//    	}
//    	cal.add(Calendar.DATE, -(7 + (n - 1)));// 上週一的日期
//    	Date monday = cal.getTime();
//    	SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
//    	String dateString = formatter.format(monday);
//    	System.out.println(dateString);
    	
    	//本月第一天
//    	Calendar cal_1=Calendar.getInstance();//獲取當前日期 
//    	cal_1.add(Calendar.MONTH, -1);
//    	cal_1.set(Calendar.DAY_OF_MONTH,1);//設定為1號,當前日期既為本月第一天
//    	SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
//    	String firstDay = formatter.format(cal_1.getTime());
//    	System.out.println(firstDay);

參考:https://zhidao.baidu.com/question/523653874220755605.html

		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		Date nowDate = new Date();
		Calendar calendar = Calendar.getInstance();
		calendar.setTime(nowDate);

		calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) - 1);
		Date updateDate5 = calendar.getTime();
		System.out.println(updateDate5.getTime() + "往前推1天的時間=" + sdf.format(updateDate5));
		System.out.println(updateDate5.getTime() / 1000 + "往前推1天的時間=" + sdf.format(updateDate5));
		Long time = 1537845150178L;
		System.out.println(System.currentTimeMillis() - time < 1 * 24 * 3600 * 1000L);

		// 往前推一個月
		calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) - 1);
		Date updateDate2 = calendar.getTime();
		System.out.println("往前推1個月的時間" + sdf.format(updateDate2));
		// 往後推13個月
		calendar.set(Calendar.MONTH, calendar.get(Calendar.MONTH) + 13);
		Date updateDate3 = calendar.getTime();
		System.out.println("往後推13個月的時間=" + sdf.format(updateDate3));
		// 往後推一天
		calendar.set(Calendar.DATE, calendar.get(Calendar.DATE) + 1);
		Date updateDate4 = calendar.getTime();
		System.out.println("往後推1天的時間=" + sdf.format(updateDate4));

執行結果:
1537845735819往前推1天的時間=2018-09-25 11:22:15
1537845735往前推1天的時間=2018-09-25 11:22:15
false
往前推1個月的時間2018-08-25 11:22:15
往後推13個月的時間=2019-09-25 11:22:15
往後推1天的時間=2019-09-26 11:22:15

(1)昨天八點到現在:

    public static void main(String[] args) {  
		Calendar calendar = Calendar.getInstance();
		calendar.set(Calendar.HOUR_OF_DAY,8);
		calendar.set(Calendar.MINUTE,0);
		calendar.set(Calendar.SECOND,0);
		calendar.set(Calendar.MILLISECOND,0);
		calendar.add(Calendar.DAY_OF_YEAR,-1);
		Date date = calendar.getTime();
		SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String startTime = sdf.format(date);
		System.out.println("startTime-->"+startTime);
		SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
		String endTime = sdf1.format(new Date());
		System.out.println("endTime-->"+endTime);
    }

執行結果:
startTime-->2018-10-09 08:00:00
endTime-->2018-10-10 14:28:04

14.概率實現:

(可參考https://www.cnblogs.com/zz-3m23d-begining/p/7767214.html)

public static void main(String[] args) {
    double d = Math.random();//生成一個0~1的隨機數
    if(d<=0.5){
        System.out.println("A");//50%概率
    }else if(d<=0.8){
        System.out.println("B");//30%概率
    }else{
        System.out.println("C");//20%概率
    }
}

15.正則匹配:

	public static void main(String[] args) {
		String line = "6414636447";
		String pattern = "^\\d+$";
		Pattern p = Pattern.compile(pattern);
		Matcher matcher = p.matcher(line);
		if (matcher.matches()) {
			System.out.println(true);
		}
	}

相關推薦

Java程式碼常用功能實現總結(二)

文章目錄 1.如何取得map裡key得最大值: 2.多執行緒寫法樣例: 1.如何取得map裡key得最大值: 方法一: 將Map中的k

Java程式碼常用功能實現總結

目錄 1.獲取當前系統時間: SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//設定日期格式 System.out.prin

java calendar 常用功能總結(SimpleDateFormat 格式化取值)

importjava.text.ParseException; importjava.text.SimpleDateFormat; importjava.util.Calendar; importjava.util.Date; importjava.util.TimeZone; publicclassTest

Java集合排序功能實現分析

需要 基本 eas elong rst length 查看 fin after Java如何實現集合的排序? - 本文以對Student對象集合為例進行排序Java通過Collections.sort(List<Student> stuList)和Collect

Java封裝常用功能

內容: 1.介紹 2.封裝輸入輸出 3.封裝其他功能       1.介紹 Java中的API實在是太長了,讓人敲得很煩,於是我準備把一些常用的功能封裝一下,在Java自有的API上打造一個屬於自己用的比較舒服上手的API,比如說Java中的輸出是System.o

Java常用的API總結

Java API是JDK所提供的使用類,這些類將底層的程式碼給封裝起來了。Object類是java語言中的根類,它所描述的所有方法子類都可以使用,所有類在建立物件的時候,最終找的父類就是Object。在Objec類中,最常見的就是euqals方法和toString方法。equals方法用於比較兩個物

ionic學習(七):問答社群03:登入功能實現 總結

登入功能整整搞了一天,期間各種錯誤不斷,剛接觸ionic,對Angular也不太熟悉,沒正規的學過html,css,js等前端知識。 整理一下流程: 1.製作登入頁面 2.構造登入等待遮罩層和登入錯誤遮罩層 3.通過storge儲存登入的資訊 4.通過判斷是否登入,並顯示相應頁面 備

短連結的java版完整功能實現及ngx_lua版本的簡單實現

短連結 ngx_lua版本 https://github.com/feiyangtianyao/short_url 對lua不熟,只實現了最基本的功能。 java版本 https://gitee.com/xiaoyaofeiyang/short_url 執行sql語句

三維裝箱問題Java程式碼的簡單實現過程(程式碼

  兩年前發了篇關於三維裝箱的日記,許諾過要分享程式碼的,結果一直沒發,後來居然忘記了。一直有人加我QQ來的,這幾年都用微信了,直到最近才發現這個問題,   千萬不要輕易許諾別人什麼,否則事後真的很難兌現,兩年前的欠下的程式碼,今天,還了罷。為了我寫了好久的,腦力不夠了,空

sql常用功能實現

2018年11月03日 09:49:28 蘇泊賽亞人 閱讀數:3 個人分類: 資料庫

File類常用功能實現

1.遞迴 獲取資料夾的大小 在java IO流中 只能直接獲取資料夾的大小 對於資料夾的話 程式碼如下 import java.io.File; import java.util.Scanner; public class Main{ public stat

Java程式碼之JDBC實現資料庫之間定時的表格傳輸(由一個庫讀取到另一個庫)例項,親測有效

package com.openup.system.service.imp;import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import ja

java面試常用問題的總結

1:JDK,JRE,JVM分別是什麼?它們之間有什麼關係?     jdk是Java開發環境,jre是Java執行環境,jvm是Java虛擬機器,jre包含jvm。     2:什麼是環境變數?使用者變數與系統變數有什麼區別?     環境變數相當給系統和使用者程式設定引數的

JAVA開發常用英語單詞總結

platform [ˈplætfɔ:m]n.平臺; 臺; 站臺; 綱領;v.把…放在臺上; 為…設(平)臺; in which case 在這種情況下; 那樣的話; immutable [ɪˈmju:təbl] adj不可改變的 behalf[bɪˈhɑ:f] n.利益; 維護; 支援; facilities

javaJava驗證碼功能實現

一、前言       驗證碼可以說在我們生活中已經非常普遍了,任何一個網站,任何一個App都會有這個功能,但是為啥要有這個呢?如何做才能做出來呢?下面小編會帶領大家一起用java完成一個驗證碼的功能。 二、驗證碼的作用       一般可以防止有人利用機器

java 線上支付功能實現

實現的兩種方法 1 直接與銀行對接:   交易比較安全,適合資金流量比較大的企業,這種方案適合於,每月結算金額百萬以上的.                            但開發工作量比較大,而且銀行會不定期升級交易系統,每個銀行的介面都不同,交納的費用也不低. 2 通過中間公司 間接與銀行對接:  

java程式碼在頁面實現展示pdf檔案

public void findPdf() throws IOException{HttpServletResponse response = ServletActionContext.getResponse();response.setContentType("appli

Qt日誌功能實現總結

1、資訊基本分類:qDebug : 除錯資訊提示qWarning : 一般的警告提示qCritical: 嚴重錯誤提示qFatal : 致命錯誤提示2、如何截獲這些資訊Qt提供了qInstallMsgHandler 方法用來定製訊息發生後如何來處理。qInstallMsgHa

第一講,整數劃分 JAVA 程式碼(分治實現之一)

整數劃分問題相信很多人都做過,題意是這樣的: 將正整數n表示成一系列正整數之和, n=n1+n2+,,,,,+nk(其中n1>=n2>=......>=nk>=1,k>1) 例如:正整數6有如下11種不同的劃分, 6=1+1+1+1+

RecyclerView常用功能全面總結

簡介 RecyclerView可以說是做Android應用開發使用最廣的幾個控制元件之一。它是在Android 5.0版本引入進來的,位於support-v7包中,可以通過在build.gradle中新增如下程式碼將它引入到專案中: implem