本章节收集的类/接口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. 【EasyCi】持续集成交付,一键式自动化部署系统,开箱即用

    前言 本人是一家互联网公司的java开发,由于公司初期公司未招运维人员,恰好我对linux比较熟悉,便在公司服务器搭建了一套Jenkins.Gitlab.Maven私服.Docker私服.Sonarq ...

  2. php 加入 unless 语法

    1. php 的版本 :PHP 7.3.0-dev (cli) (built: Mar 18 2018 00:28:55) ( NTS ) 2. unless 语法结构: unless($cond){ ...

  3. 前端工程师如何理解 TCP/IP 传输层协议?

    网络协议是每个前端工程师都必须要掌握的知识,TCP/IP 中有两个具有代表性的传输层协议,分别是 TCP 和 UDP,本文将介绍下这两者以及它们之间的区别. TCP/IP网络模型 计算机与网络设备要相 ...

  4. photometric_stereo halcon光度立体法三维表面重建

    官方文档翻译 名称: photometric_stereo -- 通过光度立体技术重建表面. 签名: photometric_stereo(Images : HeightField, Gradient ...

  5. python编程系列---多个装饰器装饰一个函数的执行流程

    首先看一个例子 ''' 多个装饰器装饰一个函数 ''' # 定义第一个装饰器 def set_func1(func): def wrapper1(*args,**kwargs): print('装饰内 ...

  6. jmeter-中文乱码问题

    1.被测系统中问乱码 解决办法:接口请求时添加编码方式UTF-8

  7. 浅谈微服务架构与.Net Core

    微服务(microservice)这个概念是2012年出现的,2014年3月Martin Fowler在他的个人网站(https://martinfowler.com/articles/microse ...

  8. 基于SkyWalking的分布式跟踪系统 - 环境搭建

    前面的几篇文章我们聊了基于Metrics的监控Prometheus,利用Prometheus和Grafana可以全方位监控你的服务器及应用的性能指标,在出现异常时利用Alertmanager告警及时通 ...

  9. 设置H5页面文字不可复制

    * { moz-user-select: -moz-none; -moz-user-select: none; -o-user-select: none; -khtml-user-select: no ...

  10. 设计模式(十二)Decorator模式

    Decorator模式就是不断地为对象添加装饰的设计模式.以蛋糕为例,程序中的对象就相当于蛋糕,然后像不断地装饰蛋糕一样地不断地对其增加功能,它就变成了使用目的更加明确的对象. 首先看示例程序的类图. ...