华杉研发九学习日记16 SimpleDateFormat类 包装类 BigDecimal类 DecimalFormat类 System类

华杉研发九学习日记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();    //  垃圾回收机制  一般不需要手动开启,系统自动启动
相关推荐
wn5312 分钟前
【Go - 类型断言】
服务器·开发语言·后端·golang
试行7 分钟前
Android实现自定义下拉列表绑定数据
android·java
茜茜西西CeCe13 分钟前
移动技术开发:简单计算器界面
java·gitee·安卓·android-studio·移动技术开发·原生安卓开发
Hello-Mr.Wang14 分钟前
vue3中开发引导页的方法
开发语言·前端·javascript
救救孩子把17 分钟前
Java基础之IO流
java·开发语言
WG_1718 分钟前
C++多态
开发语言·c++·面试
小菜yh19 分钟前
关于Redis
java·数据库·spring boot·redis·spring·缓存
宇卿.25 分钟前
Java键盘输入语句
java·开发语言
浅念同学25 分钟前
算法.图论-并查集上
java·算法·图论
Amo Xiang35 分钟前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python