Java高级API常用类

包装类

就是把基本数据类型包装成对象,可以使用对象的属性和方法

基本数据类型包装类型
byteByte
shortShort
charCharacter
intInteger
longLong
floatFloat
doubleDouble
booleanBoolean

装箱和拆箱

装箱的概念:就是把基本数据类型转换成包装类型

Integer i=10;

  • 手动装箱
    方式一:通过包装类的构造方法
    包装类型 对象名=new 包装类型(基本类型的值)
    方式二:通过包装类的方法实现
    包装类型 对象名=包装类型.valueOf(基本类型的值)

  • 自动装箱
    Integer i=10;
    包装类型 对象名=基本类型的值;
    :自动装箱的底层实现:通过手动装箱的方式二 。
    拆箱:就是把包装类型转换成基本数据类型

  • 手动拆箱
    使用包装类的方法实现
    基本类型 变量名= 包装类型 .基本类型value();

  • 自动拆箱
    基本类型 变量名= 包装类型的对象;
    // lnteger 的valueOf()使用一个设计模式:享元设让模式
    // 所以valueOf的参数值在-128~127范围内,
    // 始终使用的共享的元素,地址都是一样的范围以外都是构造方法创建,
    // new一次就是一个新地址,==结果始终false
    :由于自动装箱底层也是使用的valueOf(),所有自动装箱也满足该规则
    **equals()**方法被包装类重写过,比较的是值

package com.m.demo;

public class test {

	public static void main(String[] args) {
		Integer i=10;
		Integer j=10;
	    System.out.println(i==j);//true
	    
	    Integer m=128;
		Integer n=128;
	    System.out.println(m==n);//false
	    
	    Integer k=new Integer(10);
		Integer q=new Integer(10);
	    System.out.println(k==q);//false
	    
		//对象的比较:==比较的是地址值
//	    equals比较的是内容
//	    Integer在[-128,127]直间用==比较,true说明地址值一样
//	 超过这个范围,创建新对象 
//	    lnteger 的valueOf()使用一个设计模式:享元设让模式
//	    所以valueOf的参数值在-128~127范围内,
//	    始终使用的共享的元素,地址都是一样的范围以外都是构造方法创建,
//	    new一次就是一个新地址,==结果始终false

	}

}

在这里插入图片描述

基本数据类型和String的转换

  • 基本数据类型转换为String
    方式一:
    基本数据类型+“”
    方式二:
    使用包装类的方法:包装类型.toString(基本数据类型的值);

  • String 转换为基本数据类型
    基本数据类型 变量名=包装类型.parse基本数据类型(String类型的值);

  • String转换为包装类型
    方法一:包装类型 对象名=包装类型.valueOf(String类型的值);
    方法二:包装类型 对象名=new 包装类型 (String类型的值);
    在这里插入图片描述

package com.m.demo;

import java.util.InputMismatchException;
import java.util.Scanner;

public class Counter {

	public static void main(String[] args)  {
		try {
			Scanner s=new Scanner(System.in);
			System.out.println("请输入a 的值");
			String a=s.next();
			System.out.println("请输入b 的值");
			String b=s.next();
			int num1=Integer.parseInt(a);
			int num2=Integer.parseInt(b);
			
			System.out.println("a/b="+(num1/num2));
		} catch (NumberFormatException e) {
			System.out.println("格式转换错误");
			e.printStackTrace();
		}catch (InputMismatchException e) {
			System.out.println("输入问题");
			e.printStackTrace();
		}catch (Exception e) {
			
			e.printStackTrace();
		}
		
	}

}

Math

进行数学计算的类。该类中方法全是静态方法,不需要创建Math的对象,直接调用方法

  • Math.ceil();向上取整
  • Math.floor();向下取整
  • Math.max();两个数的最大值
  • Math.pow();某个数的几次幂
  • Math.random()
    求随机小数:0~1之间的随机小数,包括0,不包括1。[0,1)
System.out.println((int)(Math.random()*10));

求[0,N)之间的随机整数的规则:;(int)(Math.random()*N))

System.out.println((int)(Math.random()*9+1));

求[M,N)之间的随机整数的规则:;(int)(Math.random()*(N-M)+M))
求[M,N]之间的随机整数的规则:;Math.ceil((Math.random()*(N-M)+M)))

  • Math.round():四舍五入整数

Random类

该类用来生成随机数,该类中没有静态方法,所以需要先创建对象,才能使用。

  • .nextBoolean();随机生成Boolean类型的值
  • .nextInt();
  • .nextInt(int n);随机生成0到n随机整数,包含0,不包含n
    在这里插入图片描述
package com.m.demo;

import java.util.Arrays;
import java.util.Random;

public class test3 {

	public static void main(String[] args) {
		int [] nums=new int[7];
		Random r=new Random();
		for(int i=0;i<nums.length-1;i++) {
			nums[i]=r.nextInt(33)+1;
		}
		nums[nums.length-1]=r.nextInt(16)+1;
		System.out.println(Arrays.toString(nums));
		for(int item:nums) {
			if(item>0&&item<10) {
				System.out.println("0"+item);
			}else {
				System.out.println(item);
			}
		}
	}

}

在这里插入图片描述

日期处理

  • Date:日期类操作
//Date()
Date d=new Date()
System.out.print(d);//获取当前时间
d.getTime();//1977年0时0秒到现在的毫秒值
  • 格式化日期:SimpleDateFormat类(需要创建对象)
    用来格式化日期,让日期的显示更加人性化
		Date d=new Date();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分钟ss秒 E");
		String s=sdf.format(d);
		System.out.println(s);

Calendar日历类操作

  1. 创建Calendar日历对象;Calendar c=Calendar.getInstance();
  2. 把日历对象转为Date;Date d=cal.getTime();
  3. 在指定的日期上,增加日期时间;c.add(Calendar.);
		Calendar c=Calendar.getInstance();
		//显示3天后的日期
		c.add(Calendar.DAY_OF_MONTH, 3);
		Date d=c.getTime();
		SimpleDateFormat sdf=new SimpleDateFormat("yyyy年MM月dd日HH时mm分钟ss秒 E");
		String s=sdf.format(d);
		System.out.println(s);

  1. 表示获取指定的日期字段值:获取年/月/日
		Calendar c=Calendar.getInstance();
		int y=c.get(Calendar.YEAR);
		System.out.println(y);//默认当前时间
		int m=c.get(Calendar.MONTH)+1;
		System.out.println(m);//月份+1
		int weekday=c.get(Calendar.DAY_OF_WEEK)-1;//减1
		System.out.println("今天是一周的第几天:"+weekday);
		int week=c.get(Calendar.WEEK_OF_MONTH);
		System.out.println("今天是这个月第几周:"+week);
		/*
		 * 国外 周天到周六 0~6  月份:0~11
		 * 国内 周一到周末 1~7  月份:1~12 
		 */
  1. 设置日期字段值 :set
		Calendar c=Calendar.getInstance();
		c.set(Calendar.YEAR, 2029);
		int y=c.get(Calendar.YEAR);
		System.out.println(y);//默认当前时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值