15_实用类-1

15_实用类-1

枚举

枚举的使用

引用数据类型:

  • 数组
  • 接口
  • 枚举(Enum)

在数学和计算机科学理论中,一个集的枚举是列出 某些有穷序列集 的所有成员的程序。

枚举(enumerate,Enum)在日常生活中很常见,例如表示星期的SUNDAY、MONDAY、TUESDAY、WEDNESDAY、THURSDAY、FRIDAY、SATURDAY就是一个枚举。

JDK 1.5 出现。

// 定义枚举类
public enum 枚举类型名 {
	枚举值1, 枚举值2, ...[;]
    [构造]
    [属性]
    [方法]    
}
// 使用枚举
Gender.枚举值

枚举的本质

  • 枚举本质上就是一个类,所以它是一个引用数据类型
  • 枚举类型无法在继承其他的类,因为继承了的Enum类
  • 枚举类型的枚举值,实际上就是枚举类型的对象

包装类

基本类型 -> 包装类型

  • byte - Byte
  • short - Short
  • int - Integer
  • long - Long
  • fioat - Float
  • double - Double
  • char - Character

包装类型的出现是可以解决:

  • 基本类型无法使用方法的问题
  • 基本类型作为成员变量时,有默认值的问题
  • 基本类型无法赋值为 null 的问题

**千万注意:**包装类型的出现不是为了替代基本类型,而是完善基本类型的。

Java是一个完全面向对象的编程语言?(面试题)

  • 不是,因为它有基本数据类型。但是,java定义了包装类型可以完善基本类型。

常用方法:

  • static valueOf(基本数据类型):对应的包装类型 将基本类型转化为对应的包装类型
  • static valueOf(String s):对应的包装类型 将字符串转化为对应的包装类型
  • static toString(String s):String 将基本数据类型转化为包装类型
  • toString():String 将包装类型转化为字符串

在 JDK 1.5 以前,Java 中的包装类型和基本类型,转换需要使用相应的 API,例如:构造方法或是 valueOf、xxxValue。

在 JDK 1.5 以后,Java 提供了自动装箱和拆箱。直接转换,赋值过程就实现了转换。

Math类

随机范围整数的公式:[min, max)

  • (int) (Math.random() * (max - min)) + min

Math:数学,java.lang包下的一个数学工具类。提供了大量的静态方法,用于数学计算。

常用方法:

  • random() : double 随机 [0.0, 1.0) 范围的浮点数
  • sqrt(double) : double 求平方根
  • pow(double, double) : double 幂运算
  • abs(int) : int 求绝对值
  • floor(double) : double 向下取整
  • ceil(double) : double 向上取整
  • round(double) : long 四舍五入
  • max(double, double) : double 求最大值
  • min(double, double) : double 求最小值

Random类

生成随机数。

构造方法:

  • Random() 默认以时间为种子数生成随机数对象
  • Random(long seed) 传入种子数生成随机数对象

常用方法:

  • nextInt(int) : int 生成 [0, max) 的随机整数
  • nextDouble() : double 生成 [0.0, 1.0) 的随机小数

不建议使用。

推荐采用: Random 的子类 ThreadLocalRandom

ThreadLocalRandom current = ThreadLocalRandom.current();
// [1, 4)
int nextInt = current.nextInt(1, 4);
System.out.println(nextInt);

String类

常用方法:

  • equals(Object):boolean 比较两个字符串的内容是否一致

  • equalslgnoreCase(String anotherSting):boolean 比较两个字符串的内容是否一致

  • toUpperCase():String 将字符串转化为大写

  • toLowerCase():String 将字符串转化为小写

  • length():int 获取字符串的长度

  • isEmpty():boolean 判断字符串是否为空字符串

  • charAt(int index):char 在字符串根据下标获取字符串

  • startsWith(String prefix):boolean 判断字符串是否已指定前缀开头

  • endsWith(String suffix):boolean 判断字符串是否以指定后缀结尾

  • indexOf(String str):int 获取子字符串在字符串中的位置(从前往后找第一个),如果找不到返回-1

  • lastIndexOf(String str) : int 获取子字符串在字符串中的位置(从后往前找第1个),如果找不到返回 -1

  • substring(int beginIndex) : String 从指定下标截取子串(包含 beginIndex,截取到最后)

  • substring(int beginIndex, int endIndex) : String 从指定下标截取子串到指定下标结束(包含beginIndex,不包含endIndex)

  • concat(String) : String 拼接字符串

  • replace(CharSequence target, CharSequence replacement) : String 替换字符串

  • contains(CharSequence s) : boolean 判断字符串中是否包含指定字符

  • split(String regex) : String[] 将字符串按照指定正则切割为字符串数组

  • static join(CharSequence delimiter, CharSequence… elements) : String 根据指定分隔符拼接字符串

  • join(CharSequence delimiter, Iterable<? extends CharSequence> elements) : String 根据指定分隔符拼接集合中的元素

  • trim() : String 去除字符串左右两侧的空格

  • toCharArray() : char[] 将字符串转换为字符数组

  • format(String format, Object… args) : String 格式化字符串

final、finally、finalize区别(面试题)

final:可以用来修饰类、变量、方法

  • 修饰类之后,该类无法被继承
  • 修饰变量之后,变量变为常量
    • 基本类型:不允许被再次赋值
    • 引用类型:不允许更改地址,但允许更改内容
  • 修饰方法之后,该方法无法被重写

finally:是用于异常处理中,用于编写无论是否出现异常的情况下都会执行的代码段。一般在其中编写的都是释放资源之类的代码。

finaloze:它是Object类中的方法,当GC对象之后,就会调用该方法,是为了给对应的对象进行一些收尾工作。

Integer(面试题)

在Integer中定义的成员内部类IntegerCache,将 -128 到 127 之间的每个数字先提前封装成Integer对象,并且缓存起来。

将int类型的数据赋值给Integer引用的时候,会发生自动装箱,这时不是将每个int值都包装成Integer对象,而是先判断当前需要包装的int值在不在IntegerCache缓存的数组中,如果有直接将缓存数组中的对象的地址赋值给程序中的x和y引用。但是128并不再缓存中,所以每次装箱都会重新封装128为一个新的对象。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值