对JAVA 包装类,日期类,数字类,随机数,枚举的学习

对JAVA 包装类,日期类,数字类,随机数,枚举的学习

1、八种基本数据类型对应的包装类。

1.1、什么是自动装箱和自动拆箱,代码怎么写?
  Integer x = 100;    // x里面并不是保存100,保存的是100这个对象的内存地址。
  Integer y = 100;
  System.out.println(x == y); // true

  Integer x = 128;
  Integer y = 128;
  System.out.println(x == y); // false

1.2、Integer类常用方法。
  Integer.valueOf()
  Integer.parseInt("123")
  Integer.parseInt("中文") : NumberFormatException

1.3、Integer String int三种类型互相转换。

 1 package demo1;
 2 
 3 import org.junit.Test;
 4 
 5 /**
 6  * 包装类:8种基本数据类型对应类
 7  * 基本数据类型、包装类和String类型的相互转换
 8  *
 9  */
10 public class Test1 {
11     
12     @Test
13     public void test(){
14         
15         //1.基本数据类型和包装类转换
16         //装箱:把基本数据类型转成包装类
17         //拆箱:把包装类转成基本数据类型
18         int a=10;
19         Integer b=a;//把基本数据类型转成了包装类
20         System.out.println(b);
21         
22         Integer c=20;
23         int d=c;//把包装类转成了基本数据类型
24         System.out.println(d);
25         
26         //2、基本数据类型、包装类和String之间转换
27         //把int类型转成String
28         //第一种
29         int num=30;
30         String str=num+"";
31         System.out.println(str);
32         
33         //第二种
34         double d1=30;//转成谁就去谁里面找方法,如果转成基本数据类型就去对应的包装类里面找方法
35         String str1=String.valueOf(d1);
36         
37         //把String转成int.  每个包装类都会有parsexxx()方法
38         String str2="123";
39         int num1=Integer.parseInt(str2);
40         System.out.println(num1);
41         
42         
43     }
44 
45 }



2、日期类
2.1、获取系统当前时间
  Date d = new Date();
2.2、日期格式化:Date --> String
  yyyy-MM-dd HH:mm:ss SSS
  SimpleDateFormat sdf = new SimpleDate("yyyy-MM-dd HH:mm:ss SSS");
  String s = sdf.format(new Date());
2.3、String --> Date
  SimpleDateFormat sdf = new SimpleDate("yyyy-MM-dd HH:mm:ss");
  Date d = sdf.parse("2008-08-08 08:08:08");
2.4、获取毫秒数
  long begin = System.currentTimeMillis();
  Date d = new Date(begin - 1000 * 60 * 60 * 24);

 1 package demo1;
 2 
 3 import java.text.ParseException;
 4 import java.text.SimpleDateFormat;
 5 import java.util.Calendar;
 6 import java.util.Date;
 7 
 8 public class TestDate {
 9 
10     public static void main(String[] args) throws ParseException {
11         
12         //date:获取当前系统时间
13         Date date=new Date();
14         System.out.println(date);//年-月-日  
15         
16         //SimpleDateFormat:对日期进行格式化  调用format方法
17         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
18         String date1=sdf.format(date);
19         System.out.println(date1);
20         
21         
22         Calendar c=Calendar.getInstance();//创建了一个日历对象
23         //设置
24 //        c.set(2020, 9, 29, 9, 10, 21);
25         //获取年
26         int y=c.get(Calendar.YEAR);
27         //获取月  0-11
28         int month=c.get(Calendar.MONTH)+1;
29         //获取日
30         int day=c.get(Calendar.DAY_OF_MONTH);
31         //获取时
32         int h=c.get(Calendar.HOUR_OF_DAY);
33         //获取分
34         int m=c.get(Calendar.MINUTE);
35         //获取秒
36         int s=c.get(Calendar.SECOND);
37         System.out.println(y+"-"+month+"-"+day+" "+h+":"+m+":"+s);
38 
39         //日期字符串转换为Date类型  注意格式一致 java
40         String time="2020-10-8 15:40:15 333";
41         SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
42         Date time1 = sdf2.parse(time);
43         System.out.println(time1);
44         System.out.println("-------------------");
45         //获取自1970年 1月1号到现在的总毫秒值
46         long nowTime = System.currentTimeMillis();
47         System.out.println(nowTime);
48         
49         long begin = System.currentTimeMillis();
50         print();
51         long end = System.currentTimeMillis();
52         System.out.println("方法耗时"+(end-begin)+"毫秒");
53     }
54     //需求:统计一个方法执行所需的毫秒值
55     public static void print(){
56         for(int i=0;i<1000;i++){
57             System.out.println("i="+i);
58             
59         }
60         
61         
62     System.out.println("---------");    
63     //获取昨天此时的时间
64     Date time2 = new Date(System.currentTimeMillis()-1000*60*60*24);
65     SimpleDateFormat sdf2=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss SSS");
66      String ye = sdf2.format(time2);
67      System.out.println("昨天的此时时间为"+ye);
68     }
69     
70     
71 
72 }

3、数字类
3.1、DecimalFormat数字格式化
  ###,###.## 表示加入千分位,保留两个小数。
  ###,###.0000 表示加入千分位,保留4个小数,不够补0

 1 package number;
 2 
 3 import java.text.DecimalFormat;
 4 
 5 /**
 6  * 数字格式化
 7  * java.text.DecimalFormat;代表专门负责数字格式化
 8  * DecimalFormat df=new DecimalFormat("###,###.##");
 9  * @author ASUS
10  *
11  */
12 public class DecimalFormatTest01 {
13 /* # 代表任意数字
14  * , 代表千分位
15  * . 代表小数点
16  * 0 代表不够时补0
17  */
18     public static void main(String[] args) {
19 
20         DecimalFormat df=new DecimalFormat("###,###.##");
21         String format = df.format(123213.2312);
22         System.out.println(format);
23         
24 
25         DecimalFormat df1=new DecimalFormat("###,###.0000");
26         String format1 = df1.format(123213.22);
27         System.out.println(format1);
28     }
29 
30 }


3.2、BigDecimal
  财务软件中通常使用BigDecimal

  

 1 package number;
 2 
 3 import java.math.BigDecimal;
 4 
 5 /**
 6  * 属于大数据  java.math.BigDecimal; 适合财务软件
 7  * @author ASUS
 8  *
 9  */
10 public class BigDecimalTest01 {
11 
12     public static void main(String[] args) {
13         BigDecimal v1=new BigDecimal(100);
14         BigDecimal v2=new BigDecimal(200);
15         
16         BigDecimal v3=v1.add(v2);
17         System.out.println(v3);
18     
19     }
20 
21 }

4、随机数
4.1、怎么产生int类型随机数。
Random r = new Random();
int i = r.nextInt();
4.2、怎么产生某个范围之内的int类型随机数。
Random r = new Random();
int i = r.nextInt(101); // 产生[0-100]的随机数。

 1 package random;
 2 
 3 import java.util.Random;
 4 
 5 /**
 6  * 生成随机数
 7  * @author ASUS
 8  * 案例:生成1到100之内的5个随机数,存入数组
 9  *
10  */
11 public class RandomTest01 {
12 
13     public static void main(String[] args) {
14         //创建随机数对象
15 //        Random random = new Random();
16 //        //产生int 范围内的随机数
17 //        int num1=random.nextInt();
18 //        System.out.println(num1);
19 //        
20 //        //产生0-100之间的随机数
21 //        int num2 = random.nextInt(101);//不包括101
22 //        System.out.println(num2);
23         
24         int [] arr= new int[5];
25         for (int i=0;i<arr.length;i++){
26             arr[i]=-1;
27         }
28         int index=0;
29         Random r = new Random();
30         while(index<arr.length){
31             
32         
33         int num = r.nextInt(101);
34         if(!contains(arr,num)){
35             arr[index]=num;
36             index++;
37         }
38     }
39         //遍历
40         for(int i=0;i<arr.length;i++){
41             
42             System.out.println(arr[i]);
43         }
44         
45     }
46 
47     private static boolean contains(int arr[],int key) {
48         for(int i=0;i<arr.length;i++){
49             if(arr[i]==key){
50                 return true;
51             }
52         }
53         return false;
54         
55     
56 }
57 }

5、枚举

5.1、枚举是一种引用数据类型。
5.2、枚举编译之后也是class文件。
5.3、枚举类型怎么定义?
 enum 枚举类型名{
   枚举值,枚举值2,枚举值3
  }
5.4、当一个方法执行结果超过两种情况,并且是一枚一枚可以列举出来
的时候,建议返回值类型设计为枚举类型。

 

 1 package Enum;
 2 /**
 3  * 枚举
 4  * +-
 5  * @author ASUS
 6  *
 7  */
 8 public class EnumTest01 {
 9 
10     public static void main(String[] args) {
11     Result r=divide(10, 4);
12     System.out.println(r==Result.SUCCESS?"计算成功":"计算失败");
13     }
14  public static Result divide(int a,int b){
15      try{
16          int c=a/b;
17          return Result.SUCCESS;
18          
19      }catch(Exception e){
20          return Result.FAIL;
21      }
22  }
23  
24  enum Result{
25      SUCCESS,FAIL
26  }
27 }
原文地址:https://www.cnblogs.com/yumu77/p/13817695.html