华杉研发九学习日记16
一,SimpleDateFormat类
SimpleDateFormat主要是实现字符串和Date之间的互转
格式化(format): Date类型对象------->String类型: String format(Date date)
解析(parsey: String类型时间---->Date类型: Date parse(String source)
java
// 2024-07-23 10:53:23 星期二
// yyyy-MM-dd HH:mm:ss E 这些字母有对应的意义
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E");
// format()方法
// 把Date类对象里面对应的日期信息按照格式填充(对应字母。。。)
System.out.println(sdf.format(new Date()));
测试结果:2024年07月23日 10:59:28 星期二
二,包装类
包装类是对java中的8中基本数据类型进行类的封装。
优点:
1.包装类为基本数据类型提供了方法的调用
2.包装类主要实现基本数据类型、字符串类型、包装类三者之间的相互转换
Number类是Byte、Short、Integer、Long、Float、Double的父类。它是一个抽象类,内部定义了一些抽象方法,这些抽象方法由子类负责实现。
Character和Boolean的父类不是Number类而是Object类。
因为Byte、Short、Integer、Long、Float、Double都继承与Number,则其中的很多方法都是类似,我们在此只需要使用Integer来操作即可。
2.1 Integer类
Integer是int的包装类,父类为Number,要实现其中所有的抽象方法
构造器:
java
// 构造器 -- int 转为Integer对象
Integer in1 = new Integer(111);
System.out.println(in1);
// -- 把String转为Integer对象
String s ="45";
Integer in2 = new Integer(s);
System.out.println(in2+2);
方法:
java
// 方法 intValue()
int a = in1.intValue(); // 值,Integer对象转为int值
System.out.println(a);
// in1->字符串 toString()
String s1 = in1.toString();
System.out.println(s1+1);
重点(主推):自动装箱----自动拆箱
转换:
int --> Integer
java
// int --> Integer
int a = 111;
Integer in1 = new Integer(a); //构造器方法
System.out.println(in1);
Integer in2 = Integer.valueOf(a); //valueOf
System.out.println(in2);
// 自动装箱 --JDK 1.5,可以自动装箱
Integer in3 = 123;
System.out.println(in3);
Integer --> int
java
// Integer --> int
int a2=in1.intValue(); // intValue
System.out.println(a2);
// 自动拆箱 -- java中系统可以自动把包装类拆箱为基本数据类型
int a3=in2;
System.out.println(a3);
Integer --> String
java
// Integer --> String
Integer in4 = new Integer(23); //构造器
String s1=in4.toString(); //toString
System.out.println(s1);
String --> Integer
java
// String -- > Integer
String s2="34";
Integer in5=new Integer(s2); //构造器
Integer in6=Integer.valueOf(s2); //valueOf
System.out.println(in5+11);
System.out.println(in6+22);
Integer in7 = Integer.valueOf("1000");
System.out.println(in7);
String --> int
java
// String --> int
String s3="2003";
int year=Integer.parseInt(s3); // parseInt
System.out.println(2024-year);
int --> String
java
// int --> String
String.valueOf(year); // valueOf
System.out.println(year+2);
String s5 = Integer.toString(year); //利用包装类的toString
System.out.println(s5);
String s6 = year+""; // 利用拼接
System.out.println(s6);
2.2 Character类
Character类char的包装类,是对char的封装,Character类继承于Object类。
方法:
java
char ch = 'A';
System.out.println(Character.isDigit(ch));// 是否数字
System.out.println(Character.isLetter(ch)); // 是否字母
System.out.println(Character.isLetterOrDigit(ch));// 是字母活着数字
System.out.println(Character.isUpperCase(ch));// 是否大写字母
System.out.println(Character.isLowerCase(ch));// 是否小写字母
System.out.println(Character.isSpaceChar(ch));// 是否空格字符
二,BigInteger
BigInteger类可以让超过Integer范围的数据进行运算,通常在对数字计算比较大的行业中应用的多一些。
特点:构造器穿的参数要用双引号括起来
java
//用来保存超出Integer范围的数据
BigInteger in=new BigInteger("10");
System.out.println(in);
BigInteger in2 = new BigInteger("3");
System.out.println(in.add(in2)); //加法
System.out.println(in.subtract(in2)); // 减法
System.out.println(in.multiply(in2)); // 乘法
System.out.println(in.divide(in2)); // 除法
BigInteger[] arr = in.divideAndRemainder(in2); // 取商和余数
// 返回值用一个数组来保存
System.out.println(arr[0]);
System.out.println(arr[1]);
三,BigDecimal类
对于基本数据类型中double的精度不够时,可以用到BigDecimal类
java
System.out.println(2.0-1.1);
//上面的方法得到的值为0.8999999999999999
BigDecimal b1 = new BigDecimal("10");
BigDecimal b2 = new BigDecimal("3");
System.out.println(b1.subtract(b2));// 减法
System.out.println(b1.add(b2)); // 加法
System.out.println(b1.multiply(b2));// 乘法
// 四舍五入保留两位小数
System.out.println(b1.divide(b2, 2,BigDecimal.ROUND_HALF_UP)); //BigDecimal.ROUND_HALF_UP规则 取就近,即四舍五入
四,DecimalFormat类
Decima1Format是格式为十进制数的NumberFormat的具体子类。它具有各
种功能,旨在使任何地区的数字解析和格式化
格式化:
字符 | 含义 |
---|---|
0 | 数字 |
# | 数字 |
. | 小数点 |
, | 逗号 |
% | 百分比 |
\u2030 | 千分比 |
java
DecimalFormat df = new DecimalFormat("#,###.##");//保留两位小数点
//DecimalFormat df = new DecimalFormat("#0#.0#");错误的,在整数或小数上不能混用
double num = 1234.5678;
String fm = df.format(num);
System.out.println(fm);
// 百分比
DecimalFormat df2 = new DecimalFormat("0%");
double dd = 2;
String dd2 = df2.format(dd);
System.out.println(dd2);
// 数字转换并用Number类对象接收
Number p = df.parse("23.45");
System.out.println(p);
五,System类
java
System.out.println("你好");
System.err.println("我是错误信息");// 生成顺序不稳定
System.out.println(System.currentTimeMillis()); // 当前时间毫秒(到基准时间)
System.exit(0); // 退出虚拟机 系统
System.gc(); // 垃圾回收机制 一般不需要手动开启,系统自动启动