数据类型包装类
Double类:
Double 类在对象中包装一个基本类型 double 的值。
Double 类提供了很多方便的公共静态方法:
(1)public static int compare(double d1, double d2),比较double类型的d1、d2大小,d1>d2->1,d1<d2->-1,d1=d2->0
(2)public static Double valueOf(String s)与public static double parseDouble(String s),作用:都是将String类型的字符串转换为浮点数,底层的解析方法是一样的,只不过返回值有一点差异而已,前者返回Double类型,后者double基本数据类型
(3)public static String toString(double d),作用:将double数据类型转换为String类型
Integer包装类:
Integer 类在对象中包装了一个基本类型 int 的值。
Integer 类与Double 类差不多,不多解释
方法 | 返回值 | 功能描述 |
---|---|---|
byteValue() | byte | 以 byte 类型返回该 Integer 的值 |
intValue() | int | 以 int 型返回此 Integer 对象 |
zebra stripes | are neat | 以 int 型返回此 Integer 对象 |
toString() | String | 返回一个表示该 Integer 值的 String 对象 |
valueOf(String str) | Integer | 返回保存指定的 String 值的 Integer 对象 |
parseInt(String str) | int | 返回包含在由 str 指定的字符串中的数字的等价数值 |
//十进制转成十六进制,返回值为String类型
Integer.toHexString(int i)
//十进制转成八进制
Integer.toOctalString(int i)
//十进制转成二进制
Integer.toBinaryString(int i)
//十六进制转成十进制
Integer.valueOf("FFFF",16)
//八进制转成十进制
Integer.valueOf("876",8)
//二进制转十进制
Integer.valueOf("0101",2)
//功能和Integer.valuesOf()一样
Integer.parseInt(String,radix);
String bb="1100";
String cc="1101";
int e=Integer.valueOf(bb,2);//功能一样
int ee=Integer.parseInt(cc, 2);
System.out.println(e);
System.out.println(ee);
String类
String类
String 类代表字符串。
(1)String类提供了将基本数据类型转换为字符串类型的静态方法valueOf():
(2)平常开发中对于字符串的操作应该是很频繁的了,字符串对象有很多方法可以直接使用:
(3)public boolean matches(String regex),作用:判断此字符串是否匹配正则表达式regex,匹配返回true,否则false
可以看到,此方法最终是调用的java.util.regex.Pattern类下matches()方法,示例:
(4)public String trim(),作用:去除字符串首尾两端的空格,示例:
isEmpty()是判断字符串是否为空的方法,建议写入StringUtil工具类,方便后面直接使用
(5)public boolean equals(Object anObject),作用:比较字符串内容
a、我们知道根类Object类也有equals方法:
它是直接比较两个对象的引用是否相等,也就是比较的内存地址,如果是两个不同对象,很显然返回false,而String类也有equals方法,但是重写了此方法,先比较对象的引用,相等直接返回true,不相等继续判断,如果此对象是String类的实例,而且其内容(也就是字符串值)相等,则也返回true,否则返回false,所以,对于字符串来说,equals方法其实就是比较的两个字符串内容是否相等
b、我们先看一下String类的equals方法:
c、再测试一下:
可以看到,由于new了两个不同的String对象,直接==比较内存地址肯定是不等的,false,而使用String类equals方法则是还比较了其内容,相等,所以true
(6)split()方法,作用:将字符串根据参数分割为字符串数组,示例:
(7)toCharArray方法,作用:将字符串转换为字节数组,示例:
(8)replace()和replaceAll()方法,作用:都是字符串替换
(9)equals()和equalsIgnoreCase(),作用:判断字符串内容相等,后者忽略大小写,示例:
(10)剩下比较简单的字符串操作方法我们通过实例演示:
方法 | 返回值 | 功能描述 |
---|---|---|
indexOf(int ch) | int | 搜索字符 ch 第一次出现的位置 |
indexOf(String value) | int | 搜索字符串 value 第一次出现的位置 |
lastIndexOf(int ch) | int | 搜索字符ch最后一次出现的位置 |
lastIndexOf(String value) | int | 搜索字符串 value 最后一次出现的位置 |
substring(int index) | String | 提取从位置索引开始到结束的字符串 |
substring(int beginindex, int endindex) | String | 提取beginindex和endindex之间的字符串部分 |
trim() | String | 返回一个前后不含任何空格的调用字符串的副本,意思是把字符串前后的空格部分去除 |
//字符串连接
concat();
StringBuffer类
StringBuffer 类是可变的。
线程安全的可变字符序列。
示例:
方法 | 返回值 | 功能描述 |
---|---|---|
insert(int offsetm,Object s) | StringBuffer | 在 offetm 的位置插入字符串s |
append(Object s) | StringBuffer | 在字符串末尾追加字符串s |
length() | int | 确定 StringBuffer 对象的长度 |
setCharAt(int pos,char ch) | void | 使用 ch 指定的新值设置 pos 指定的位置上的字符 |
toString() | String | 转换为字符串形式 |
reverse() | StringBuffer | 反转字符串 |
delete(int start, int end) | StringBuffer | 删除调用对象中从 start 位置开始直到 end 指定的索引(end-1)位置的字符序列 |
replace(int start, int end, String s) | StringBuffer | 使用一组字符替换另一组字符。将用替换字符串从 start 指定的位置开始替换,直到 end 指定的位置结束 |
Math类
Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。
Math类公共静态方法:
(1)public static double random(),作用:生成[0,1.0)区间的随机double 类型的数字
(2)public static int abs(int a),作用:返回一个数的绝对值
(3)public static long round(double a),作用:四舍五入,示例:
(4)public static double ceil(double a),作用:向上取整
示例:
(5)public static double floor(double a),作用:与(4)相反,向下取整
示例:
(6)public static int max(int a, int b)与public static int min(int a, int b)分别为取两数之间较大和较小值
(7)public static double pow(double a, double b),作用:次方,返回a的b次方数,示例:
方法 | 返回值 | 功能描述 |
---|---|---|
sin(double numvalue) | double | 计算角 numvalue 的正弦值 |
cos(double numvalue) | double | 计算角 numvalue 的余弦值 |
acos(double numvalue) | double | 计算 numvalue 的反余弦 |
asin(double numvalue) | double | 计算 numvalue 的反正弦 |
atan(double numvalue) | double | 计算 numvalue 的反正切 |
pow(double a, double b) | double | 计算 a 的 b 次方 |
sqrt(double numvalue) | double | 计算给定值的平方根 |
abs(int numvalue) | int | 计算 int 类型值 numvalue 的绝对值,也接收 long、float 和 double 类型的参数 |
ceil(double numvalue) | double | 返回大于等于 numvalue 的最小整数值 |
floor(double numvalue) | double | 返回小于等于 numvalue 的最大整数值 |
max(int a, int b) | int | 返回 int 型 a 和 b 中的较大值,也接收 long、float 和 double 类型的参数 |
min(int a, int b) | int | 返回 a 和 b 中的较小值,也可接受 long、float 和 double 类型的参数 |
rint(double numvalue) | double | 返回最接近 numvalue 的整数值 |
round(arg) | arg 为 double 时返回 long,为 float 时返回 int | 返回最接近arg的整数值 |
random() | double | 返回一个介于0与1之间的伪随机数 |
Class类
String obj=new String();
Class c;
c=obj.getClass();
System.out.println("String对象的类型是"+c.getName());;
c=Integer.class;
System.out.println("Integer对象的类型是"+c.getName());;
c=Class.forName("java.lang.String");
System.out.println("Character对象的类型是"+c.getName());;
c=c.getSuperclass();
System.out.println("Character对象的类型是"+c.getName());;
}
Object类
类 Object 是类层次结构的根类。
以下是所有对象都具有的方法:
(1)equals()方法,作用:比较两个对象(其实是比较两个对象的引用)和“==”不同,其表示的是内存是否相同
(2)hashCode()方法,作用:返回此对象的hashCode值:
可以看到,此方法是native本地方法,native关键字说明其修饰的方法是一个原生态方法,方法对应的实现不是在当前文件,而是在用其他语言(如C和C++)实现的文件中。Java语言本身不能对操作系统底层进行访问和操作,但是可以通过JNI接口调用其他语言来实现对底层的访问。简单地讲,一个Native Method就是一个java调用非java代码的接口。一个Native Method是这样一个java的方法:该方法的实现由非java语言实现,比如C。这个特征并非java所特有,很多其它的编程语言都有这一机制,比如在C++中,你可以用extern "C"告知C++编译器去调用一个C的函数。
这里暂不做深入讨论
(3)toString()方法,作用:返回此对象的一种表示形式:
可以看到,返回的是对象的全类名+@+hashCode码
对于一般对象来说,toString()方法是这样的:
而对于包装类来说,重写了toString()方法,将数值转换为String类型,字符串类型直接返回本身字符串
(4)至于其他几个方法,涉及到多线程相关知识,后面再讨论
方法 | 返回值 | 功能描述 |
---|---|---|
equals(Objectobj) | boolean | 将当前对象实例与给定的对象进行比较,检查它们是否相等 |
finalize() throws Throwable | void | 当垃圾回收器确定不存在对象的更多引用时,由对象的垃圾回收器调用此方法。通常被子类重写 |
getClass() | Class | 返回当前对象的 Class 对象 |
toString() | String | 返回此对象的字符串表示 |
wait() throws InterruptedException | void | 使当前线程进入等待状态 |
暂时简略介绍这些类具体请看其他具体博客,刚入门,请多多指教