04-类库

作者: 何惧l | 来源:发表于2018-06-06 15:14 被阅读6次
  • Java API
  • Object类
  • Class类
  • System类
  • 封装类
  • Integer类
  • Character类
  • String类
  • StringBuffer类
  • Math类
  • Random类
  • TimeZone类
  • Date类
  • Calendar

Java API:

  1. 概念:Java应用程序编程接口,即Java API.
    使用:java语言属于面向对象的语言,一切皆对象.java程序的所有操作都需要围绕对象进行.
  2. 如何使用一个陌生的类:
    • 先尝试模拟java对象
    • 操作java对象,调用方法和属性

Object类:

  1. 概念:java系统中使用Object类表示对象.Object类是所有java对象的直接或间接父类,是整个java系统的根类[祖先]

  2. 常用方法:

    • clone():
      • 作用: 复制对象的数据,粘贴到新的对象中.[1.子类重写clone() 2.被克隆对象支持克隆:实现Cloneable接口]
      • 使用:
        1.protected native Object clone() 是受保护的,当前包所有类和其他子类.
        2.因此clone()权限较小,不方便使用.所以子类需要重写该方法,并扩大权限.
        3.java.lang.CloneNotSupportedException: object.User被克隆的对象必须支持被克隆,才能使用clone().被克隆类需要实现Cloneable接口,才能允许被克隆
        public interface Cloneable { } 该接口只是作为一个标示,表示可以被克隆.
        注意: clone实质是创建一个新对象,将原对象的信息赋给新对象.
    • hashCode():
      • 作用: 根据对象的内存地址和哈希算法获得对象的哈希值.
    • toString():
      • 作用: 获得对象的字符串表示形式的值.[类全名@哈希值的16进制值]
    • equals():
      • 作用: 匹配当前对象和目标对象是否为同一个对象.
  3. 如何理解一切皆对象?
    Object类表示对象,java系统中所有java对象的根类[直接/间接父类]都为Object类.

  4. 如何确定一个类的父类?
    如果一个类没有显示的继承其他类,那么Object类即为该类的父类.如果一个类继承了其他类,那么其他类即为该类的父类.

  5. 如何比较对象:
    java程序中经常需要比较两个对象是否为同一对象,但是java系统不允许直接访问对象的内存地址,因此提供了几种间接访问的方式.
    比较对象的方法: toString() hashCode() equals() ==[属于运算符]
    直接比较内存地址: == equals()
    通过哈希值比较对象: hashCode() toString()

  6. 问题: 哪种方式比较对象,对象相同时内存地址一定相同?
    hashCode(),toString(),equals()都是方法,方法可以被重写[更改比较标准]
    ==是运算符,所以==不能被更改比较标准. ==永远按照 内存地址 比较对象

Class类:

  1. 概念:Class类表示 java类 / 图纸 的对象,主要封装了 关于设计图纸[类/java文件]的信息: 类名 父类 含有那些方法 含有那些属性 等等.
  2. 特点:
    • private Class() {} 不能在自定义的java类中创建Class对象.
    • Class类提供了三种获得Class对象方式: 对象.getClass() 类名.class() Class.forName()
  3. 常用方法:
    • getName(): 获得设计图纸表示的类的类全名
    • getSimpleName(): 获得设计图纸表示的类的类名
    • isInterface(): 当前设计图纸表示的类是否为接口
    • getSuperclass(): 当前设计图纸表示的类的父类图纸对象.
    • getDeclaredFields(): 获得设计图纸表示的类中的所有属性
    • getDeclaredMethods(): 获得设计图纸表示的类中的所有方法
    • getDeclaredConstructors(): 获得设计图纸表示的类中的所有方法

System类:

  1. 概念:
    System类是java程序中的系统类,主要存储一些系统信息和常用功能

  2. 特性:

    • private System() { },无法直接创建对象.
    • System类中的所有属性和方法都是静态的,因此可以直接使用 类名调用.
    • 提供了标准输入 输出 错误流.
    • err():"标准”错误输出流.默认输出为控制台,打印内容因开发工具显示出红色,打印的错误信息输出的时机不固定.
    • in(): “标准”输入流。 默认输入源为键盘输入
    • out():“标准”输出流。 默认输出为控制台
      说明: java的命名规范中,建议所有的常量的字母都必须大写,但是由于历史原因,这三个属性没有大写.
  3. 常用方法:

    1. currentTimeMillis(): 返回以毫秒为单位的当前时间.[实质返回 从1970.1.1午夜 到此刻的毫秒数]
      作用: 通常可以用于测试程序的性能
    2. getProperties(): 获得当前的系统属性
    3. exit(): 终止当前正在运行的 Java 虚拟机.
      说明:默认情况下,当程序正常执行结束或出现错误会自动停止Java系统.如果需要手动结束java系统,可以使用此方法.
    4. gc(): 运行垃圾回收器.
  4. Java垃圾回收机制:
    当java程序执行时,java系统后台时时监听程序的执行情况.当发现某数据不再被引用/使用时,java系统将尝试回收该数据所占用的系统资源,进行垃圾数据回收.
    但是有时候,java系统并不能准备判断数据是否无用,或者及时监视到无效数据. 因此提供了手动启动垃圾回收器的方法--gc().

封装类:

  1. 为什么使用封装类:
    java中含有8种基本数据类型,但是8种基本数据类型既不是对象,也不面向对象.
    java语言属于面向对象语言,为了更加彻底的面向对象,java系统为8种基本数据类型做了封装,产生了8个封装类.

  2. 封装类:
    基本数据类型: byte short int long float double char boolean;
    封装类: Byte Short Integer Long Float Double Character Boolean.
    总结: 除了int,char,其他基本类型 名称首字母大写 即为 封装类的名字.

  3. Number类:
    Byte Short Integer Long Float Double都属于数字,java对它们编写了一个父类---Number
    Number类主要提供了各种数字类型之间的转换方法.

Integer类:

  1. 特性:
    Integer对象表示一个数字,创建对象必须说明表示的数字,因此没有提供无参构造方法.

  2. 常用属性:
    取值范围的获得: Integer.MIN_VALUE Integer.MAX_VALUE
    占据位数:Integer.size

  3. 常用方法:
    Integer.toBinaryString(2)
    Integer.toOctalString(8)
    Integer.toHexString(16)

  4. 拆箱和装箱:
    拆箱: 由封装类类型数据 转为 基本数据类型数据
    装箱: 由基本数据类型数据 转为 封装类型数据
    手动:
    手动拆箱: intValue()
    手动装箱: valueOf()
    自动:
    从JDK1.5开始,java系统提供了自动拆箱和自动装箱功能

  5. 类型转换: [面向对象方式]
    Byte Short Integer Long Float Double可以直接转换[8种基本类型中除boolean外,其他类型可以相互转换]

Character类:

  1. 概念:
    Character类表示char的封装类,Character对象表示一个字符,创建对象必须说明表示的字符,因此没有提供无参构造方法.

  2. 常用属性:
    取值范围的获得: Character.MIN_VALUE Character.MAX_VALUE
    占据位数:Character.size

  3. 常用方法:
    isDigit():判断字符是否数字
    isLetter():判断字符是否字母
    isLetterOrDigit():判断字符是否数字或字母
    isUpperCase():判断字符是否大写字母
    isLowerCase():判断字符是否小写字母
    isSpace/isWhitespace():判断字符是否为空格
    toLowerCase():将指定字符转为小写
    toUpperCase():将指定字符转为大写
    charAt(索引):获得指定索引处的字符
    toString():获得字符的字符串格式值

  4. 拆箱和装箱:[同Integer]
    手动拆箱: charValue()
    手动装箱: valueOf()

String类:

  1. 概念:
    字符: 指一个符号[数字,字母,汉字,其他符号等等],java系统中char表示.
    字符串[String]: 由多个字符组成,java系统中String类表示.

  2. 区别:
    1.char属于基本数据类型,String属于引用类型.[String类,属于Java类]
    2.char类型数据必须被单引号包裹,String类型数据必须被双引号包裹. 'A' "A"

  3. String类特点:

    1. Java 程序中的所有字符串字面值(如 "abc" )都作为此类的实例实现
    2. 创建String对象: new String("字符串内容") 或 "字符串内容"
    3. 当使用直接量语法创建String对象时,java系统会先搜索字符串常量池中同一字面值的String对象,找到后将返回该对象,不再重新创建String对象.
    4. String类重写了equals(),按照字面值比较两个String对象.
    5. String对象中字符串值确定后将无法更改[底层是一个字符数组类型的常量],如果更改将产生新的字符串对象.
  4. String常用的方法:

    • equals() String类重写了该方法,只要字面值相同即可.
    • concat("字符串")当前字符串与指定内容拼接为新的String对象
    • length() 获得字符串的长度(字符个数)
    • charAt(索引) 返回指定索引的字符
    • indexOf('字符') 从左到右数搜索,返回指定字符的索引
    • indexOf("字符串") 从左到右数且从指定的索引处搜索,返回指定字符串的索引
    • lastIndexOf 用法同indexOf,只是从后先前搜索
    • startsWith("字符串") 配置是否以指定的字符串开头
    • endsWith("字符串") 配置是否以指定的字符串结尾
    • contains("字符串") 配置是否包含指定的字符串
    • replace("目标字符串","替换值") 配置是否包含指定的字符串,如果有,替换字符串为指定内容
    • toLowerCase/toUpperCase() 将字符串所有字母替换为小写/大写字母

StringBuffer类:

  1. 概念:
    String表示字符串,String对象表示的字面值固定后将无法更改,否则将产生新的String对象.
    StringBuffer表示带有缓冲区的字符串,StringBuffer表示的字面值可以更改,不产生新的StringBuffer对象.

  2. 创建StringBuffer:
    new StringBuffer();//创建StringBuffer对象,默认缓冲容量为16
    new StringBuffer("ABC123");//创建StringBuffer对象,默认缓冲容量为16+内容长度
    new StringBuffer(23);//创建StringBuffer对象,默认缓冲容量为指定容量

  3. 缓冲区容量:
    缓冲区字符个数 容量
    16>=字符个数>0 16
    34>=字符个数>16 34
    字符个数>34 34++

  4. StringBuffer常用方法:

    • capacity() 获得StringBuffer对象的缓冲区大小
    • length() 获得缓冲区中字符串的长度(字符个数)
    • toString() 将StringBuffer对象转为String对象
    • append(内容) 将指定内容追加到StringBuffer的末尾
    • insert(索引,内容) 将内容插入到指定的索引之后
    • setCharAt(索引,字符) 替换指定索引出的字符
    • replace(start,end,字符串) 替换索引为start(包含)到end()不包含之间的内容,替换为指定的字符串
    • deleteCharAt(索引) 删除缓冲区中字符串的指定索引出的字符
    • delete(start,end) 从索引start开始删除 到 索引为end为止

Math类:

  1. 概念:
    含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数.

  2. Math类特点:
    1.Math类作用一个公共的工具类,将构造函数私有化,同时将所有属性和方法设置为静态.
    使用时,无能/不需要创建对象,可以直接使用Math.属性 Math.方法名()

  3. 常用属性和方法:

    • E: 获得自然底数e
    • PI: 获得圆周率
    • abs(): 求绝对值
    • pow(): 求次方
    • sqrt(): 开平方
    • cbrt(): 开立方
    • ceil(): 大于当前小数的最小Double值
    • floor():小于当前小数的最大Double值
    • min():获得两个数的最小值
    • max():获得两个数的最大值
    • round():四舍五入
    • random():获得随机值

Random类:

  1. 概念:
    Random类主要用于生成各种类型的随机数
  2. 常用方法:
    • nextInt():获得一个int类型的随机数
    • nextFloat():获得一个float类型的随机数
    • nextDouble():获得一个double类型的随机数
    • nextBoolean():获得一个boolean类型的随机数
    • nextInt(参数):获得一个指定范围[0-参数之间]的随机数

TimeZone类:

  1. 概念:
    时区:为了克服时间上的混乱,规定将全球划分为24个时区,使地球上的区域使用同一个时间定义.
    Java系统中使用TimeZone表示时区对象,TimeZone是抽象类无法直接创建对象.
    Java程序需要在电脑上运行,电脑会因为所在位置不同,采用不同的时区.为了克服/避开时区对程序时间的影响,通常在操作时间或日期时需要设置下程序的时区.

  2. 常用方法:

    • TimeZone.getDefault():获得当前主机默认环境下的时区对象
    • TimeZone.getAvailableIDs():获得所有受支持的时区的ID的集合
    • TimeZone.getTimeZone(ID):获得时区ID对应的时区对象
    • 时区对象.getID():获得时区对象的ID
    • 时区对象.getDisplayName():获得时区对象的时区名

Date类:

  1. 概念:
    java系统将Date类作为日期对象,可以操作Date类 获得/设置时间和日期

  2. Date类特点:
    1.new Date(); //自动将当前系统时间和日期 作为Date对象的初始值
    2.Date类中对于操作具体时间的方法都已经过时,被Calendar替代.

  3. 日期格式化类:

    • DateFormat[抽象类,不能直接创建对象]
    • SimpleDateFormat[属于DateFormat的子类]
  4. 日期格式化:
    y: 表示年
    M: 表示月
    d: 表示日
    E: 表示星期数
    k: 表示小时
    m: 表示分钟
    s: 表示秒数

  5. 格式化原理:
    java系统将特定的字母替换为 具体的时间值.
    代码:

SimpleDateFormat对象.format(Date对象):将Date对象表示日期 格式化为指定格式的时间,并以String方式返回
SimpleDateFormat对象.parse(String对象):将String对象表示内容 按照指定格式 转为 Date对象.

Calendar类:

  1. 概念:
    TimeZone表示时区,用控制日期/时间位置
    Date表示日期和时间,多数方法都已过时,被Calendar替代.
    Calendar表示日历,含有具体时间的操作方法.

  2. Calendar类特点:
    1.Calendar是抽象类,不能直接创建对象
    2.通过getInstance()或 new GregorianCalendar()模拟Calendar对象

  3. 常用属性: 以下属性都用于set()和get()的参数,表示时间类型
    YEAR: 年
    MONTH: 月
    DAY_OF_MONTH: 日
    HOUR_OF_DAY: 时
    MINUTE: 分
    SECOND: 秒
    WEEK_OF_YEAR: 一年的第几周
    WEEK_OF_MONTH: 一月的第几周
    DAY_OF_YEAR: 一年的第几天

  4. 常用方法:
    get(时间类型): 获得指定时间类型的值[获得年份/月/日等等]
    set(时间类型,数值):设置指定时间类型的值
    add(时间类型,数值):修改指定时间类型的值

相关文章

  • 04-类库

    Java API Object类 Class类 System类 封装类 Integer类 Character类 S...

  • 2020-02-22ArcGIS Engine中的类库

    ArcGIS Engine中的类库 1.Version类库 2.界面和控件类库 3.可视化显示类库 4.数据访同类...

  • 类库

    zlib zlib 是通用的压缩库,提供了一套 in-memory 压缩和解压函数,并能检测解压出来的数据的完整性...

  • 类库

    类库(Class Library)是一个综合性的面向对象的可重用类型集合,这些类型包括:接口、抽象类和具体类。类库...

  • 04-通过私有化构造器强化不可实例化的能力

    阅读原文04-通过私有化构造器强化不可实例化的能力  有时候,可能需要编写只含有静态方法和静态域的类。这些类的名声...

  • JavaSE进阶-04-常用类

    String 关于Java JDK中内置的一个类:java.lang.String1.String表示字符串类型,...

  • tp5 导入第三方库

    ThinkPHP vendor 方法导入第三方类库第三方类库第三方类库指除了 ThinkPHP 框架、应用项目类库...

  • Java并发编程脑图

    01-Java内存模型 02-并发基础 03-锁 04-并发工具类 05-其他 06-Java并发集合 07-at...

  • 第三方搜集

    objc 类库 AFNetworking--------网络请求SDWebImage---------这个类库提供...

  • Java的JDBC封装

    数据库连接操作类,该类提供创建数据库连接getConnection和release释放资源 数据库的操作类 测试类...

网友评论

      本文标题:04-类库

      本文链接:https://www.haomeiwen.com/subject/zjbbsftx.html