java常用类
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java常用类相关的知识,希望对你有一定的参考价值。
Java 常用类
1.1 Object
- equals(Object obj)方法
比较对象相等 Object类的实现是 等价于 ==
自己的类要比较对象相等,重写equals()方法
- protected Object clone()
克隆对象的方法 被克隆的对象的类必须实现Cloneable接口
- finalize()方法
当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法
- hashCode()方法
返回该对象的哈希码值
当我们重写equals()方法,判断两个对象相等时,最好也同时重写hascode()方法,让相同的对象,哈希码值也相同
- toString()方法
直接打印对象时,默认调用对象的toString()方法
Object类的toString方法输出格式:
getClass().getName() + ‘@‘ + Integer.toHexString(hashCode())
自己的类要重写toString()
1.2 String
Java.lang包下 注意构造方法
- charAt(int index) 返回指定索引处的 char 值。
- compareTo(String anotherString) 按字典顺序比较两个字符串。
返回值是int
当第一个比第二个大 返回正整数
当第一个比第二个小 返回负整数
当第一个等于第二个 返回0
判断大小,看结果返回值和0去比较
- compareToIgnoreCase(String str) 按字典顺序比较两个字符串,不考虑大小写。
- concat(String str) 将指定字符串连接到此字符串的结尾。
- contains(CharSequence s)
当且仅当此字符串包含指定的 char 值序列时,返回 true。
- endsWith(String suffix) 测试此字符串是否以指定的后缀结束。
- equals(Object anObject) 将此字符串与指定的对象比较。
- equalsIgnoreCase(String anotherString) 将此 String 与另一个 String 比较,不考虑大小写。
- indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。
- indexOf(String str) 返回第一次出现的指定子字符串在此字符串中的索引。
//判断一个字符串在字符串第一次出现的索引位置
//当没有出现时,返回索引为-1 可以使用该方法判断子串是否存在
int index3 = str2.indexOf("xyz");
System.out.println(index3);
- lastIndexOf(int ch) 返回指定字符在此字符串中最后一次出现处的索引。
- length() 返回此字符串的长度。 数组的长度:数组对象.length 属性
- replace(char oldChar, char newChar)
返回一个新的字符串,它是通过用 newChar 替换此字符串中出现的所有 oldChar 得到的。
- split(String regex) 根据给定正则表达式的匹配拆分此字符串。
- startsWith(String prefix) 测试此字符串是否以指定的前缀开始。
- substring(int beginIndex)
返回一个新的字符串,它是此字符串的一个子字符串。该子字符串始于指定索引处的 字符,一直到此字符串末尾。
- substring(int beginIndex, int endIndex)
返回一个新字符串,它是此字符串的一个子字符串。该子字符串从指定的 beginIndex 处开始,一直到索引 endIndex - 1 处的字符。
- toCharArray() 将此字符串转换为一个新的字符数组。
- toLowerCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为小写。
- toUpperCase() 使用默认语言环境的规则将此 String 中的所有字符都转换为大写。
- trim() 返回字符串的副本,忽略前导空白和尾部空白。
- valueOf(int i) 返回 int 参数的字符串表示形式。
1.3 StringBuffer和StringBuilder
Java.lang包下
- append () 为该StringBuffer对象添加字符序列,返回添加后的该StringBuffer对象引用。
- insert () 为该StringBuffer对象在指定位置插入字符序列,返回修改后的该StringBuffer对象引用。
- delete (int start,int end) 可以删除从start开始到end-1为止的一段字符序列,返回修改后的该StringBuffer对象引用。
- deleteCharAt(int index) 移除此序列指定位置的 char
- reverse() 将字符序列逆序,返回修改后的该StringBuffer对象引用。
- setCharAt( (int index,char ch) 将给定索引处的字符设置为 ch。
StringBuilder:
JDK5.0 以后引入StringBuilder类能够提供与StringBuffer 相同的功能,
二者区别:
a) StringBuffer类是线程安全的,而StringBuilder则不是,即不保证其对象的同步性,在多线程环境中是不安全的。
b) StringBuilder在性能上要比StirngBuffer 好一些。
public static void main(String[] args){
StringBuffer sb = new StringBuffer();
sb += “I”;
sb.append(“am”;);
sb.append(true);
System.out.println(sb);
}
StringBuffer构造方法中可以传入String类型变量(对)
append方法参数只能是String类型变量(错)
代码运行结果是:I am true(错)
StringBuffer对象不能使用+=赋值(对)
1.4 Math
java.lang包下
Math.PI
public static double abs(double a)返回 double 值的绝对值
public static double random() 该值大于等于 0.0
且小于 1.0
public static long round(double a) 返回最接近参数的 long
。结果将舍入为整数
public static double ceil(double a)
返回最小的(最接近负无穷大)double 值,该值大于等于参数,并等于某个整数
public static double floor(double a)
返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数
实例:
int a,b,c;
a=(int)Math.round(-4.51);
b=(int)Math.ceil(-4.51);
c=(int)Math.floor(-4.51);
a b c 结果为 -5 -4 -5
1.5 Random
java.util包下
public int nextInt() 返回下一个伪随机数
public int nextInt(int n)
返回一个伪随机数,它是取自此随机数生成器序列的、在 0(包括)和指定值(不包括)之间均匀分布的 int 值
1.6 包装类
Java.lang包下
Java有8种基本数据类型,提供了8种包装类型,分别对应每种基本数据类型
作用:将基本数据类转换为类 从而产生对象。 类型转换
(1)集合使用
集合是能够存储其他对象的特殊对象 所以只能存对象
(2)类型转换使用
web开发从前台传递后台的参数都是String字符串,我们要将字符串转换为基本数据类型 例如 id=1 后台获取参数为“1”------》int 1
从下个阶段开始伴随你开发生涯的知识点,决定你的命运
int----------Integer
short------Short
byte-------Byte
long------Long
char------Character
float-----Float
double----Double
boolean----Boolean
//整数转字符串
int i = 10;----->String s = i+””; String.valueOf(i) 将整数转变为了字符串
//字符串转整数
(1)String s =“10”;---->int Integer.parseInt(s)--->int
(2)Integer ig = new Integer(s); ig.intValue()-->int
(3)public static Integer valueOf(String s)
(4)public static Integer valueOf(int i)
JDK1.5,包装类的新特性
自动打包 int------>Integer double----->Double Integer i = 10;
自动拆包 Integer------>int Double----->double int j = i;
实例:
Integer i1 = new Integer(3);
Integer i2 = new Integer(3);
System.out.println(i1==i2); //false 两个对象相等比较地址 不相等
int i3 = 3;
System.out.println(i1==i3);// true 自动拆包
Integer i4 =3; //自动打包
Integer i5 = 3;//自动打包
System.out.println(i4==i5);//true 自动拆包
1.7 Date/Calendar
java.util.Date(系统时间类,我们现在用这个) java.sql.Date(数据库时间类)
public Date()
分配 Date 对象并初始化此对象,以表示分配它的时间(精确到毫秒)。
public Date(long date)
分配 Date 对象并初始化此对象,以表示自从标准基准时间,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数
package com.bw;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);
//System.out.println(d.toLocaleString());
long time1 = d.getTime();//1970-1-1 00:00:00 GMT 到现在的 总毫秒数
System.out.println(time1);
long time2 = System.currentTimeMillis();
System.out.println(time2);//1970-1-1 00:00:00 GMT 到现在的 总毫秒数
Date d2 = new Date(time2);
System.out.println(d2);
}
}
1.8 DateFormat/SimpleDateFormat
java.text包 类 DateFormat 时间格式化类
public abstract class DateFormatextends Format 抽象类
java.text
类 SimpleDateFormat
public class SimpleDateFormatextends DateFormat 具体的类
时间的模式:
构造方法:
public SimpleDateFormat()
用默认的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
public SimpleDateFormat(String pattern)
用给定的模式和默认语言环境的日期格式符号构造 SimpleDateFormat
实例:
package com.bw;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTest {
public static void main(String[] args) {
Date d = new Date();
System.out.println(d);
//System.out.println(d.toLocaleString());
long time1 = d.getTime();//1970-1-1 00:00:00 GMT 到现在的 总毫秒数
System.out.println(time1);
long time2 = System.currentTimeMillis();
System.out.println(time2);//1970-1-1 00:00:00 GMT 到现在的 总毫秒数
Date d2 = new Date(time2);
System.out.println(d2);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String str = sdf.format(d2);
System.out.println(str);
}
}
以上是关于java常用类的主要内容,如果未能解决你的问题,请参考以下文章
elasticsearch代码片段,及工具类SearchEsUtil.java