- 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());
- 使用文件流完成文件的拷贝操作:
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{}
- 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());
}
- 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]*$");
-
求长度是方法,要加括号的
-
substring的两个参数是startIndex和endIndex
索引从零开始,substring截取出来的是从第startIndex开始,至endIndex-1位字符,返回新的字符串,要记得去接收。如例子中,如果两个参数做差为4,则截取的字符串为3位 -
charAt好像也没啥好说的,需要的时候知道有这个方法可以用就行,返回指定位置的字符,返回值类型显然是char
-
matches方法的参数是一个String类型的正则表达式,正则这里是目前为止唯一一个让我有后悔在校没好好学习的知识点,准备后面单独开一个篇文,把工作中每次遇到的奇奇怪怪的正则以及构建表达式的过程中的思维都写进去。说回方法,若str符合正则所表达的格式,则返回true,否则返回false。
-
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#中的类和方法从业务中抽离出来再整理好
以上,晚安