Java学习笔记 第五章 常用类
JAVA学习笔记第五章
5.常用类
5.1Integer
valueOf方法的底层
5.2Date
Calendar
练习:
package calendar.code;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Scanner;
/**
* @Author:wrr
* @Date:2021/5/19 - 05 - 19 - 11:50 上午
* @Description:code_train
*/
public class DateShow {
public static void main(String[] args) {
Calendar cal = new GregorianCalendar();
Scanner sc = new Scanner(System.in);
System.out.println("请输入你想要查看的日期:(提示请按照例如2019-3-7的格式)");
try{
String StrData = sc.next();
java.sql.Date date = java.sql.Date.valueOf(StrData);
cal.setTime(date);
System.out.println("日 一 二 三 四 五 六");
//System.out.println(date);
//cal.get(Calendar.DAY_OF_WEEK); //这周的第几天
int Day_Month = cal.get(Calendar.DAY_OF_MONTH);
//System.out.println(cal.get(Calendar.DAY_OF_MONTH)); //这个月的第几天
//System.out.println(cal.getActualMaximum(Calendar.DATE)); //这个月的总天数
//找到这个月1号是星期几
int flag = 0;
int nowDay = cal.get(Calendar.DAY_OF_MONTH); //今天的日期
cal.set(Calendar.DATE,1); //日期调整为本月的1号
int num = cal.get(Calendar.DAY_OF_WEEK); //1号前的空格
for(int i=1;i<num;i++){
System.out.print('\t');
flag++;
}
for(int i=1; i<=cal.getActualMaximum(Calendar.DATE);i++){
System.out.print(i);
if(i==nowDay){
System.out.print('*');
}
flag++;
if(flag % 7 == 0){
System.out.print('\n');
}else{
System.out.print('\t');
}
}
}catch (Exception e){
System.out.println(e);
}
}
}
结果:
5.3Math
直接使用,不用导包
构造器私有化,不能随便创建对象
5.4String
![image-20210520150229803](../Library/Application Support/typora-user-images/image-20210520150229803.png)
5.4.1equals方法源码
5.4.2compareTo源码
5.4.3字符串常用方法
![image-20210520151554695](../Library/Application Support/typora-user-images/image-20210520151554695.png)
5.4.4字符串内存分析
【2】直接生成字符串:
【3】new关键字创建对象
开辟两块内存空间(字符串常量池的"abc"和堆中开辟的空间)
【4】含有变量的字符串
5.4.5字符串的分类
扩容
SyringBuilder常用方法
StringBuffer源码,同样也是实现AbstractStringBuilder
使用的方法和StringBuilder一样