一 字符串
String
创建String对象的三种方法:
- String s1="123";
- String s2=new String();
- String s3=new String("ab");
String 对象创建后则不能被修改,是不可变的,所谓的修改其实是创建了新的对象,所指向的内存空间不同。
String s1="123";
String s4="123";
//多次出现的字符常量,JAVA编译程序只创建一个,所以返回true
String s2=new String("123");
String s3=new String("123");//每次 new 一个字符串就是产生一个新的对象
System.out.println(s1==s4);
//s2和s1是不同的对象,所以返回false
System.out.println(s2==s1);
//s2和s3是不同的对象,所以返回false
System.out.println(s3==s2);
String s1="123";
String s2="I love"+s1;
String s3="I love"+s1;
// s1是变量,s3在运行时才知道具体值,所以s2和s3是不同的对象
System.out.println(s3==s2);
可以存储字符串的类
- String
- StringBuilder
- StringBuffer
使用String时,当频繁操作字符串时,就会额外产生很多临时变量。使用 StringBuilder 或 StringBuffer 就可以避免这个问题。
- StringBuilder 和StringBuffer ,它们基本相似,不同之处,StringBuffer 是线程安全的,而 StringBuilder 则没有实现线程安全功能,所以性能略高。因此一般情况下,如果需要创建一个内容可变的字符串对象,应优先考虑使用 StringBuilder 类。
StringBuilder s1=new StringBuilder();
StringBuilder s2=new StringBuilder("test");
StringBuilder

二 包装类
为了让基本数据类型也具备对象的特性, Java 为每个基本数据类型都提供了一个包装类,这样我们就可以像操作对象那样来操作基本数据类型。
包装类主要提供了两大类方法:
- 将本类型和其他基本类型进行转换的方法
- 将字符串和本类型及包装类互相转换的方法
Integer包装类的常用方法

手动装箱与自动装箱
int i=10;
Integer x=new Integer(i);//手动装箱
Integer y=i;//自动装箱
Integer x1=new Integer(8);
int y1=x1;//自动拆箱为int类型
int y2=x1.intValue();//手动装箱
基本类型转换为字符串有三种方法
- 使用包装类的 toString() 方法
- 使用String类的 valueOf() 方法
- 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
int c=10;
String str1=Integer.toString(c);
String str2=String.valueOf(c);
String str3=c+"";
将字符串转换成基本类型有两种方法
1. 调用包装类的 parseXxx 静态方法
2. 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
String str="8";
int d=Integer.parseInt(str);
int e=Integer.valueOf(str);
三 日期类
SimpleDateFormat 类
可以使用 SimpleDateFormat 来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可将文本转换为日期。
//将日期转为指定格式的文本
Date d=new Date();
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String today=sdf.format(d);
//将文本转换为日期
String time="2020年8月27日 09:42:04";
SimpleDateFormat sdf2=new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d2=sdf2.parse(time);
调用 SimpleDateFormat 对象的 parse() 方法时可能会出现转换异常,即 ParseException ,因此需要进行异常处理。
Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理。
Calendar 类
java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();
Calendar c=Calendar.getInstance();
System.out.println(c);
int year=c.get(Calendar.YEAR);//Calendar.Year 等为 Calendar 类中定义的静态常量。
int month=c.get(Calendar.MONTH)+1;//获取月份,0表示一月份
int day=c.get(Calendar.DAY_OF_MONTH);//获取日期
int hour=c.get(Calendar.HOUR_OF_DAY);//获取小时
int minute=c.get(Calendar.MINUTE);
int second=c.get(Calendar.SECOND);
System.out.println(year+"-"+month+"-"+day+" "+hour+":"+minute+":"+second);
Calendar 类提供了 getTime() 方法,用来获取 Date 对象,完成 Calendar 和 Date 的转换,还可通过 getTimeInMillis() 方法,获取此 Calendar 的时间值,以毫秒为单位。
Date date=c.getTime();//将Calendar对象转换为Date对象
System.out.println(date);
Long time2=c.getTimeInMillis();//获取当前毫秒数
System.out.println(time2);
从 JDK 1.1 开始,应该使用 Calendar 类实现日期和时间字段之间转换,使用 DateFormat 类来格式化和分析日期字符串。因为Date的设计具有"千年虫"以及"时区"的问题,所以Date中的大部分方法已经不建议使用了,它们都被java.util.Calendar类所取代
四 Math类
Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();

|