常用类

Object类

Object是所有类的父类,任何类都默认继承Object。
该类中主要有以下方法:

  • toString()
  • getClass()
  • equals()
  • clone()
  • finalize()

1、toString()方法
Object 类的 toString 方法返回一个字符串,该字符串由类名(对象是该类的一个实例)、at 标记符“@”和此对象哈希码的无符号十六进制表示组成。
2、getClass()方法
返回次Object的运行时类类型。
不可重写,要调用的话,一般和getName()联合使用,如getClass().getName();
3、equals()方法
Object中的equals方法是直接判断this和obj本身的值是否相等,即用来判断调用equals的对象和形参obj所引用的对象是否是同一对象,所谓同一对象就是指内存中同一块存储单元,如果this和obj指向的hi同一块内存对象,则返回true,如果this和obj指向的不是同一块内存,则返回false。
注意:即便是内容完全相等的两块不同的内存对象,也返回false。
如果希望不同内存但相同内容的两个对象equals时返回true,则我们需要重写父类的equal方法String类已经重写了object中的equals方法(这样就是比较内容是否相等了)
4、clone() 方法
clone顾名思义就是复制, 在Java语言中, clone方法被对象调用,所以会复制对象。所谓的复制对象,首先要分配一个和源对象同样大小的空间,在这个空间中创建一个新的对象。
5、finalize()方法
该方法用于释放资源。因为无法确定该方法什么时候被调用,很少使用。Java允许在类中定义一个名为finalize()的方法。它的工作原理是:一旦垃圾回收器准备好释放对象占用的存储空间,将首先调用其finalize()方法。并且在下一次垃圾回收动作发生时,才会真正回收对象占用的内存。
finalize()的用途:无论对象是如何创建的,垃圾回收器都会负责释放对象占据的所有内存。
6、hashCode()方法
返回该对象的哈希码值。
该方法用于哈希查找,可以减少在查找中使用equals的次数,重写了equals方法一般都要重写hashCode方法。这个方法在一些具有哈希功能的Collection中用到。
7、 wait()方法
wait方法就是使当前线程等待该对象的锁,当前线程必须是该对象的拥有者,也就是具有该对象的锁。wait()方法一直等待,直到获得锁或者被中断。wait(long timeout)设定一个超时间隔,如果在规定时间内没有获得锁就返回。
调用该方法后当前线程进入睡眠状态,直到以下事件发生。
(1)其他线程调用了该对象的notify方法。
(2)其他线程调用了该对象的notifyAll方法。
(3)其他线程调用了interrupt中断该线程。
(4)时间间隔到了。
此时该线程就可以被调度了,如果是被中断的话就抛出一个InterruptedException异常。
8、notify()方法

//该方法唤醒在该对象上等待的某个线程。
public final native void notify();
//该方法唤醒在该对象上等待的所有线程。
public final native void notifyAll();

包装类

1、包装类介绍
Java为八种基本数据类型分别设计了对应的类,称之为包装类(Wrapper Classes)。
在这里插入图片描述每个包装类的对象可以封装一个相应的基本类型的数据,并提供了其它一些有用的方法。包装类对象一经创建,其内容(所封装的基本类型数据值)不可改变。
基本类型和对应的包装类可以相互装换:

  • 由基本类型向对应的包装类转换称为装箱,例如把 int 包装成 Integer 类的对象;
  • 包装类向对应的基本类型转换称为拆箱,例如把 Integer 类的对象重新简化为 int。

2、包装类的应用

1、 实现 int 和 Integer 的相互转换
可以通过 Integer 类的构造方法将 int 装箱,通过 Integer 类的 intValue 方法将 Integer 拆箱。
2、 将字符串转换为整数
Integer 类有一个静态的 paseInt() 方法,可以将字符串转换为整数。
3、将整数转换为字符串
Integer 类有一个静态的 toString() 方法,可以将整数转换为字符串。或者直接在整数后面加空字符串即可!

Math类

Java 的 Math 包含了用于执行基本数学运算的属性和方法,如初等指数、对数、平方根和三角函数。
Math 的方法都被定义为 static 形式,通过 Math 类可以在主函数中直接调用。
【常用值与函数】
Math.PI 记录的圆周率
Math.E 记录e的常量
Math中还有一些类似的常量,都是一些工程数学常用量。
Math.abs 求绝对值
Math.sin 正弦函数 Math.asin 反正弦函数
Math.cos 余弦函数 Math.acos 反余弦函数
Math.tan 正切函数 Math.atan 反正切函数 Math.atan2 商的反正切函数
Math.toDegrees 弧度转化为角度 Math.toRadians 角度转化为弧度
Math.ceil 得到不小于某数的最大整数
Math.floor 得到不大于某数的最大整数
Math.IEEEremainder 求余
Math.max 求两数中最大
Math.min 求两数中最小
Math.sqrt 求开方
Math.pow 求某数的任意次方, 抛出ArithmeticException处理溢出异常
Math.exp 求e的任意次方
Math.log10 以10为底的对数
Math.log 自然对数
Math.rint 求距离某数最近的整数(可能比某数大,也可能比它小)
Math.round 同上,返回int型或者long型(上一个函数返回double型)
Math.random 返回0,1之间的一个随机数

Random类

Java中存在着两种Random函数:
一、java.lang.Math.Random
调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0,即取值范围是[0.0,1.0)的左闭右开区间,返回值是一个伪随机选择的数,在该范围内(近似)均匀分布。
二、java.util.Random
下面是Random()的两种构造方法:

  • Random():创建一个新的随机数生成器。
  • Random(long seed):使用单个 long 种子创建一个新的随机数生成器。

你在创建一个Random对象的时候可以给定任意一个合法的种子数,种子数只是随机算法的起源数字,和生成的随机数的区间没有任何关系。
例如:

//rand.nextInt(100)中的100是随机数的上限,产生的随机数为0-100的整数,不包括100。
public static void main(String[] args) { 
	Random rand =new Random(); 
	int i=rand.nextInt(100); 
	System.out.println(i); 
}

对于种子相同的Random对象,生成的随机数序列是一样的。

日期时间类

1、Date类
java.util 包提供了 Date 类来封装当前的日期和时间。
Date 类提供两个构造函数来实例化 Date 对象。
第一个构造函数使用当前日期和时间来初始化对象。

Date()

第二个构造函数接收一个参数,该参数是从1970年1月1日起的毫秒数。

Date(long millisec)

Java中获取当前日期和时间很简单,使用 Date 对象的 toString() 方法来打印当前日期和时间

public static void main(String args[]) {
   // 初始化 Date 对象
   Date date = new Date();
   // 使用 toString() 函数显示日期时间
   System.out.println(date.toString());
}

2、SimpleDateFormat
SimpleDateFormat 是一个以语言环境敏感的方式来格式化和分析日期的类。SimpleDateFormat 允许你选择任何用户自定义日期时间格式来运行。
其中 yyyy 是完整的公元年,MM 是月份,dd 是日期,HH:mm:ss 是时、分、秒。
3、Calendar类
Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些。
Calendar类是一个抽象类,在实际使用时实现特定的子类的对象,创建对象的过程对程序员来说是透明的,只需要使用getInstance方法创建即可。

Calendar类对象字段类型
在这里插入图片描述注意: Calender的月份是从0开始的,但日期和年份是从1开始的

String类

String 类代表字符串。Java 程序中的所有字符串字面值(如 “abc” )都作为此类的实例实现。 字符串是常量;它们的值在创建之后不能更改。字符串缓冲区支持可变的字符串。因为 String 对象是不可变的,所以可以共享。
String常用的方法:
1、String的判断

boolean equals(Object obj);//比较字符串的内容是否相同 
boolean equalsIgnoreCase(String str);//比较字符串的内容是否相同,忽略大小写 
boolean startsWith(String str);//判断字符串对象是否以指定的str开头 
boolean endsWith(String str);//判断字符串对象是否以指定的str结尾

2、String的截取

int length();//获取字符串的长度,其实也就是字符个数 
char charAt(int index);//获取指定索引处的字符 
int indexOf(String str);//获取str在字符串对象中第一次出现的索引 
String substring(int start);//从start开始截取字符串 
String substring(int start,int end);//从start开始,到end结束截取字符串。包括start, 不包括end

3、String的转换

char[] toCharArray();//把字符串转换为字符数组 
String toLowerCase();//把字符串转换为小写字符串 
String toUpperCase();//把字符串转换为大写字符串

4、其他方法

//去除字符串两端空格
String trim() 
//按照指定符号分割字符串
String[] split(String str)

String的不可变性
String类被final修饰,官方注释说明创建后不能被改变。
【String不可变的好处】

  • 可以实现多个变量引用堆内存中的同一个字符串实例,避免创建的开销。
  • 我们的程序中大量使用了String字符串,有可能是出于安全性考虑。
  • 大家都知道HashMap中key为String类型,如果可变将变的多么可怕。
  • 当我们在传参的时候,使用不可变类不需要去考虑谁可能会修改其内部的值,如果使用可变类的话,可能需要每次记得重新拷贝出里面的值,性能会有一定的损失。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值