Java类/接口的API
本章节收集的类/接口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的更多相关文章
- Java 类、接口的API
本章节收集的类/接口API有: Object类,枚举,包装类,接口Comparable,类Arrays,Thread类,System类,Math,BigInteger,Random,日期时间,异常 O ...
- 规则引擎集成接口(九)Java类对象
Java类对象 右键点击“对象库” —“添加java类对象”,如下图: 弹出窗体,在文本框中输入类的全名“com.flagleader.test.Test”,选择该类型后确定,如下: 显示如下,勾选上 ...
- 规则引擎集成接口(七)规则引擎调用Java类
规则引擎调用Java类 通过myEclipse编写一个简单工程,其中方法是两数相加等到结果,既结果1=输入值1+输入值2.实现规则调用外部接口的方法有三种. 1:接口实例:在myEclipse中制作一 ...
- java类中定义接口
今天看到一个java类中定义了接口,写个备忘录,记录一下 package com.gxf.test; public class Test_interface { public interface sh ...
- 使用java API查询java类
一.java API的下载地址 前面列举了常用的java类,但只是介绍了功能,具体详细的用法(比如要知道该类的属性和方法)要需要调用java的API(Application Program Inter ...
- Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法??
Atitit. 衡量项目规模 ----包含的类的数量 .net java类库包含多少类 多少个api方法?? 1 framework 4.5 (10万个api)1 2 Jdk8 57M1 3 Gi ...
- 要创建一个EJB,必须要至少编写哪些Java类和接口?
要创建一个EJB,必须要至少编写哪些Java类和接口? A. 定义远程(或业务)接口 B. 定义本地接口 C. 定义Bean接口 D. 编写Bean的实现 解答:ABC
- 项目中一个普通的Java类如何获取service接口(一)
在普通的Java类中获取service接口目的是调用接口中的方法,实现数据的持久化等操作: Java类中的获取service接口方法: IfaceDetectService faceDetectSer ...
- 组件接口(API)设计指南[2]-类接口(class interface)
*返回文件夹阅读其它章节: http://blog.csdn.net/cuibo1123/article/details/39894477 类接口(class interface) 你能够參考MGTi ...
随机推荐
- 构造函数语义学——Default Constructor篇
构造函数语义学--Default Constructor 篇 这一章原书主要分析了:编译器关于对象构造过程的干涉,即在对象构造这个过程中,编译器到底在背后做了什么 这一章的重点在于 default c ...
- [NOIp2011] luogu P1311 选择客栈
我妈的抽象歌曲真 nb. 题目描述 给你 nnn 个点,每个点有两个参数 ci,dic_i,d_ici,di,给你一个数 DDD.定义一种方案合法,当且仅当你选出整数 i,j∈[1,n],i< ...
- Figures Inscribed in Curves (曲线上的图形)
Figures Inscribed in Curves\text{Figures Inscribed in Curves}Figures Inscribed in Curves A short tou ...
- Cocos2d-x 学习笔记(23) 分辨率与屏幕适配
Cocos2d-x的分辨率可以分为两种:屏幕分辨率和设计分辨率. 屏幕分辨率就是屏幕窗口的大小,单位是像素. 设计分辨率单位是点,一个点可能包括多个像素. 如果把一台显示器自身的分辨率比作屏幕分辨率的 ...
- 数据结构1_C---单链表的逆转
通过C语言函数实现单链表的逆转操作 例: 输入数据1,2,3,4 输出数据4,3,2,1 一共三个文件: 头文件stulist,h :链表结点的定义,结点指针的定义 源文件stulist.c:具体的实 ...
- mycat+mysql搭建高可用集群1--垂直分库
mycat垂直分库 本文主要介绍了如何使用mycat对mysql数据库进行垂直分库,包括: 垂直分库的步骤 垂直分库的环境准备 配置mycat垂直分库 1. 垂直分库的步骤 收集分析业务模块间的关系 ...
- Mysql高手系列 - 第27篇:mysql如何确保数据不丢失的?我们借鉴这种设计思想实现热点账户高并发设计及跨库转账问题
Mysql系列的目标是:通过这个系列从入门到全面掌握一个高级开发所需要的全部技能. 欢迎大家加我微信itsoku一起交流java.算法.数据库相关技术. 这是Mysql系列第27篇. 本篇文章我们先来 ...
- 算法<初级> - 第二章 队列、栈、哈希表相关问题
算法 - 第二章 数据结构 题目一 用数组实现大小固定的队列和栈(一面题) 数组实现大小固定栈 /*** * size是对头索引(initSize是固定大小) 也是当前栈大小 * size=下个进队i ...
- 课堂练习 Word count
1. 团队介绍 团队成员:席梦寒,胡琦 2. 项目计划 我们选第一.二个功能点进行编程. 具体计划: (1).首先爬取网站内容及网页长度: (2).对爬取的文件内容进行word count操作: 3. ...
- Linux下zkui的安装
前提:部署好java环境 1.拉取安装包 git clone https://github.com/DeemOpen/zkui.git 2.进入zkui目录 cd zkui/ 3.使用mvn命令进行编 ...