本章节收集的类/接口API有:

Object类,枚举,包装类,接口Comparable,类Arrays,异常,

Object类

public String toString():    【把一个对象的信息用一个字符串表示,尽量要能够简单易懂,建议子类重写】

public Class<?> getClass():  【获取对象的“运行时”类型】

public void finalize():                 【当一个对象被确定为垃圾时,由GC垃圾回收器来进行调用,每一个对象的finalize()方法只会被调用一次

public int hashCode():      【返回一个对象的hashCode值】

常规协定:

(1)如果一个对象的参与计算hashCode值的成员变量没有修改,那么在程序运行期间,每次获取的hashCode值不变。

(2)如果两个对象hashCode不同,那么这两个一定不“相等”

(3)如果两个的hashCode值相同,那么这两个对象不一定“相等”

(4)如果两个相等,那么他们的hashCode值一定要相同。

public boolean equals(Object obj):               【用于判断当前对象与指定对象是否相等】     

默认的实现,等价于“==”,比较对象的内存地址。

子类可以选择重写,重写有一些要求及原则:重写equals时,一定要重写hashCode方法。一致性、对称性、自反性、传递性、非空对象与null的equals一定是false

protected Object clone()throws CloneNotSupportedException :   【获取一个对象的克隆体对象】    

所有类型都可以重写这个方法,它是获取一个对象的克隆体对象用的,就是造一个和当前对象各种属性值一模一样的对象。当然地址肯定不同。

调用此方法必须实现java.lang.Cloneable接口

枚举

1.toString():   【默认返回的是常量名(对象名),可以继续手动重写该方法】
2.name():   【返回的是常量名(对象名)】
3.ordinal():    【返回常量的次序号,默认从0开始】
4.values():    【返回该枚举类的所有的常量对象,返回类型是当前枚举的数组类型,是一个静态方法】
5.valueOf(String name):     【根据枚举常量对象名称获取枚举对象】

包装类

1、基本数据类型和字符串之间的转换

1)String str = String.valueOf(xxx);   【把基本数据类型转为字符串

2)除了Character类之外,其他所有包装类都具有parseXxx静态方法

int a = Integer.parseInt("整数的字符串");      【String转换成对应的基本类型

3)把字符串转为包装类,然后可以自动拆箱为基本数据类型,(返回值类型是包装类)

  int a = Integer.valueOf("整数的字符串");              【把字符串转为包装类

2、数据类型的最大最小值

Integer.MAX_VALUE和Integer.MIN_VALUE                【返回对应类型的最大/小常量值】

3、字符转大小写

Character.toUpperCase('x');                                    【字符转大写】
Character.toLowerCase('X');  【字符转小写】

4、整数转进制

Integer.toBinaryString(int i)                                         【整数转二进制】
Integer.toHexString(int i)                                             【整数转十六进制】
Integer.toOctalString(int i)                【整数转八进制】

接口Comparable,Comparator

int compareTo(Object obj);  【根据对象属性的值按自然排序】

第一步:哪个类的对象要比较大小,哪个类就实现java.lang.Comparable接口,并重写方法

第二步:对象比较大小时,通过对象调用compareTo方法,根据方法的返回值决定谁大谁小。

接口规定:返回值大于0调用对象大于指定对象,小于0就小于指定对象,等于0就两个对象值相等

(java.util.Arrays数组工具类的public static void sort(Object[] a)就是这么实现的)

int compare(Object o1,Object o2);                            根据对象属性的值按定制排序】

第一步:编写一个类,我们称之为比较器类型,实现java.util.Comparator接口,并重写方法

第二步:比较大小时,通过比较器类型的对象调用compare()方法,将要比较大小的两个对象作为compare方法的实参传入,根据方法的返回值决定谁大谁小。

  • o1对象大于o2返回正整数

  • o1对象小于o2返回负整数

  • o1对象等于o2返回零

(java.util.Arrays数组工具类的public static <T> void sort(T[] a, Comparator<? super T> c)就是这做的)

java.lang.Cloneable接口,和Object类配合使用                【用于复制对象】

类 Arrays

此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂

可按照参数类型按升序排序,还可指定范围按升序进行排序。

Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);  【忽略大小写排序】

Arrays.sort(strArray, Collections.reverseOrder());                  【反向排序】

Arrays.sort(strArray, String.CASE_INSENSITIVE_ORDER);  【忽略大小写反向排序】

sort(T[] a, Comparator<? super T> c)   【根据指定比较器产生的顺序对指定对象数组进行排序。(同上面接口配合使用)】

异常

e.toString():           【获得异常种类和错误信息】

e.getMessage():       【获得错误信息】

Java类/接口的API的更多相关文章

  1. Java 类、接口的API

    本章节收集的类/接口API有: Object类,枚举,包装类,接口Comparable,类Arrays,Thread类,System类,Math,BigInteger,Random,日期时间,异常 O ...

  2. 规则引擎集成接口(九)Java类对象

    Java类对象 右键点击“对象库” —“添加java类对象”,如下图: 弹出窗体,在文本框中输入类的全名“com.flagleader.test.Test”,选择该类型后确定,如下: 显示如下,勾选上 ...

  3. 规则引擎集成接口(七)规则引擎调用Java类

    规则引擎调用Java类 通过myEclipse编写一个简单工程,其中方法是两数相加等到结果,既结果1=输入值1+输入值2.实现规则调用外部接口的方法有三种. 1:接口实例:在myEclipse中制作一 ...

  4. java类中定义接口

    今天看到一个java类中定义了接口,写个备忘录,记录一下 package com.gxf.test; public class Test_interface { public interface sh ...

  5. 使用java API查询java类

    一.java API的下载地址 前面列举了常用的java类,但只是介绍了功能,具体详细的用法(比如要知道该类的属性和方法)要需要调用java的API(Application Program Inter ...

  6. Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法??

    Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法?? 1 framework 4.5 (10万个api)1 2 Jdk8   57M1 3 Gi ...

  7. 要创建一个EJB,必须要至少编写哪些Java类和接口?

    要创建一个EJB,必须要至少编写哪些Java类和接口? A. 定义远程(或业务)接口 B. 定义本地接口 C. 定义Bean接口 D. 编写Bean的实现 解答:ABC

  8. 项目中一个普通的Java类如何获取service接口(一)

    在普通的Java类中获取service接口目的是调用接口中的方法,实现数据的持久化等操作: Java类中的获取service接口方法: IfaceDetectService faceDetectSer ...

  9. 组件接口(API)设计指南[2]-类接口(class interface)

    *返回文件夹阅读其它章节: http://blog.csdn.net/cuibo1123/article/details/39894477 类接口(class interface) 你能够參考MGTi ...

随机推荐

  1. Qt5教程: (2) 信号与槽

    1. 新建工程 新建一个"Qt Widgets Application"工程 2. 添加按钮 一个Qt工程会有很多个控件, 如果把逻辑代码都写在main函数里, main函数会非常 ...

  2. 关于参加AWD攻防比赛心得体会

    今天只是简单写下心得和体会 平时工作很忙 留给学习的时间更加珍少宝贵. 重点说下第二天的攻防比赛吧  . 三波web题 .涉及jsp,php,py. 前期我们打的很猛.第一波jsp的题看到有首页预留后 ...

  3. 基于STL的堆略解

    什么是STL 以下内容摘自这儿. STL(Standard Template Library,标准模板库)是惠普实验室开发的一系列软件的统称.它是由Alexander Stepanov.Meng Le ...

  4. i春秋DMZ大型靶场实验(一)内网拓展

    更具提示 先下载工具包 ip  172.16.12.226  打开bp 进行代理发现 整个页面 没有请求 没有其页面通过 御剑,dir ,hscan   进行目录爆破未发现有用信息    对当前页面进 ...

  5. Mysql数据库(0)习题分析

    1.查询表中第二高工资的Id,如果没有,返回NULL.此题的关键是如果遇到Empty set,就必须要返回NULL. (1)使用子查询. offset ) AS SecondHighestSalary ...

  6. 设计模式(二十)Flyweight模式

    当使用new关键字生成类的实例时,需要给其分配足够的内存空间.当程序中需要大量对象时,如果都是用new关键字来分配内存,将会消耗大量内存空间.Flyweight模式就是尽量避免new出实例,而是通过尽 ...

  7. 详细讲解IPython

    ipython是一个python的交互式shell,比默认的python shell好用得多,支持变量自动补全,自动缩进,支持bash shell命令,内置了许多很有用的功能和函数.学习ipython ...

  8. vim配置(vimplus)教程及问题

    An automatic configuration program for vim 安装(github地址:https://github.com/chxuan/vimplus.git, 欢迎star ...

  9. swift 实现iOS手势密码、指纹密码、faceID

    本博客包含了如何实现iOS手势密码.指纹密码.faceID全步骤,包括了完整的代码. 先附上demo地址https://github.com/Liuyubao/LYBTouchID,支持swift3. ...

  10. DRF框架(django rest framework)

    1,DRF框架? Django REST framework 框架是一个用于构建Web API 的强大而又灵活的工具.通常简称为DRF框架 或 REST framework. Django REST ...