Java互联网架构软件工程师——第一阶段
Day12–API 2
提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
前言
提示:以下是本篇文章正文内容,下面案例可供参考
一、StringBuilder/StringBuffer
1.1 概述
优化 字符串拼接
1.2 常用方法
append()
1.3 案例
代码如下(示例):
public class Test01 {
public static void main(String[] args) {
method();//用+拼接
method2();//用工具
}
// 用工具拼接
private static void method2() {
String s = "dasbjgdhasbbidb";
//把字符串拼接10000次,并打印结果
// 1.创建对象
StringBuilder s1 = new StringBuilder();
long start = System.currentTimeMillis();//计时开始
for (int i = 0; i <10000; i++) {
// 调用拼接方法
s1.append(s1);
}
long end = System.currentTimeMillis();//计时结束
System.out.println(end-start);
}
//用 + 凭借
public static void method(){
String s = "dasbjgdhasbbidb";
//把字符串拼接10000次,并打印结果
String s2="";
long start = System.currentTimeMillis();//计时开始
for (int i = 0; i <10000; i++) {
s2=s2+i;
}
long end = System.currentTimeMillis();//计时结束
System.out.println(end-start);
}
}
二、包装类
2.1 概述
专门用来给 基本类型 提供丰富的功能
基本类型 byte short int long float double boolean char
包装类型 Byte Short Integer Long Float Double Boolean Character
2.2 Number
是 数字类型的包装类的父类
子类有:Byte Short Integer Long Float Double
常用的功能:把包装类型 变成 基本类型
2.3 Integer
把 基本类型 变成包装类型
使用包装类提供的各种方法
–创建对象
Integer(int value)
–常见方法
int intValue()
static int parseInt(String s)
static Integer valueOf(int i)
2.4 案例
代码如下(示例):
// 测试 包装类
public class Test02 {
public static void main(String[] args) {
//创建 Integer对象 --- 自动装箱
//把12从基本类型变成Integer类型,用Integer的各种方法
Integer s = new Integer(12);
Integer s2 = Integer.valueOf(5);
// 调用方法
//把包装类 变成 基本类型 -- 自动拆箱 -- 参与运算
int a = s.intValue();
System.out.println(a);
// 把字符串的整形 解析成 int 整形
int x =Integer.parseInt("100");
System.out.println(x);
Double b = new Double(12.5);
double c = b.byteValue();
System.out.println(c);
}
}
三、日期类Date
3.1 概述
专门 对日期 操作的工具类
3.2 创建对象
new Date():封装的是系统当前时间的毫秒值
3.3 常用方法
getTime():取内部毫秒值
setTime():存取内部毫秒值
getMonth():获取当前月份
getHours():获取当前小时
3.4 案例
代码如下(示例):
//测试 Date 工具类
public class Test03 {
public static void main(String[] args) {
//1.创建对象
Date s = new Date();
//调用方法
System.out.println(s);//输出当前时间
System.out.println(s.getTime());//输出1970-1-1至今的毫秒值
System.out.println(s.getMonth()+1);//获取当前月份,获取月份是要+1
System.out.println(s.getHours());//获取当前小时
System.out.println(s.toString());
System.out.println(s.clone());
}
}
四、日期工具SimpleDateFormat
4.1 概述
专门用来把两种类型的日期数据 互转
String -> Date
Date -> String
4.2 创建对象
new SimpleDateFormat(格式)
格式:yyyy-MM-dd HH:mm:ss
4.3 常用方法
Date parse(String text)用来String -> Date
String format(Date date)用来Date -> String
4.4 案例
代码如下(示例):
//测试日期格式化工具类
public class Test04 {
public static void main(String[] args)
throws ParseException {
Method();//互转
method2();// 计算出生到现在活了几天
}
private static void method2()
throws ParseException {
//接受 输入的出生日期
System.out.println("请输入你的出生日期(yyyy-MM-dd):");
String x = new Scanner(System.in).nextLine();
//使用工具类
SimpleDateFormat x2 = new SimpleDateFormat("yyyy-MM-dd");
Date x3 = x2.parse(x);
// 计算天数
long start=x3.getTime();//出生的毫秒值
long now = System.currentTimeMillis();//当前的毫秒值
System.out.println("您在世界上生存了"+(now-start)/1000/60/60/24+"天");
}
private static void Method()
throws ParseException {
//创建对象 --- 指定日期的格式
// y表示年,M表示月,的表示日
SimpleDateFormat s =
new SimpleDateFormat("yyyy-MM-dd");
//调用方法 String ---> Date
Date a = s.parse("1997-01-01");
//好处是:使用Date的getXxx()
System.out.println(a.getYear()+"年");
System.out.println(a.getMonth()+1+"月");
}
}
五、BigDecimal/BigInteger
5.1 概述
BigDecimal专门用来解决java里小数运算不精确的问题
BigInteger专门用来解决超大型的整数运算
5.2 创建对象
BigDecimal(double val)//有坑,,,
BigDecimal(String val)//推荐!!!!
BigDecimal.valueOf(2);
5.3 常用方法
加法:BigDecimal add(BigDecimal augend)
减法:BigDecimal subtract(BigDecimal subtrahend)
乘法:BigDecimal multiply(BigDecimal multiplicand)
除法:BigDecimal divide(BigDecimal divisor)
5.4 案例
代码如下(示例):
//测试 BigInteger
public class Test05 {
public static void main(String[] args) {
//接受用户输入两个小数,做+-*/的运算
method2();
}
private static void method2() {
System.out.println("请输入两个小数:");
double a = new Scanner(System.in).nextDouble();
double b = new Scanner(System.in).nextDouble();
//创建对象
// 构造方法,double 类型不能用,更不精确
// 用String 类型的构造方法 --- double-->String
//方式1:String.valueOf(a)
//方式2: a+""
BigDecimal bd1 =new BigDecimal(a+"");
BigDecimal bd2 = new BigDecimal(b+"");
System.out.println(bd1.add(bd2));//加
System.out.println(bd1.subtract(bd2));//减
System.out.println(bd1.multiply(bd2));//乘
//divide(1,2,3)1--想除谁就出谁,2--保留几位,3--舍入方式
BigDecimal bd3 = bd1.divide(bd2,3,BigDecimal.ROUND_CEILING);//除
System.out.println(bd3);
}
}