天天看點

8 - java - 不知道啥标題合适

  1. java.util.Date和java.sql.Date

    前者是普通的日期格式,後者隻包含日期而沒有時間格式,用于Sql語句

    在JDBC中,此處省略加載驅動和打開連接配接的語句,下面是準備的SQL語句:

    String str = “INSERT INTO table_name VALUES (?, ?, ?)”

    而當table_name表的某一列(第三列)是日期類型時,就需要傳入參數的類型是java.sql.Date

下面代碼

将輸入的yyyy-MM-dd格式的字元串轉換為java.util.Date

再将java.util.Date類型轉換成java.sql.Date類型(用于JDBC的sql語句)

SimpleDateFormat sf = new SimpleDateFormat("yyyy-MM-dd");
String inputDate = "2020-05-20";
java.util.Date utilDate = sf.parse(inputDate);
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime());
           
  1. 使用檔案流完成檔案的拷貝操作:
InputStream is = null;
OutputStream os = null;

try {
	is = new FileInputStream(D:\\A.txt);
	os = new FileOutputStream(F:\\A.txt);
	byte[] buffer = new byte[1024 * 10];
	while(true) {
		int length = is.read(buffer);
		if(length == -1) {
			break;
		}
		os.write(buffer, 0, length);
	}
	catch(){}
	finally{}
           
  1. Map的添加與周遊
Map<String, String> map = new HashMap<>();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("key3", "value3");

for(Entry<String,String> et : map.entrySet()){
	System.out.println("key = " + et.getKey() + ", value = " + et.getValue());
}
           
  1. List的添加與擷取
List<String> list = new ArrayList<String>();
String msg1 = "第一條消息";
String msg2 = "第二條消息";
String msg3 = "第三條消息";
list.add(msg1);
list.add(msg2);
list.add(msg3);
System.out.println(list.get(0));
           

5.關于String

String str = "oyasumi";
str.length(); //長度
str.substring(0,4); //oya
str.charAt(0); //o
str.matches(String regex = "^[a-zA-Z]*$");
           
  1. 求長度是方法,要加括号的
  2. substring的兩個參數是startIndex和endIndex

    索引從零開始,substring截取出來的是從第startIndex開始,至endIndex-1位字元,傳回新的字元串,要記得去接收。如例子中,如果兩個參數做差為4,則截取的字元串為3位

  3. charAt好像也沒啥好說的,需要的時候知道有這個方法可以用就行,傳回指定位置的字元,傳回值類型顯然是char
  4. matches方法的參數是一個String類型的正規表達式,正則這裡是目前為止唯一一個讓我有後悔在校沒好好學習的知識點,準備後面單獨開一個篇文,把工作中每次遇到的奇奇怪怪的正則以及建構表達式的過程中的思維都寫進去。說回方法,若str符合正則所表達的格式,則傳回true,否則傳回false。
  5. StringBuilder和StringBuffer

    第一次碰到StringBuilder,去搜了一下其和String以及StringBuffer的差別

首先最先接觸到的String類在建立對象後,該對象中的字元串是不可變的直至該對象被銷毀;而StringBuilder與StringBuffer都是可變類。

由于String是可變類,适合在需要被共享的場合中使用,當一個字元串經常被修改時,最好使用StringBuffer實作。如果用String儲存一個經常被修改的字元串,該字元串每次修改時都會建立新的無用的對象,這些無用的對象會被垃圾回收器回收,會影響程式的性能,不建議這麼做。

上述這段加粗傾斜字型的文本來自知乎👇

https://zhuanlan.zhihu.com/p/62780312

連結中也有說到,StringBuilder線程不安全,而StringBuffer線程安全。

對我而言有點超綱,先放在這

這次需要記住的隻是StringBuilder的三個方法。

StringBuilder sb = new StringBuilder();
sb.append("123").append("987").append("546"); //123987546
sb.insert(3,"666"); //123666987546
sb.toString();
           

append()有點神似list.add(),将參數字元串粘接到目前串的末尾

而insert()則是在參數對應的索引處,插入字元串

toString()顯然是轉換成String類型啦

最後吐槽一句

工作日用c#,用visual studio,F10是debug

晚上或者周末用java,用eclipse,F6是debug

人都暈了又懶得改鍵

等這兩天手頭任務完了再複盤把這次業務中新學到的C#中的類和方法從業務中抽離出來再整理好

以上,晚安

繼續閱讀