飞道的博客

Java_SE 常用类

277人阅读  评论(0)

1、Object类

所有类的之间或间接父类

  • 如果一个方法的参数为Object类型,实际可以传入任意的类对象。
  • 如果一个方法的返回值是Object类型,实际上可以返回任意的类对象。

1.1 getClass()

返回该对象所属类的字节码文件对象

1.2 hashCode()

获取该对象的哈希值(十进制)

源码中,方法使用native修饰,代表该方法调用Java中的本地方法,由c与c++编写的代码

1.3 toString()

返回一个对象的字符串表示形式

源码:
    public String toString() {
        return getClass().getName() + "@" + Integer.toHexString(hashCode());
    }//默认输出-->对象的全类名@对象哈希值16进制形式

一般应该重写,输出对象的属性信息

1.4 equals()

比较两个对象是否相等

  • == 比较数值,适合8种基本数据类型
  • equals 比较对象相等
源码:
    public boolean equals(Object obj) {
        return (this == obj);
    }// 默认使用 == 比较,即也是比较对象的地址

一般应该重写

重写规则:
    //step1 先比较地址
    if (this == obj) {
        return true;
    }
	//step2 确认obj非空
	if (obj == null) {
        return false;
    }
	//比较对象属性值是否相等
	if(obj instanceof 类类型) {
        类 变量名 = (类型)obj; // 向下转型
        if (两个对象属性比较){
            return ture;
        }
    }
	return false;

2、包装类

2.1 基本数据类型对应包装类

序号 基本数据类型 包装类型
1 byte Byte
2 short Short
3 int Integer
4 long Long
5 float Float
6 double Double
7 char Character
8 boolean Boolean

继承结构

2.2 常用方法

继承于Number类的包装类:

1. 基本类型 --> 对象类型
    构造方法();
	对应包装类名.valueOf();
2. 对象类型 --> 基本类型
    对象.XxxValue(); // Xxx表示要转换的目标值对应包装类型
3. String类型 --> 基本类型
    对应包装类名.parseXxx(String类型对象) // Xxx表示包装类对应的的基本数据类型

Boolean类

同上1.2

Character类

同上1.2
static boolean isDigit(char ch) //确定指定的字符是否是数字。 
static boolean isLetter(char ch)  //确定指定的字符是否是一个字母
static boolean isLowerCase(char ch) //确定指定的字符是否是小写字符。 
static boolean isUpperCase(char ch) //确定指定的字符是否为大写字符。  
static char toLowerCase(char ch) //将字符参数转换为小写。 
static char toUpperCase(char ch) //将字符参数转换为大写。 

2.3 自动装箱与拆箱

装箱: 基本类型–>包装类类型的对象

拆箱:包装类类型的对象 --> 基本数据类型

JDk1.5以后 可以自动拆箱装箱

  • [-128,127]范围内的数值对象已经被JDk写好,对其进行 "=="比较时 是同一对象

3、String类

3.1 字符串常量

字符串:0到多个字符的序列。双引号内内容

字符串数据是常量,存储在字符串池中,且池中数据不重复

3.2 String类常用方法

3.2.1 创建字符串

//1. 直接创建
String s1 = "abc"; //当字符串池中不存在该对象时,先在池中创建。以后声明的字符串值为该对象代表的值时,统一指向该对象的地址
//2. 通过构造方法
String s2 = new String("abc"); //字符串池中无该对象时,先在池中创建对象,然后在堆内中开辟内存,引用指向堆内存地址
//3. 其他构造方法
new String();
new String(byte[]);
new String(byte[], offset, length);
new String(char[]);
new String(char[], offset, count);

3.2.2 常用方法

  • 搜索类 (–> int)

    indexOf(int) --> int //指定字符在字符串中第一次出现的下标
    indexOf(String) --> int //指定字符串在字符串中第一次出现的下标
    indexOf(int, formIndex) --> int //指定字符在字符串内的第一次出现的索引,以指定的索引开始搜索
    indexOf(String, formIndex) --> int //指定字符串在字符串内的第一次出现的索引,以指定的索引开始搜索
    
    latIndexOf(int) //指定字符在字符串最后一次出现的的索引。
    latIndexOf(String) //指定字符串在字符串最后一次出现的的索引。
    latIndexOf(int, formIndex)  //指定字符在字符串最后一次出现的的索引,从指定索引开始倒序搜索。 
    latIndexOf(String, formIndex) //指定字符串在字符串最后一次出现的的索引,从指定索引开始倒序搜索。 
    
  • 判断类( --> boolean)

    contains() //是否包含指定内容
    equals() //字符串内容是否相同
    equalsIgnoreCase() //忽略大小写的比较
    starsWith() //是否以指定内容开头
    endsWith() //是否以指定内容结尾
    
  • 获取新字符串( --> String)

    contact() // 将指定字符串拼接在字符后,同"+"z作用
    substring(fromIndex) // 以指定下标开始截取后面所有字符串成为新的字串
    substring(formIndex, endIndex) // 以指定下标为界,截取字串。[formIndex,endIndex)
    replace(oldchar, newchar) // 将字符串中的字符,替换为指定字符
    repalce(CharSequence, CharSequence)
    trim() // 忽略首尾空格
    toLowerCase() // 转小写
    toUpperCase() // 转大写
    
  • 获取其他

    length() -->int // 字符串长度
    getByte() -->byte[] // 获取字节数组
    toCharArray() -->char[] //获取字符数组
    charAt(index) -->char // 根据指定下标获取字符串元素
    split(String regex) -->String[] //以指定内容切割字符串
    

4、StringBuffer类

StringBuffer类,带缓冲区的字符串类,线程安全,可以自由扩展字符串的长度

4.1 构建对象

new StringBuffer(); // 默认缓冲区为16
new StringBuffer(int capacity); //指定缓冲区大小
new Stringbuffer(String s); // 开辟对象。存入s内容

4.2 常用方法

//1. 添加
StringBuffer append(data) //字符串末尾添加内容。data表示基本数据类型与对象(对象存入的是toSting()内容)
StringBuffer insert(int offset, data) //在指定位置,插入数据

//删除
StringBuffer delete(int start, int end) //删除[start,end)间的内容
StringBuffer deleteCharAt(index) //删除指定下标字符

//更改
StringBuffer reverse() //反转字符串
void setCharAt(int index, char) // 将指定下标字符替换为目标字符
void setLength(int newLength) // 按指定长度 从头截取/扩展字符串(扩展时补充空字符)
StringBuffer replace(int start, int end, String str) //将[start,end)区间内字符替换为目标字符

5、StringBuilder类

提供方法与StringBuffer类相同

String、StringBuffer与StringBuilder区别

  • String为字符串常量,StringBuffer与StringBuilder为字符串变量
  • 性能方面:StringBuilder > StringBuffer > String(String对象一旦创建后该对象是不可更改的,后两者的对象是变量是可以更改的)
  • 安全性:String、StringBuffer是线程安全的,StringBuilder是线程不安全的

6、Math类

Math类包含执行基本数字运算的方法,如基本指数,对数,平方根和三角函数。

6.1 属性

static double E   // 自然对数。  
static double PI  // 圆周率 

6.2 常用方法

static double abs(数值类型)  // 返回值double类型绝对值。 可能存在返回负数的情况,abs底层源码为当值为负数时直接取反,int与long负数取反后超过范围导致失败
static double ceil(double a) // a的向上取整 double类型
static double floor(double a) // a的向下取整 double类型
static double pow(double a, double b)  // 求a^b  
static int round(float/double a) // 四舍五入 底层实现Math.floor(a + 0.5);
static double sqrt(double a) // a的平方根  
static double random() // 返回[0,1)的随机小数 底层是Random类对象调用nextDouble()方法。 

7、Random类

该类的实例用于生成伪随机数

Random中存在一个seed变量,利用seed为参数,使用算法(线性同余伪随机数生成器)生成伪随机数。当Random调用无参构造时seed为系统默认时间。

常用方法

boolean nextBoolean() //随机生产boolean类型数值
double nextDouble() //随机生成[0,1)之间的小数
int nextInt(int bound)  //随机生成[0,bound)间的整数

8、BigDecimal类

不可变的十进制小数。提供对其进行精确的运算的方法

8.1 常用属性

static int ROUND_UNNECESSARY    //不进行舍入
static int ROUND_CEILING    //向正无穷方向舍入 (0.05 --> 0.1 / -0.05 --> 0.0)
static int ROUND_FLOOR    //向负无穷方向舍入 (0.05 --> 0.0 / -0.05 --> -0.1)
static int ROUND_UP    //向远离0的方向舍入 (0.05 --> 0.1 / -0.05 --> -0.1)
static int ROUND_DOWN    //向零方向舍入 (0.05 --> 0.0 / -0.05 --> 0.0)
static int ROUND_HALF_DOWN    //五舍六入(0.05 --> 0.0 / 0.06 --> 0.1)
static int ROUND_HALF_UP    //四舍五入(0.05 --> 0.1)
static int ROUND_HALF_EVEN    //如果最后保留位是奇数,则对其后数四舍五入,如果是偶数,对其后数五舍六入

8.2 构建对象

BigDecimal(int val) //int类型值转为BigDecimal对象 。 
BigDecimal(String val) //将字符串表示的数值转换为 BigDecimal对象 。 

强烈建议不使用BigDecimal(double val),

8.3 常用方法

xxxValue()  // 将此 BigDecimal转换为基本数据类型 。  
int compareTo(BigDecimal val) // 两数相比较,-1为小于 0为等于 1为大于
BigDecimal add(BigDecimal augend) //两数相加
BigDecimal subtract(BigDecimal subtrahend)  // 两数相减
BigDecimal multiply(BigDecimal value) //两数相乘
BigDecimal divide(BigDecimal diviso); //两数相除 除不尽时,抛出ArithmeticException 。 
BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)    //两数相除,除不尽按指定保留小数四舍五入。scale保留小数位数,roundingMode保留方式
BigDecimal pow(int n)  //对象的n次方

9、Date类与SimpleDateFormat类

Date – 用于表示日期与时间的类(精确到毫秒,方法基本已被弃用,被Calendar类方法替代)

SimpleDateFormat – 用于格式化与解析日期与时间 (搭配Date类使用)

9.1 Date对象创建

//1. 无参
Date date = new Date(); //获取当前系统时间 Thu Apr 16 17:27:30 CST(时区) 2020
//2. 有参
Date date = new Date(long date); //将毫秒值转为Date对象。与1970-01-01 00:00:00比较得出的时间

9.2 SimpleDateFormat

主要作用:

  • 将Date对象格式化为String类型
  • 将String解析为Date对象

9.2.1 创建对象

// 1. 无参
SimpleDateFormat sdf = new SimpleDateFormat(); //使用默认格式yy-M-dd aK:ss格式化或解析
//2. 有参
SimpleDateFormat sdf = new SimpleDateFormat(String pattern); //使用自定义模板格式化或解析

常用格式

字母 指代意义 例子
G 时代(公元前/公元) AD
y yyyy:2020
M MM:04
W 周(每月) 数字表示形式
E 文本形式
a AM/PM PM
d 日(每月) 16
H 时(24小时制0-23) 23
K 时(12小时值0-11,通常搭配a) 下午5
m 分钟 56
s 56

9.2.2常用方法

String format(Date date) // 将日期格式化成日期/时间字符串 
Date parse(String source) // 将给定字符串解析为Date对象。  

10、Calendar类

日历类(抽象类),用于不同日期格式处理的工具

10.1 创建对象

Calendar calendar = new GregorianCalendar();//使用子类创建对象
Calendar rightNow = Calendar.getInstance(); //使用其静态方法。使用默认时区和区域设置获取日历

10.2 常用属性

static int YEAR	     //年
static int MONTH	//月 默认从0开始,需要 +1 使用
static int DAY_OF_MONTH	//日 外国默认星期天开始 即星期天表示1、星期一为2
static int HOUR_OF_DAY	//时  
static int MINUTE	//分
static int SECOND/MILLISECOND	//秒/毫秒
static int DAY_OF_WEEK	//星期

10.3 常用方法

int get(int field) //返回给定日历属性的值。 
void set()  //设置日历对应属性值

转载:https://blog.csdn.net/sinat_39382216/article/details/105568983
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场