java常用类
Api
Apl:应用程序编程接口(工具类的一些方法)
常用类:
1.Object:所有类的父类
1.Object中的方法都可以被子类访问
Object类中的方法
1.getClass:返回对象的字节码文件对象
2.hashCode:返回对象的哈希码值(对象的内存地址值)
3.equls:比较两个对象是否相等
4.toString:getClass().getName() + "@" + Integer.toHexString(hashCode()) 类的全路径名 + @ + 对象的哈希码值的十六进制
如果我们想按照自己的想法输出对象,我们就需要重写toString方法。
(※ 面试题)
equls 与 == 的区别:
1.equls:底层的代码就是 ==
2.equls:只能比较引用数据类型
3.==:可以比较基本数据类型和引用数据类型,比较基本数据类型时比较的是值 比较引用数据类型时比较的是地址值.
常用的方法:
方法名 作用 返回值
hashCode() 获取对象hash值 int
toString() 将对象信息变为字符串返回 String
equals(Object obj) 判断两个内存地址是否一样 boolean
getClass() 获取类名 Object
包装类
基本数据类型是没有方法的,但是可以通过包装类来实现方法的调用
写法上只有 int - Integer char - Character
其他的都为首字母大写
装箱和拆箱:
装箱:穿衣服(变强)基本数据类型 —>包装类
拆箱:脱衣服(变弱)包装类 —>基本数据类型
String:
1.被final修饰的类,不能被继承
2.字符串存在于常量池中。字符串的值一旦被初始化就不会被改变
如果new String() 会在堆内存中开辟空间
如果直接赋值的话,会在常量池中开辟空间
常用的String方法:
方法名 作用 返回值
isEmpty() 判断是否为空 boolean
length() 取到该String的长度 int
equals(Object obj) 判断两个字符串是否相等 boolean
equalsIgnoreCase(String as) 不区分大小写比较 Object
charAt(int index) 返回该下标的char char
substring(int start) 截取字符串下标从start开始 String
substring(int start,int end) 截取区间字符串从start开始到end结束(包头不包尾) String
replace(char old,char new) 替换字符串 String
trim() 去掉字母首尾空格 String
indexOf() 寻找某个字符串在目标字符串的位置 int
String的类型转换:
方法名 作用 返回值
getBytes() 转换成bytes型数组 byte[]
toCharArray() 转换成char型数组 char[]
String valueOf(char[] chs) 将入参类型转换为String String
toLowerCase() 将所有英文字母转换为小写字母 String
toUpperCase() 将所有英文字母转换为大写字母 String
concat(String str) 将指定字符串连接到此字符串的结尾 String
StringBuffer
常用的方法:
方法名 作用 返回值
append(String str) 追加字符串 StringBuffer
insert(int offset,String str) 指定位置追加字符串 StringBuffer
deleteCharAt(int index) 删除下标处的字符 StringBuffer
delete(int start,int end) 删除下标区间的字符 StringBuffer
replace(int start,int end,String str) 替换区间字符 StringBuffer
reverse() 反转字符串 StringBuffer
substring(int start,int end) 截取区间字符串从start开始到end结束(包头不包尾) String
substring(int start) 截取字符串 String
split() 拆分字符串 String[]
Integer
常用方法:
方法名 作用 返回值
intValue() 转换成int int
parseInt(String s) String转换成int int
valueOf(String s) String转换成Integer Integer
String toBinaryString(int i) 转换成2进制 String
toOctalString 转换成8进制 String
toHexString(int i) 转换成16进制 String
toHexString(int i) 十进制到其他进制 String
parseInt(String s,int radix) 其他进制到十进制 int\
Character
常用的方法:
方法名 作用 返回值
isUpperCase(char ch) 判断指定字符是否为大写字母 boolean
isLowerCase(char ch) 判断指定字符是否为小写字母 boolean
isDigit(char ch) 如果字符串中只含有数字则返回True boolean
toUpperCase(char ch) 将小写字符转换为大写 char
toLowerCase(char ch) 将大写字符转换为小写 char
Math
常用的方法:
方法名 作用 返回值
abs(int a) 取绝对值 int
ceil(double a) 返回最小值 double
floor(double a) 返回最大值 double
max(int a,int b) 取最大值 int
pow(double a,double b) 求幂 double
random() 随机数 double
round(float a) 四舍五入成整数 int
sqrt(double a) 求double值的正平方根 double
Calendar
常用的方法:
方法名 作用 返回值
getInstance() 获取日期 Calendar
get(int field) 获取年/月/日/时/分/秒 int
add(int field,int amount) 计算时间 void
set(int year,int month,int date) 设置时间 void
Random
常用的方法:
方法名 作用 返回值
nextInt() 生产一个随机数 int
nextInt(int n) 生成一个0~n之间的随机数 int
StringBuffer、StringBuilder和String是Java中字符串处理的三种常用类。
1.String是不可变的,即一旦创建就不能被修改。每次对String进行修改时,都会创建一个新的String对象,因此频繁的字符串操作会造成较大的性能开销。
2.StringBuffer是可变的,可以动态修改字符串内容。每次对StringBuffer进行修改时,不会创建新的对象,而是直接在原对象上进行操作,因此更加高效。但是StringBuffer是线程安全的,多线程环境下使用StringBuffer可以避免并发问题。
-
StringBuilder也是可变的,与StringBuffer相似,但是StringBuilder不是线程安全的。在单线程环境下,性能更高于StringBuffer,因此通常推荐在单线程场景下使用StringBuilder。
综上所述,如果需要频繁地对字符串进行修改操作且在多线程环境下使用,应优先选择StringBuffer;如果在单线程环境下进行字符串操作,推荐使用StringBuilder;如果不需要修改字符串内容或者只需少量修改,使用String即可。