1

包装类

基本数据类型:如 int、float、double、boolean、char 等。它们并不具备对象的特性,比如不能调用方法。为了让基本数据类型也能具有对象的特性,java为每个基本数据类型提供了包装类。

基本类型和包装类之间的对应关系:

clipboard.png

Integer

Integer 包装类的构造方法:

clipboard.png

int a = 10;
Integer m = new Integer(22);
Integer n = new Integer("100");
  • Integer包装类的方法

clipboard.png

        // 定义int类型变量,值为86
        int score1 = 86; 

        // 创建Integer包装类对象,表示变量score1的值
        Integer score2=new Integer(score1);

        // 将Integer包装类转换为double类型
        double score3=score2.doubleValue();

        // 将Integer包装类转换为float类型
        float score4=score2.floatValue();

        // 将Integer包装类转换为int类型
        int score5 =score2.intValue();

        System.out.println("Integer包装类:" + score2);
        System.out.println("double类型:" + score3);
        System.out.println("float类型:" + score4);
        System.out.println("int类型:" + score5);

Java 中基本类型和包装类之间的转换

基本类型和包装类之间经常需要互相转换

在 JDK1.5 引入自动装箱和拆箱的机制后,包装类和基本类型之间的转换就更加轻松便利了

装箱

把【基本类型】转换成【包装类】,使其具有对象的性质,又可分为【手动装箱】和【自动装箱】。

int i = 10;
Integer x = new Integer(i); // 手动包装
Integer y = i; // 自动包装

拆箱

和装箱相反,把包装类对象转换成基本类型的值,又可分为手动拆箱和自动拆箱.

Integer j = new Integer(9);
int m = j.intValue();  // 手动拆箱
int n = j; // 自动拆箱
        // 定义double类型变量
        double a = 91.5;
        
         // 手动装箱
        Double b =  new Double(a);      
        
        // 自动装箱
        Double c = a;

        System.out.println("装箱后的结果为:" + b + "和" + c);
        
        // 定义一个Double包装类对象,值为8
        Double d = new Double(87.0);
        
        // 手动拆箱
        double e =  d.doubleValue();
        
        // 自动拆箱
        double f = d;
        
        System.out.println("拆箱后的结果为:" + e + "和" + f);

Java 中基本类型和字符串之间的转换

基本数据 => 字符串

  • 使用包装类的toString()方法
  • 使用String类的valueOf()
  • 用一个空字符串加上基本类型,得到的就是基本类型数据对应的字符串
int c = 10;
String str1 = Integer.toString(c);
String str2 = String.valueOf(c);
String str3 = c + "";

字符串 => 基本数据

  • 调用包装类的 parseXxx 静态方法
  • 调用包装类的 valueOf() 方法转换为基本类型的包装类,会自动拆箱
String str = "8";
int d = Integer.parseInt(str);
int e = Integer.valueOf(str);
double m = 78.5;
        //将基本类型转换为字符串
        String str1 = String.valueOf(m);                             ;
       //String str1 = String.toString(m); 
        System.out.println("m 转换为String型后与整数20的求和结果为: "+(str1+20));
        
        String str = "180.20";
        // 将字符串转换为基本类型
        Double a =  Double.valueOf(str)                      ;
        //Double a = Double.parseDouble(str);
    
        System.out.println("str 转换为double型后与整数20的求和结果为: "+(a+20));
ps: 其他基本类型与字符串的相互转化这里不再一一列出,方法都类似

Date

在程序开发中,经常需要处理日期和时间的相关数据,此时我们可以使用 java.util 包中的 Date 类。

clipboard.png

使用 Date 类的默认无参构造方法创建出的对象就代表当前时间,我们可以直接输出 Date 对象显示当前的时间,显示的结果如下:

clipboard.png

  • 按指定的格式进行显示,如 2014-06-11 09:22:30 ,那该怎么做呢
        Date d5 = new Date();
        System.out.println(d5); // Fri Aug 17 22:03:51 CST 2018
        
        SimpleDateFormat d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String today = d1.format(d5); // 2018-08-18 07:29:38
        System.out.println(today);
        
        
        // 使用format()方法将日期转换为指定格式的文本
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        
        // 创建Date对象,表示当前时间
        Date now =new Date();
        
        // 调用format()方法,将日期转换为字符串并输出
        System.out.println(sdf1.format(now));  //2018年08月18日 07时29分38秒
        System.out.println(sdf2.format(now));  //2018/08/18 07:29
        System.out.println(sdf3.format(now));  //2018-08-18 07:29:38
  • 使用 parse() 方法将文本转换为日期
        // 使用parse()方法将文本转换为日期
        String d = "2018年08月10日 10:29:38";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        
         // 调用parse()方法,将字符串转换为日期
        Date date = sdf.parse(d);
        
        System.out.println(date);
  • 完整代码
package myDate;
import java.text.SimpleDateFormat;  //  使用 Date 类时需要导入 java.util 包,使用 SimpleDateFormat 时需要导入 java.text 包
import java.text.ParseException;  // 调用 SimpleDateFormat 对象的 parse() 方法时可能会出现转换异常,即 ParseException ,因此需要进行异常处理
import java.util.Date;

public class test {

    public static void main(String[] args) throws ParseException{
        // TODO Auto-generated method stub
        Date d5 = new Date();
        System.out.println(d5); // Fri Aug 17 22:03:51 CST 2018
        
        SimpleDateFormat d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String today = d1.format(d5); // 2018-08-18 07:29:38
        System.out.println(today);
        
        
        // 使用format()方法将日期转换为指定格式的文本
        SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日 HH时mm分ss秒");
        SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy/MM/dd HH:mm");
        SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        
        // 创建Date对象,表示当前时间
        Date now =new Date();
        
        // 调用format()方法,将日期转换为字符串并输出
        System.out.println(sdf1.format(now));  //2018年08月18日 07时29分38秒
        System.out.println(sdf2.format(now));  //2018/08/18 07:29
        System.out.println(sdf3.format(now));  //2018-08-18 07:29:38

        // 使用parse()方法将文本转换为日期
        String d = "2018年08月10日 10:29:38";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
        
         // 调用parse()方法,将字符串转换为日期
        Date date = sdf.parse(d);
        
        System.out.println(date);
    }

}

Calendar类

Date 类最主要的作用就是获得当前时间,同时这个类里面也具有设置时间以及一些其他的功能,但是由于本身设计的问题,这些方法却遭到众多批评,不建议使用,更推荐使用 Calendar 类进行时间和日期的处理。
package com;
import java.util.Calendar;

public class test {
    
    
    public static void main(String [] args) {
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;
        int day = c.get(Calendar.DAY_OF_MONTH);
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);
        int second = c.get(Calendar.SECOND);
        
        System.out.println("当前时间:"+ year +"年"+month+"月"+day+"日 "+hour+": "+ minute+": "+second+"");
    }
    
}
package com;
import java.util.Date;
import java.util.Calendar;

public class test {
    
    
    public static void main(String [] args) {
        Calendar c = Calendar.getInstance();
        int year = c.get(Calendar.YEAR);
        int month = c.get(Calendar.MONTH)+1;
        int day = c.get(Calendar.DAY_OF_MONTH);
        int hour = c.get(Calendar.HOUR_OF_DAY);
        int minute = c.get(Calendar.MINUTE);
        int second = c.get(Calendar.SECOND);
        
        System.out.println("当前时间:"+ year +"年"+month+"月"+day+"日 "+hour+": "+ minute+": "+second+"");
        
        Date date = c.getTime(); // 将calendar对象转换为date对象
        System.out.println(date);
        Long time = c.getTimeInMillis(); //获得当前毫秒数
        System.out.println(time);// 1534553739595
    }
    
}

Math类

使用 Math 类操作数据

Math 类位于 java.lang 包中,包含用于执行基本数学运算的方法, Math 类的所有方法都是静态方法,所以使用该类中的方法时,可以直接使用类名.方法名,如: Math.round();

clipboard.png

package com.math;

public class test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        double a = 12.81;
        int b = (int)a;  // 强制类型转换
        System.out.println("强制类型转换"+b);
        long c = Math.round(a);
        System.out.println("四舍五入"+c);
        double d = Math.floor(a);
        System.out.println("向下取整floor"+d);
        double e = Math.ceil(a);
        System.out.println("向上取整ceil"+e);
        double    x = Math.random();
        System.out.println("随机数[0,1)"+x);
        int f = (int) (Math.random() * 99);
        System.out.println("随机数[0,99)"+f);
        
        
        
        // 定义一个整型数组,长度为10
        int[] nums = new int [10];
        
        //通过循环给数组赋值
        for (int i = 0; i < nums.length; i++) {
            // 产生10以内的随机数
            int n = (int) (Math.random() * 10);
            
            nums[i] = n;// 为元素赋值
        }
        
        // 使用foreach循环输出数组中的元素
        for ( int num : nums     ) {
            System.out.print(num + " ");
        }
    }

}

clipboard.png


Meils
1.6k 声望157 粉丝

前端开发实践者