一、包装类
- 针对八种基本数据类型,相应的引用类型——包装类
- boolean—Boolean;char—Character;byte—Byte;short—Short;int—Integer;long—Long;float—Float;double—Double;
- 包装类与基本数据类型相互转换,直接转,底层已经帮助实现;
- 包装类与String互相转换,Integer.toString ,StringvalueOf(Integer),Interger+"";
- Interger.valueOf(String),Integer.parseInt(String),new Integer(String);
二、String类
- String s="olderhard",String s=new String("olderhard");
- String 是 final类型的!!!,所以它改,肯定是新的。
- String的常用方法
- String可以串行化,属性有 final char[] value,String是final类
- equals,equalslgnoreCase,length,indexOf,lastIndexOf,substring(l,r),trim,charAt(i),toUpperCase,toLowerCase,concat,replace,split,compareTo,toCharArray,format;
- char[] c=s.toCharArray();
- String p=s.substring(s.begin(),s.end());
- String p=String.format("%s %d",name,age);
三、StringBuffer类
- StringBuffer 代表可变字符序列,可以对字符串内容进行增删,很多方法与String相同,但StringBuffer是可变长度的,StringBuffer 是一个容器。
- StringBuffer的对象可以串行化,父类中属性有 char[] value,StringBuffer是final类,已同步,线程安全;
四、StringBuilder类
- 几乎跟StringBuffer相同,不过是未同步,效率最高;
- String、StringBuffer 、StringBuilder的选择
- 1.如果字符串存在大量的修改操作,一般使用StringBuffer或StringBuilder
- 2.如果字符串存在大量的修改操作,并在单线程的情况下,使用 StringBuffer
- 3.如果字符串存在大量的修改操作,并在多线程的情况下,使用 StringBuider
- 4.如果我们字符串很少修改,被多个对象引用,使用 String,比如配置信息等
五、Math类
- Math的方法都是静态的方法,可以直接使用,不用创建对象
- 随机数: int ans=(int)(a+Math.random()*(b-a+1)); //范围[a,b]
- 向上取整,向下取整:ceil,floor;
六、Arrays类
- Arrays里面包含一系列静态方法,用于管理或操作数组,比如排序和搜索 (使用的对象是类,也可以是自定义的类)
- Arrays.toString(a);
- Arrays.sort()
-
Integer[] a={0,2,3,54,6}; System.out.println(Arrays.toString(a)); Integer[] b=Arrays.copyOf(a,a.length); Arrays.fill(a,1); Arrays.sort(books, new Comparator<Book>() { //自定义比较方法,特重要! @Override public int compare(Book o1, Book o2) { return 1; } });
- copyOf()、fill()、equals、asList
七、System类
- 跟系统相关的类
- System.exit(0)
- System.currentTimeMillis() //返回当前时间距离1970-1-1 00:00的毫秒数
八、BigInterger 和 BigDecimal 类
- BigInteger 适合保存比较大的整型;
- BigDecimal 适合保存精度更高的浮点型(小数)
- 不过对于这两个类的数,不能直接进行运算,得调用这两个类的方法哦!
九、日期类
- 1. Date类:精确到毫秒,代表特定的瞬间,第一代
- 这里的Date是指的是在java.util包下的Date
- Date date=new Date();
- System.out.println(date); //系统当前时间,默认输出格式:Tue Jul 30 11:34:54 CST 2024
- 创建 SimpleDateForma 对象,可以指定相应格式(特定的)
- SimpleDateFormat s = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss E");
- System.out.println(s.format(date)); //输出:2024年07月30日 11:43:27 周二
- Date d=s.parse(s.format(date)); //也能将规范的格式,转回来
- 2.Calendar类:日历,第二代
- 抽象类,构造器是private,通过getInstance()获取实例对象,提供大量的方法和字段
- Calendar calendar = Calendar.getInstance();
- System.out.println(calendar.get(Calendar.YEAR)); //返回字段信息
- 3.第三代 (补充Date和Calendar的不足)
- LocalDate(日期) ,LocalTime(时间) ,LocalDateTime(日期时间);
- LocalDate b= LocalDate.now(); LocalTime c= LocalTime.now(); LocalDateTime a =LocalDateTime.now();
- DateTimeFormatter d=DateTimeFormatter.ofPattern("yyyy年MM月dd日 HH小时mm分钟ss秒");
- System.out.println(d.format(a)); //格式化LocalDateTime 时间
- Instant(时间戳,类似Date)
- Instant i =Instant.now();