一、包装类
概念
---基本数据类型不是对象,所以就有基本数据类型对应的类,称为包装类
基本数据类型 | 包装类 |
byte | Byte |
boolean | Boolean |
short | Short |
char | Character |
int | Integer |
long | Long |
float | Float |
double | Double |
重点:包装类可以实现字符串和基本数据类型之间的转换
int i = Integer.parseInt("123");
自动装箱和拆箱
---JDK1.5以后引入自动装箱和拆箱
1.自动装箱:valueOf()
例如:Integer i = Integer.valueOf(666);
可以写成: Integer i = 666;
2.自动拆箱:xxxValue()
例如:int j = i.intValue();
可以写成: int j = i;
注:1.Integer类提供了范围为-128~127的静态数组缓存cache,数据在范围之外的都使用new Integer创建新对象
2.对象比较用equals方法
3.作为成员变量int为0,Integer等为null
二、字符串类
引入
---1.String、StringBuffer、StringBuilder是三个字符串相关类。
---2.String不可变字符序列,StringBuffer、StringBuilder可变可变字符序列
---3.StringBuffer线程安全,速度慢;StringBuilder线程不安全,速度快
方法
//String类方法太多,详细的可以去API中查看
public class TestString {
public static void main(String[] args) {
//1.创建String对象
String str = "abCsdfhfgDef";
//2方法
System.out.println(str.length());//长度
System.out.println(str.isEmpty());//判断是否为空
System.out.println(str.startsWith("a"));//判断以*开头
System.out.println(str.endsWith("f"));//判断以*结尾
System.out.println(str.toUpperCase());//转大写
System.out.println(str.toLowerCase());//转小写
System.out.println(str.charAt(3));//取索引为3的字符
System.out.println(str.substring(5,7)); //截取[5,7)
System.out.println(str.substring(7));//截取7以后的字符
System.out.println(str.indexOf("C"));//从前往后的索引
System.out.println(str.lastIndexOf("e"));//从后往前的索引
System.out.println(str.trim());//去除前面和后面的空格
}
}
String类底层简述
---1.String类底层是final修饰的不可变数组:
private final char value[];
---2.JDK9以后char数组变为byte数组,节省空间
StringBuilder类方法
public class TestStringBuilder {
public static void main(String[] args) {
StringBuffer builder = new StringBuffer("123");
builder.append("321");//在末尾追加子串
builder.insert(3,"fgsd");//索引为3处插入
builder.setCharAt(3,'g');//修改对应位置的字符
builder.replace(3,6,"asd");//替换对应位置的字符
builder.deleteCharAt(3);//删除指定位置的字符
builder.reverse();//倒叙
}
}
StringBuildr类底层简述
---1.String类底层是可变数组:char[] value;
默认长度capacity长度为16
length()方法返回字符数组元素的真实个数
capacity()方法返回的是底层数组长度
扩容机制:默认是原来的长度2倍+2
---2.JDK9以后char数组变为byte数组,节省空间
三、日期类
Date类部分方法
public class TestDate {
public static void main(String[] args) {
Date now = new Date();//获取当前的时间
System.out.println(now.toString()); //输出当前的时间
System.out.println(now.toLocaleString());//输出当前的时间
System.out.println(now.getYear()); //年
System.out.println(now.getMonth());//月
System.out.println(now.getDate());//日
System.out.println(now.getHours());//时
System.out.println(now.getMinutes());//分
System.out.println(now.getSeconds());//秒
}
}
DateFormat类方法
public class TestDateFormat {
public static void main(String[] args) {
Date date = new Date();
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str2 = dateFormat.format(date);
System.out.println(str2);
}
}
Calendar类
public class TestCalendar {
public static void main(String[] args) {
//创建Calendar对象
Calendar cal = new GregorianCalendar();
//输出日期中的各个部分
System.out.println(cal.get(Calendar.YEAR));
System.out.println(cal.get(Calendar.MONTH));
System.out.println(cal.get(Calendar.DATE));
System.out.println(cal.get(Calendar.HOUR));
System.out.println(cal.get(Calendar.MINUTE));
System.out.println(cal.get(Calendar.SECOND));
System.out.println(cal.get(Calendar.MONTH));
System.out.println(cal.get(Calendar.DAY_OF_WEEK));
//输出Calendar对象
System.out.println(cal);
Date date = new Date();
//Date ---->Calendar
cal.setTime(date);
//Calendar---->Date
Date now2 = cal.getTime();
}
}
JDK8的新的日期类
public class TestNewDate {
public static void main(String[] args) {
//Instant类时间
Instant instant = Instant.now();
//LocalDate获得日期
LocalDate localDate = LocalDate.now();
//LocalTime时刻
LocalTime localTime = LocalTime.now();
//LocalDateTime具体时间
LocalDateTime localDateTime = LocalDateTime.now();
//DateTimeFormatter
DateTimeFormatter dftr = DateTimeFormatter.ofPattern("yyyy年MM月dd日");
}
}
Math类
public class TestMath {
public static void main(String[] args) {
System.out.println(Math.PI);//圆周率PI
System.out.println(Math.round(3.14));//大约,取整四舍五入
System.out.println(Math.ceil(3.14));//向上取整4
System.out.println(Math.floor(3.14));//向下取整3
System.out.println(Math.sqrt(64));//开平方
System.out.println(Math.pow(2,5));//幂
System.out.println(Math.abs(-5));//绝对值
System.out.println(Math.max(30,40));//最大值
System.out.println(Math.min(30,40));//最小值
System.out.println(Math.random());//随机[0.0,1.0)
}
}
Random类
public class TestRandom {
public static void main(String[] args) {
Random rand = new Random();
System.out.println(rand.nextInt());//int范围的随机数
System.out.println(rand.nextInt(10)); //[0,10)的数
}
}
枚举enum
public enum Gender {
男,女
}