• 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();
    
        }
    }
  • 相关阅读:
    将代码托管到github服务器之SSH验证
    将代码托管到github服务器之HTTPS验证
    git的基本介绍和使用
    iOS之UITableView组头组尾视图/标题悬停
    iOS事件传递->处理->响应
    NSRunLoop
    Podfile使用说明
    cocoapods安装
    block
    自定义UIBarButtonItem
  • 原文地址:https://www.cnblogs.com/henuliulei/p/14006172.html
Copyright © 2020-2023  润新知