java 常用 APL(系统相关类 ,Object类 和包装类详解)

常用APL

  • java.lang 提供JAVA程序设计所需要的基础类
  • java.util 提供集合,字符串解析,随机数生成等常用的工具类
  • java.text 提供处理数字,文字,日期等信息的格式类
  • java.math 提供任意精度计算的工具类
  • java.io 以数据流,序列化 ,文件系统的形式提供输入输出操作
  • java.net 提供实现互联网应用程序的类

从功能划分

基础类库

系统相关类,用户输入,Object类,包装类,字符串相关,计算相关,日期相关

核心类库

异常处理,集合,泛型 ,IO(输入输出),多线程,网络编程,注解,反射机制

系统相关类

System类

  • System类 代表当前java程序的运行平台
  • System类不允许被实例,它所提供的变量和方法全是静态的
  • System类提供了代表标准输入,标准输出,错误输出的静态变量;
  • System类提供了访问环境变量,访问系统属性。加载文件,加载动态链接库等方法

Runtime类

  • Runtime类代表java程序的运行环境
  • Runtime类符合单列模式,我们只能通过getRuntime()获得该类型的唯一实例
  • Runtime类提供了访问jvm相关信息的方法,如获得cpu数量,获取空闲内存数等
  • 构造器要私有
    在这里插入图片描述

代码演示 系统相关类

//       获取系统所有的环境变量
        Map<String, String> map = System.getenv();


        for (String key: map.keySet()){
            System.out.println(key + ":" + map.get(key));
        }

//        根据名称获取环境变量的值
        System.out.println("Path :" + System.getenv("Path"));

        System.out.println("=====================================================================");
//        获取所有的系统的属性

        Properties properties = System.getProperties();
        for (Object key :properties.keySet()){
            System.out.println(key + ":  " + properties.get(key));
        }
        System.out.println("=============================================================================================");

//     根据名称获取系统的属性的值
        System.out.println("user.home :'" + System.getProperty("user.home"));

//        返回JVM可用的cpu数量
        System.out.println(Runtime.getRuntime().availableProcessors());
//        返回jvm中内存总量
        System.out.println(Runtime.getRuntime().totalMemory());

//        返回jvm中可用内存
        System.out.println(Runtime.getRuntime().freeMemory());
//        返回jvm中可以 使用的内存总数
        System.out.println(Runtime.getRuntime().maxMemory());
//        返回jre的版本
        System.out.println(Runtime.version());

//        在单独的进程里执行系统命令
        Runtime.getRuntime().exec("shutdown -s -t  60");
    }

用户输入

1.可以本身的 mian方面里面 通过String[] args 输入 调用字符串

 public static void main(String[] args)
  1. Scanner类
  • scanner是一个文本扫描器,它可以从文件,输入流,字符串中解析出基本类型值。默认的情况下,他使用空白(空格,tab,回车)作为多个输入项的分隔符
  • hasNextxxx:判断是否还有下一个输入项,其中xxx是代表基本类型的单词,如 Int long 等
  • netxxx:获取下一个输入项,其中xxx的含义也是代表基本类型的单词
  • 在这里插入图片描述
    具体用法请参考官方帮助文档apl 查找具体用法

Object类

在这里插入图片描述

具体演示

public class BasicLibraryDemo2 {

    public static void main(String[] args) throws CloneNotSupportedException {

        Object obj = new Object();
        System.out.println(obj.toString());
        System.out.println(obj.hashCode());
        System.out.println(obj.getClass());
        System.out.println(obj.equals(new Object()));

        Driver d1 = new Driver("djk");
        Driver d2=d1.clone();
        System.out.println(d1);
        System.out.println(d2);


    }
}

class Car{

    private String brand;

    public Car(String brand) {
        this.brand = brand;
    }

    public String getBrand() {
        return brand;
    }

    public void setBrand(String brand) {
        this.brand = brand;
    }
}



class Driver implements Cloneable{

    private String name;

    private Car car;


    public Driver(String name) {
        this.name = name;
        this.car=new Car("奔驰");
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Car getCar() {
        return car;
    }

    public void setCar(Car car) {
        this.car = car;
    }


       public String toString() {
        return this.name+","+this.car.getBrand();
    }


    protected Driver clone() throws CloneNotSupportedException {
        return (Driver)super.clone();
    }
}

包装类

什么是包装类

  • Java是面向对象语言,在Java中一切皆对象
  • 八种基本数据类型例外,不具备“对象”的特性
  • 为了解决这个问题,java为每个类型都定义了一个对应的应用类型,他们是基本类型的包装类

在这里插入图片描述
其中 只有 int 和 char 包装类型 不一样 其他 与基本类型一样 只是 首字母大写

基本类型与包装类型之间的转换

  • jdk 1.5 之前 通过包装类提供的构造器 可以将基本类型转为包装类型的对象 通过包装类提供 的 xxxValue()方法,可以获得该对象中的包装数据。
  • jdk 1.5 之后 提供了自动装箱,自动拆箱功能
    1. 自动装箱 可以把一个基本类型的数据直接赋值给对应的包装类型;
    1. 自动拆箱 可以把一个包装类型的对象直接赋值给对应的基本类型;

包装类是不可变类

  • 该类被实例化后,他的实例变量是不可改变的;
    1. 使用private和final 修饰成员变量
    1. 提供带参数的构造器,用于初始化上述成员变量
    1. 仅提供获取成员变量的方法,不提供修改的方法
  • 特别注意 被 final 修饰的类 代表这个类不可被继承 并不是 意味着 他的实例变量 不可改变

代码演示

//    1.5 以前
//        中间红线 意思是 不推荐使用
        Integer integer = new Integer(1);
        Character d = new Character('d');

        int i=integer.intValue();
        char  c=d.charValue();

        System.out.println(i);
        System.out.println(c);

//        自动装箱
        Double od=5.48;

//        自动拆箱

        double a=od;

        System.out.println(a);
           System.out.println(a);
//       如何将字符串转换为基本类型
        double v = Double.parseDouble("56468");
//        基本类型转换为字符串
        String s = String.valueOf(1);

//        比较两值
//        
        System.out.println(Integer.compare(25, 89));

    }

包装类中的静态常量

  1. MAX_VALUE, 表示该类型的最大值
  2. MIN_VALUE,表示该类型的最小值
  3. 八个封装类型都定义这些常量
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值