zoukankan      html  css  js  c++  java
  • 对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 }
  • 相关阅读:
    浏览器阻止window.open的解决方案
    汇总前端最最常用的JS代码片段
    检测是否是微信浏览器
    添加标签
    如何去掉textarea右下角的灰色角标?
    移动WEB前端开发资源整合
    图片文字水平居中(移动端)
    文本形式访客计数器
    如何处理加括号的四则混合运算表达式——基于二叉树的实现(Eclipse平台 Java版)
    深拷贝,浅拷贝
  • 原文地址:https://www.cnblogs.com/yumu77/p/13817695.html
Copyright © 2011-2022 走看看