Java常用类总结
一:主要内容
二:字符串相关类
1 package TestString; 2 3 import org.junit.Test; 4 5 public class TestString { 6 /* 7 * String:代表不可变的字符序列。底层使用char[]存放。 8 * String 是final的。 9 */ 10 @Test 11 public void test1(){ 12 String str1 = "aa"; 13 String str2 = "aa"; 14 String str3 = new String("aa");//在堆里面创建一块新地址,存储的value是指定常量池里面aa的地址引用 15 System.out.println(str1==str2);//true 指向常量池同一块地址 16 System.out.println(str1==str3);//false 两者地址不同 17 System.out.println(str1.equals(str3));//true 比较的是内容 18 String str4 = "123"; 19 String str5 = str1+str4; 20 String str6 = "aa"+"123"; 21 String str7 = "aa123"; 22 System.out.println(str5 == str7);//false 含有变量的表达式相当于在堆里面产生了一个新地址 23 System.out.println(str7 == str6);//true 指向同一块地址 24 System.out.println(str6 == str5.intern());//true 取得是地址里面存储的引用地址和str6指向的是同一块内存 25 System.out.println(str5 == str6.intern());//false 对str6无效 26 Person p1 = new Person("AAA"); 27 Person p2 = new Person("AAA"); 28 System.out.println(p1.name == p2.name);//true 29 } 30 /* 31 * public int length() public char charAt(int 32 * index):返回在指定index位置的字符。index从0开始 public boolean equals(Object 33 * anObject):比较两个字符串是否相等。相等返回true。否则返回false public int compareTo(String 34 * anotherString) public int indexOf(String s):返回s字符串在当前字符串中首次出现的位置。若没有,返回-1 35 * public int indexOf(String s ,int 36 * startpoint):返回s字符串从当前字符串startpoint位置开始的,首次出现的位置。 public int 37 * lastIndexOf(String s):返回s字符串最后一次在当前字符串中出现的位置。若无,返回-1 public int 38 * lastIndexOf(String s ,int startpoint) public boolean startsWith(String 39 * prefix):判断当前字符串是否以prefix开始。 public boolean endsWith(String 40 * suffix):判断当前字符串是否以suffix结束。 public boolean regionMatches(int 41 * firstStart,String other,int otherStart ,int length): 42 * 判断当前字符串从firstStart开始的子串与另一个字符串other从otherStart开始,length长度的字串是否equals 43 */ 44 @Test 45 public void test2(){ 46 String str = "qwqeqdqwd"; 47 System.out.println(str.length()); 48 System.out.println(str.charAt(0)); 49 System.out.println(str.compareTo("aaaaaa")); 50 System.out.println(str.indexOf("w",2)); 51 System.out.println(str.lastIndexOf("w")); 52 System.out.println(str.startsWith("q")); 53 System.out.println(str.regionMatches(1,"wqe",0,"qd".length())); 54 } 55 56 /* 57 * public String substring(int startpoint) 58 public String substring(int start,int end):返回从start开始到end结束的一个左闭右开的子串。start可以从0开始的。 59 pubic String replace(char oldChar,char newChar) 60 public String replaceAll(String old,String new) 61 public String trim():去除当前字符串中首尾出现的空格,若有多个,就去除多个。 62 public String concat(String str):连接当前字符串与str 63 public String[] split(String regex):按照regex将当前字符串拆分,拆分为多个字符串,整体返回值为String[] 64 65 */ 66 @Test 67 public void test3(){ 68 String str1 = "北京尚硅谷教育北京"; 69 String str2 = "上海尚硅谷教育"; 70 String str3 = str1.substring(2, 5); 71 System.out.println(str3); 72 System.out.println(str1); 73 String str4 = str1.replace("尚硅谷","尚学堂"); 74 System.out.println(str4); 75 System.out.println("127.0.0.1".replaceAll("\\d","*"));//replaceAll支持正则表达式的方式进行替换 76 System.out.println(" 123 4 ".trim()); 77 System.out.println("aa".concat("bb")); 78 String ip = "127.0.0.1"; 79 String[] array = ip.split("\\.");//split是按照正则表达式的方式进行切割 80 for (int i = 0; i < array.length; i++) { 81 System.out.print(array[i]+" "); 82 } 83 } 84 /* 85 * 1.字符串 与基本数据类型、包装类之间转换 86 * ①字符串 --->基本数据类型、包装类:调用相应的包装类的parseXxx(String str); 87 * ①基本数据类型、包装类--->字符串:调用字符串的重载的valueOf()方法 88 * 89 * 2.字符串与字节数组间的转换 90 * ①字符串---->字节数组:调用字符串的getBytes() 91 * ②字节数组---->字符串:调用字符串的构造器 92 * 93 * 3.字符串与字符数组间的转换 94 * ①字符串---->字符数组:调用字符串的toCharArray(); 95 * ②字符数组---->字符串:调用字符串的构造器 96 */ 97 @Test 98 public void test4(){ 99 //1.字符串 与基本数据类型、包装类之间转换 100 String str1 = "123"; 101 int i = Integer.parseInt(str1); 102 System.out.println(Boolean.parseBoolean("true")); 103 System.out.println(i); 104 String str2 = i + ""; 105 str2 = String.valueOf(i); 106 System.out.println(str2); 107 System.out.println(); 108 //2.字符串与字节数组间的转换 109 String str = "abcd123"; 110 byte[] b = str.getBytes(); 111 for(int j = 0;j < b.length;j++){ 112 System.out.println((char)b[j]); 113 } 114 String str3 = new String(b); 115 System.out.println(str3); 116 System.out.println(); 117 //3.字符串与字符数组间的转换 118 String str4 = "abc123中国人"; 119 char[] c = str4.toCharArray(); 120 for(int j = 0;j < c.length;j++){ 121 System.out.println(c[j]); 122 } 123 String str5 = new String(c); 124 System.out.println(str5); 125 } 126 } 127 class Person{ 128 String name; 129 Person(String name){ 130 this.name = name; 131 } 132 }
三:StringBuilder和StringBuffer
1 package TestString; 2 3 import org.junit.Test; 4 5 public class TestStringBuffer { 6 /* 7 * 对比String,StringBuffer,StringBuilder三者在添加上的效率: 8 * 效率从高到底: StringBuilder > StringBuffer > String 9 * StringBuffer支持在原地址上进行内容的修改,是线程安全的,StringBuilder不是线程安全的,但是速度很快 10 */ 11 public static void main(String[] args) { 12 String text = ""; 13 long startTime = 0L; 14 long endTime = 0L; 15 StringBuffer buffer = new StringBuffer(""); 16 StringBuilder builder = new StringBuilder(""); 17 18 startTime = System.currentTimeMillis(); 19 for(int i = 0;i<20000;i++){ 20 buffer.append(String.valueOf(i));} 21 endTime = System.currentTimeMillis(); 22 System.out.println("StringBuffer的执行时间:"+(endTime-startTime)); 23 24 startTime = System.currentTimeMillis(); 25 for(int i = 0;i<20000;i++){ 26 builder.append(String.valueOf(i));} 27 endTime = System.currentTimeMillis(); 28 System.out.println("StringBuilder的执行时间:"+(endTime-startTime)); 29 30 startTime = System.currentTimeMillis(); 31 for(int i = 0;i<20000;i++){ 32 text = text + i;} 33 endTime = System.currentTimeMillis(); 34 System.out.println("String的执行时间:"+(endTime-startTime)); 35 } 36 /* 37 * java.lang.StringBuffer和StringBuilder:代表可变的字符序列,可以对字符串内容进行增删 38 * StringBuffer append(String s), StringBuffer append(int n) , 39 StringBuffer append(Object o) , StringBuffer append(char n), 40 StringBuffer append(long n), StringBuffer append(boolean n), 41 StringBuffer insert(int index, String str) 42 public StringBuffer reverse() :反转此StringBuffer 43 StringBuffer delete(int startIndex, int endIndex) 44 public char charAt(int n ) 45 public void setCharAt(int n ,char ch) 46 StringBuffer replace( int startIndex ,int endIndex, String str) 47 public int indexOf(String str) 48 public String substring(int start,int end) 49 public int length() 50 总结:添加:append() 删除:delete(int i,int j) 修改:setCharAt(int index,char ch) 查 charAt(int n); 51 插入:insert(int index,String str) 反转:reverse() 长度:length() 52 */ 53 @Test 54 public void test(){ 55 StringBuffer sb = new StringBuffer(); 56 sb.append("a"); 57 sb.append(1); 58 sb.insert(1,"T"); 59 System.out.println(sb); 60 System.out.println(sb.reverse()); 61 System.out.println(sb.delete(1,2)); 62 System.out.println(sb.charAt(1)); 63 sb.setCharAt(1,'s');//修改1处的字符 64 System.out.println(sb); 65 System.out.println(sb.append("wasd110120")); 66 System.out.println(sb.indexOf("wasd")); 67 System.out.println(sb.substring(2)); 68 } 69 }
四:日期类
1 package TestString; 2 3 import org.junit.Test; 4 5 import java.text.ParseException; 6 import java.text.SimpleDateFormat; 7 import java.util.Calendar; 8 import java.util.Date; 9 10 /* 11 * 与时间相关的类: 12 * 1.System 类下的currentTimeMillis(); 13 * 2.Date类:java.util.Date 14 * 如何创建其实例;其下的方法:toString()、getTime() 15 * (以及其子类java.sql.Date) 16 * 3.SimpleDateFormat类 17 * 4.Calendar类 18 */ 19 public class TestDate { 20 @Test 21 public void test(){//测试Date类,java.util.Date不易于国际化 22 java.sql.Date date = new java.sql.Date(15342515326235L);//java.sql里面的Date是与数据库表里的date格式保持一致 23 System.out.println(date); 24 Date date1 = new Date();//创建一个Date实例 25 System.out.println(date1.toString());//Thu Nov 19 14:59:58 CST 2020 26 System.out.println(date1.getTime());//1605769198595 27 Date d2 = new Date(1399879144434L); 28 System.out.println(d2);//Mon May 12 15:19:04 CST 2014 29 } 30 /* 31 * java.text.SimpleDateFormat类易于国际化 32 * 格式化:日期--->文本 使用SimpleDateFormat的format()方法 33 * 解析:文本--->日期 使用SimpleDateFormat的parse()方法 34 */ 35 @Test 36 public void test2() throws ParseException { 37 SimpleDateFormat simpleDateFormat = new SimpleDateFormat();//格式化处理 38 String format = simpleDateFormat.format(new Date()); 39 System.out.println(format);//20-11-19 下午3:03 40 SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yy-MM-dd HH:mm:ss"); 41 String format1 = simpleDateFormat1.format(new Date());//按照指定的格式输出 42 System.out.println(format1);//20-11-19 15:07:51 43 //解析 44 Date date1 = simpleDateFormat.parse("20-11-19 下午3:07");//只能用对应格式进行解析,如果使用simpleDateFormat1就会报错。 45 System.out.println(date1); 46 } 47 /* 48 * “三天打渔两天晒网” 1990-01-01 XXXX-XX-XX 打渔?晒网? 49 */ 50 //返回date1与date2之间的天数,date1早于date2 51 public int getDays(String date1,String date2) throws ParseException{ 52 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); 53 Date d1 = sdf.parse(date1); 54 Date d2 = sdf.parse(date2); 55 long milliTime = d2.getTime()-d1.getTime(); 56 return (int)milliTime/1000/3600/24 + 1; 57 58 } 59 60 @Test 61 public void test3() throws ParseException{ 62 String str1 = "1990-01-01"; 63 String str2 = "1990-01-06"; 64 int dates = getDays(str1,str2); 65 66 if(dates % 5 == 0 || dates % 5 == 4){ 67 System.out.println("晒网"); 68 }else{ 69 System.out.println("打渔"); 70 } 71 } 72 //日历:Calendar类 get()/add()/set()/Date getTime()/setTime(Date d) 73 @Test 74 public void test4() 75 { 76 Calendar c = Calendar.getInstance(); 77 int day = c.get(Calendar.DAY_OF_MONTH); 78 System.out.println(day); 79 c.add(Calendar.DAY_OF_MONTH,-2); 80 int day1 = c.get(Calendar.DAY_OF_MONTH); 81 System.out.println(day1); 82 c.add(Calendar.DAY_OF_MONTH,+2); 83 int day2 = c.get(Calendar.DAY_OF_MONTH); 84 System.out.println(day2); 85 c.set(Calendar.DAY_OF_MONTH,23); 86 Date d = c.getTime(); 87 System.out.println(d); 88 } 89 }
五:Math类
六:BigInteger,BigDecimal类
1 package TestString; 2 3 import org.junit.Test; 4 5 import java.math.BigDecimal; 6 import java.math.BigInteger; 7 8 public class TestBigDecimal { 9 @Test 10 public void testBigInteger(){ 11 BigInteger bi = new BigInteger("123456848889874465"); 12 System.out.println(bi); 13 BigDecimal bd = new BigDecimal("5646546"); 14 System.out.println(bd); 15 BigDecimal bd1 = new BigDecimal("11"); 16 System.out.println(bd.divide(bd1,BigDecimal.ROUND_HALF_UP));//向上取整 17 System.out.println(bd.divide(bd1,15,BigDecimal.ROUND_HALF_UP));//向上取整,保留15位小数 18 } 19 }
JDBC
package JDBC; //这是工具类: import java.sql.*; public class JdbcUtils { static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver"; static final String DB_url = "jdbc:mysql://localhost:3306/student?characterEncoding=utf-8&serverTimezone=UTC"; static final String USER = "root"; static final String PASSWORD = "root"; public static void main(String[] args) throws ClassNotFoundException, SQLException { Class.forName(JDBC_DRIVER); Connection connection = DriverManager.getConnection(DB_url, USER, PASSWORD); Statement statement = connection.createStatement(); String sql = "select * from student"; ResultSet resultSet = statement.executeQuery(sql); while (resultSet.next()){ String id = resultSet.getString("id"); String age = resultSet.getString("age"); String name = resultSet.getString("name"); String sex = resultSet.getString("sex"); System.out.println(id+age+name+sex); } resultSet.close(); statement.close(); connection.close(); } }
作者:你的雷哥
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。