Java 常用类库之lang包
Posted 洛阳泰山
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java 常用类库之lang包相关的知识,希望对你有一定的参考价值。
本章主要内容
java.lang包介绍以及包下类的使用
重点的类:
Object/String/StringBuffer/StringBuilder/包装类
了解的类
System/Math
java.util包介绍以及包下类的使用
重点的类
Date/Calendar/GregorianCalendar
了解的类
Scanner/Random
java.text包介绍以及包下类的使用
SimpleDateFormat/NumberFormat
java.lang包
java.lang包下放置了Java开发中常用的类和接口,所以为简化该包下类的使用,java.lang包下的类在使用时不需要导入这些类
java.lang包下常用类有:
- Object
- String
- StringBuffer和StringBuilder
- 八种基本数据类型的包装类
- Thread等等
Object类
java.lang.Object类是类层次结构中最顶层父类(基类,超类)。所有的类(包括数组)直接或者间接的继承自Object类,同时也继承了该类中的方法
代码示例
public class ClassA
public void test()
System.out.println("ClassA method_test");
public class ClassB extends ClassA
public static void main(String[] args)
Object objectA=new ClassA();
Object objectB=new ClassB();
//所有对象的父类,所有对象的引用都可以赋值给Object类型的引用变量,包括数组
Object objectC=new int[2];
Object的构造方法
Object类只有一个无参的构造方法
Object()
Object中常用的方法
- boolean equals(Object o) 比较两个对象是否相同
- int hashCode() 返回一个对象的哈希码
- String toString() 将一个对象转换为字符串
public class TestObject
public static void main(String[] args)
//通过无参构造器创建一个Object类型的对象
Object o1=new Object();
System.out.println("o1.hashCode()="+o1.hashCode());
System.out.println("o1.toString()="+o1.toString());
boolean equals(Object o)详解
- Object类的equals方法用于判断两个对象是否相等
- Object类的equals方法的返回值为boolean的true和false
- Object类的equals方法只有一种情况返回true:两个非空的引用变量o1和o2指向的是同一个对象时
- 代码示例
public class TestEquals
public static void main(String[] args)
Object O1=new Object();
Object O2=new Object();
Object O3=O2;
System.out.println("O1.equals(O2)="+O1.equals(O2));
System.out.println("O1.equals(O3)="+O1.equals(O3));
System.out.println("O2.equals(O3)="+O2.equals(O3));
equals方法和==的区别
- ==可以用于比较基本数据类型的值
- ==可以用于比较两个对象是否相等
- equals只能比较两个对象是否相等
String类
String类代表字符串,提供了开发中常用的字符串处理的方法,如:求字符串的长度、截取字符串、替换字符串等方法
字符串是常量,它的值创建之后就不可以再修改了。
String类常用构造方法
- String() 无参构造方法
- String(String str) 有一个字符串参数的构造方法
- String(char[]ch) 有一个char类型数组参数的构造方法
- String(byte[] b) 有一个byte数组参数的构造方法
声明和创建字符串对象的方式
代码示例
public class TestString
public static void main(String[] args)
String s1="hello,我是洛阳泰山";
String s2=new String();
String s3="";
char[] ch=new char[]'h','e','l','l','0';
String s4=new String(ch);
byte[] bts=new byte[]12,-120;
String s5=new String(bts);
String类常用方法
- int length() 求字符串值的字符个数
- boolean equals(Object o) 比较两个字符串是否相同
- String replace(char old,char n) 字符串替换
- char charAt(int index) 返回指定字符串指定位置的字符
- int compareTo(String s) 按字典顺序比较字符串大小
- boolean endsWith(String s) 比较字符串是否以指定的参数结尾
- boolean startsWith(String s)比较字符串是否以指定的参数开头
- String valueOf(int i)将基本数据类型转换为字符串
String类常用方法
- boolean isEmpty() 判别一个字符串值的长度是不是为0
- int indexOf(int ch) 返回指定字符ch在字符串中的索引
- int lastIndexOf(int ch)返回指定字符ch在字符串中最后出现的索引
- String substring(int begin)从指定索引位置截取字符串
StringBuffer和StringBuilder类
StringBuffer和StringBuilder都是带有缓冲区的可变字符串
为什么要使用StringBuffer或者StringBuilder
一个String对象的长度是固定的,不能改变它的内容,也不能附加新的字符至String对象中。可以使用加号“+”运算符来连接字符串以达到附加新字符或字符串的目的,但使用加号“+”运算符会产生一个新的String实例,即需要另外分配空间。如果既想节省开销,又能改变字符串的内容,则可以使用StringBuilder类。
StringBuffer类的构造方法
StringBuffer()
StringBuffer(String s)
StringBuffer的常用方法
StringBuffer append(int i)在可变字符串末尾追加I
StringBuffer insert(int offset,String s)在可变字符串指定位置插入另外一个字符串s
int length() 返回可变字符串中字符的个数
String toString() 将可变字符串转化为字符串对象
字符串总结
String类、StringBuffer和StringBuilder之间的区别
- String字符串是常量,一旦创建无法修改
- StringBuffer和StringBuilder是可变字符串,创建之后仍可以修改
- StringBuffer是线程安全的、StringBuilder线程不安全
包装类
java.lang包下为8种基本数据类型提供对应的包装类
8中基本数据类型以及对应的包装类
基本类型 | 包装类 |
byte | Byte |
short | Short |
int | Interger |
long | Long |
float | Float |
double | Double |
boolean | Boolean |
char | Character |
包装类提供了字符串、基本数据类型和包装类相互转化的方法
数字基本数据类型的包装类都继承了Number类,它们的使用方式相似,下面以常用的基本数据类型int对应的包装类Integer为例说明数字类型包装类的使用。
基本数据类型 int值转化为Integer类型对象
int i = 20;
Integer integer1 = new Integer(i);//方法一
Integer integer2 = Integer.valueOf(i);//方法二
Integer对象转化为基本数据类型int值
Integer integer = new Integer(20);
int i1 = integer.intValue();
String类型的数字转化为Integer对象
String s = “120”;
Integer integer1 = new Integer(s);//方法一
Integer integer2 = Integer.valueOf(s);//方法二
Integer类型转化为String类型
Integer integer = new Integer(20);
String s1 = integer.toString();
String类型的数字转化为基本数据类型的int值
String s = “120”;
int i1 = Integer.parseInt(s);//方法一
Integer integer = new Integer(s);
int i2 = integer.intValue();//方法二
基本数据类型int转化为字符串
int i1 = 20;
String str = String.valueOf(i1);//方法一
str = Integer.toString(i2);//方法二
Integer的equals方法
Integer的equals方法继承自Object,并且进行了重写
Integer的equals方法只有一种情况返回true:两个Integer类型的对象 i1 和 i2包含的值相等时;其他情况返回false
如:
Integer i1 = new Integer(20);
Integer i2 = new Integer(30);
Integer i3 = new Integer(20);
boolean b = i1.equals(i2);//false
b = i1.equals(i3);//true
数字类型包装类总结
根据基本数据类型int和对应包装类Integer的知识,总结如下内容
- byte/short/long/float/double类型和包装类之间转换的方法
- byte/short/long/float/double的包装类和字符串之间的转换方法
- byte/short/long/float/double类型和字符串之间的转换方法
boolean类型的包装类Boolean
Boolean用于将一个基本数据类型boolean值包装为对象
将boolean值转换为Boolean对象
Boolean b1 = new Boolean(true);//方法一
Boolean b2 = Boolean.valueOf(true);//方法二
将Boolean对象转换为boolean值
Boolean b = new Boolean(true);
boolean b1 = b.booleanValue();//方法一
String类型对象转换为Boolean对象
String s=“true”;
Boolean b1 = new Boolean(s);//方法一
Boolean b2 = Boolean.valueOf(s);//方法二
将Boolean对象转换为String类型
Boolean b = new Boolean(true);
String s1 = b.toString();//方法一
String s2 = Boolean.toString(b);//方法二
String s3 = String.valueOf(b);//方法三
boolean值转换为String对象
boolean b = true;
String s1 = String.valueOf(b);
String对象转换为boolean值
String s = “true”;
boolean b1 = Boolean.parseBoolean(s);//方法一
Boolean b = new Boolean(s);
boolean b2 = b.booleanValue();//方法二
字符包装类Character用于将char类型值包装为对象
将char值转换为Character对象
Character c1= new Character(‘A’);//方法一
Character c2 = Character.valueOf(‘A’);//方法二
将Character对象转换为String
Character c1= new Character(‘A’);
String str1= c1.toString();
将char转换为String
String str2= Character.toString(‘A’);
Character包装类除了提供以上char和Character相互转换的方法外也提供了以下有用的方法
方法 | 描述 |
boolean isLetter(char ch) | 判断字符是否是字母 |
boolean isDigit(char ch) | 判断字符是否是数字 |
boolean isWhiteSpace(char ch) | 判断字符是否是空格 |
boolean isUpperCase(char ch) | 判断字符是否是大写 |
boolean isLowerCase(char ch) | 判断字符是否是小写 |
char toUpperCase(char ch) | 返回字符的大写 |
char toLowerCase(char ch) | 返回字符的小写 |
String toString(char ch) | 返回字符转字符串 |
包装类总结
包装类是将基本数据类型的值包装为Java中的对象,Java语言为8种基本数据类型分别提供了包装类
包装类提供了基本数据类型、包装类、字符串之间的相互转换的方法,这些转换的的方法在今后的开发中十分有用。
Math类
方法 | 描述 |
double abs(double d) float abs(float f) int abs(int i) long abs(long lng) | 返回参数的绝对值 |
double ceil(double d) | 返回一个大于等于参数的最小整数 |
double floor(double d) | 返回一个小于等于参数的最大整数 |
double rint(double d) | 返回一个最接近参数的整数(类型为double) |
long round(double d) int round(double d) | 返回一个最接近参数的整数(类型为int或long) |
double min(double arg1,double arg2) float min(float arg1,float arg2) int min(int arg1,int arg2) long min(long arg1,long arg2) | 返回两个参数的最小值 |
double max(double arg1,double arg2) float max(float arg1,float arg2) int max(int arg1,int arg2) long max(long arg1,long arg2) | 返回两个数的最大值 |
代码示例
public class TestMath
public static void main(String[] args)
Double d=-12.94;
System.out.println(Math.abs(d));
System.out.println(Math.rint(d));
System.out.println(Math.round(d));
System类
System类代表运行时系统,提供了一些获取设置和获取当前系统运行环境的方法
System有三个成员变量
- in 标准输入流
- out 标准输出流
- err 错误输出流
System中的方法
- System.arrayCope()//快速复制数组的方法
- System.exit();//退出Java虚拟机的方法
作业
作业一:
创建一个Student类,该有String类型的学号stuNo,String类型的姓名,要求将该类所有的成员变量进行封装,并且提供公共的getter和setter方法,重写equals方法,只要学生的学号相同即返回true,重写toString()方法,toString方法返回值类似”姓名:张三 学号:201301 ”
String 类 String str = “abcd”; 求字符串的字符个数
将str字符串截取为”cd”
作业二:
编写敏感词过滤程序
在网络程序中,如聊天室、聊天软件等,经常需要对一些用户所提交的聊天内容中的敏感性词语进行过滤。如“色情”、“爆炸”、“恐怖”、“枪”等,这些都不可以在网上进行传播,需要过滤掉或者用其他词语替换掉。
思路:将用户的聊天内容保存到一个字符串对象或一个StringBuilder对象中,然后与敏感词语进行比对。如果属于敏感词语,就过滤掉或替换掉。
作业三:
在注册时通常要验证用户名和密码是否合法,运用学习过的知识完成如下操作:
用户名长度大于等于6-12位,必须包含数字和英文字母
密码长度大于等于8-20位,必须包含特殊符合_或者$,英文字母以及数字
以上两个条件同时成立注册才能成功。
以上是关于Java 常用类库之lang包的主要内容,如果未能解决你的问题,请参考以下文章
Java SE基础部分——常用类库之NumberFormat