StringBuilder和StringBuffer类
简介:可变字符序列,用于构造字符串对象,内部使用自动扩容的数组操作字符串数据。StringBuilder和StringBuffer使相同的API
java.base—>java.lang—>StringBuilder/StringBuffer
StringBuilder的运行效率比StringBuffer高,所以在实际开发中用StringBuilder的场景更多
构造方法
StringBuilder():构造一个空的StringBuilder容器
StringBuilder(String):构造一个空的StringBuilder容器,并添加指定字符串
成员方法
StringBuilder append():将任意数据添加到StringBuilder容器中,返回自身
String toString():将当前StringBuilder容器(对象)转成字符串
package study5.demo;
public class Test7 {
public static void main(String[] args) {
// 测试空参构造
StringBuilder sb = new StringBuilder();
StringBuilder sb2 =sb.append("qwer");
System.out.println("sb:"+sb);
System.out.println("sb2:"+sb2);
System.out.println("——————————");
// 需求:将String类型的“abc”转成StringBuilder类型的对象
StringBuilder sb3 = new StringBuilder("abc");
System.out.println(sb3);
System.out.println("——————————");
// 测试成员方法
// 需求:将三个字符串拼接成一个新的字符串:学java 到传智播客 找小黑
StringBuilder sb4 = new StringBuilder();
sb4.append("学java");
sb4.append("到传智播客");
sb4.append("找小黑");
System.out.println(sb4);
System.out.println("——————————");
String s = sb4.toString();
System.out.println("sb4拼接效果:"+s);
}
}
Date类和Calender类
简介:日期和日历类,用于操作日期相关信息
java.base—>java.util—>Date/Calender
Calender类是一个抽象类,不能用New。可以通过类名点的方法直接调用
构造方法
Date():构造一个日期对象,当前系统时间,精确到毫秒(1秒等于1000毫秒)(获取默认时间,获取批量不重复的数值)
Date(long):构造一个日期对象,时间为自“1970年1月1日00:00:00 GMT起”至指定参数的毫秒数(获取指定时间)
成员方法
long getTime():将日期对象转换成对应时间的毫秒值
static Calender getInstance():根据当前系统时区和语言环境获取日历对象(因为是静态方法,可以通过类名点的方法直接调用,返回值就是Calender类型的数据)
int get(int field):返回给定日历字段的值
void set(int field,int value):将给定的日历字段设置为指定的值
package study5.demo;
import java.util.Date;
public class Test8 {
public static void main(String[] args) {
// 空参构造
Date d = new Date();
System.out.println("当前时间为"+d); //Mon Feb 22 17:01:52 CST 2021
// 获取当前操作系统的毫秒值
long l = d.getTime();
System.out.println(l); //1613984512989
// 创建一个指定的时间
Date da = new Date(1613984512989L); //因为1613984512989是long类型数据,所以后面需要加L
System.out.println("da:"+ da); //da:Mon Feb 22 17:01:52 CST 2021
}
}
package study5.demo;
import java.util.Calendar;
public class Test9 {
public static void main(String[] args) {
// 创建Calender类型的对象
Calendar c = Calendar.getInstance();
System.out.println(c); //java中MONTH(月份)的表示是从0开始的
// 获取年月日的信息
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH); //0-11表示1-12月份
int day = c.get(Calendar.DATE);
System.out.println("年"+year+"月"+month+"日"+day);
System.out.println("——————————");
// 设置指定的时间:2021年4月1日
// c.set(Calendar.YEAR,2022);
// int y = c.get(Calendar.YEAR);
// System.out.println(y+"年"+month+"月"+day+"日"); //年份改变,其他不变
c.set(2022,1,22);
// 重新获取年月日的值
int y = c.get(Calendar.YEAR);
int m = c.get(Calendar.MONTH);
int d = c.get(Calendar.DATE);
System.out.println(y+"年"+m+"月"+d+"日");
}
}
基本类型的包装类
简介:基本数据类型不是对象,所以不能直接调用方法,所以java针对基本类型提供了对应的包装类,以对象的形式来使用(有八种基本数据类型,所以有八种包装类)
java.base—>java.lang—>包装类
byte——>Byte
short——>Short
int——>Integer
long——>Long
char——>Character
float——>Float
double——>Double
boolean——>Boolean
除了int和char特殊之外,其余的都是首字母大写
装箱:基本数据类型转包装类型(对象类型)
拆箱:包装类型(对象类型)转基本类型
成员方法
static 基本类型 parseXxx(String):将字符串类型的数据转换成对应的基本类型(static修饰了,所以可以通过类名点的方式来直接调用)
注意:除了Character类以外其他其中包装类都有parseXxx()方法,
因为如果字符串想转换成char类型的数据,可以通过String类中的方法toCharArray()和charAt()方法
package study5.demo;
//static int praseInt(String):将字符串类型的整数转换成对应的int类型的整数
//注意:除了Character类以外其他其中包装类都有parseXxx()方法,
// 因为如果字符串想转换成char类型的数据,可以通过String类中的方法toCharArray(),charAt()
public class Test10 {
public static void main(String[] args) {
int a = 10; //a属于基本数据类型,不能通过 对象名. 的形式调用方法
// 解决方案:将其转换成对应的包装类(引用类型)即可
// 装箱
Integer i = new Integer(20);
// 拆箱
int n = i.intValue();
System.out.println(n);
System.out.println(i);
// JDK5的新特性,自动拆装箱
Integer t = 20; //装箱
int e = t; //拆箱
System.out.println(t);
System.out.println(e);
// 需求:将字符串类型的“10”,转换成int类型的10
String s = "10";
int num = Integer.parseInt(s);
System.out.println("num:"+num);
System.out.println("num+100:"+(num+100));
}
}