Object类:
java的核心理念是万物皆对象,任何一个数据都可称为“对象”,对于这些“对象的描述”,存在一个超级父类:Object,任何一个引用类型的对象都可以赋值给Object类型变量。
1)Object对象的创建
Object data = new Datas();//data的类型是Object,但实际对象是Data,是上转型对象,如果在Data里定义了新的方法,data是不可调用的
2)Object类的常用方法
- toString方法:返回 Object对象的字符串表示形式。toString方法可重写
Object data = new Datas();
String dataStr = data.toString();//得到的dataStr是:data所处的包名.类名@编号
- equals方法:用来判断当前对象与给定的对象是否相等(是否是同一个对象)。
public boolean equals(Object target)
Object data2 = new Datas();
boolean bool = data.equals(data2);//bool值为false
Object data3 = data;
boolean bool2 = data.eqals(data3);//bool2值为true
- getClass方法:返回当前对象的运行时Class对象,可以用来获取对象的运行时[字节码对象Class(不可重写)
public final Class getClass();
Class cla = data.getClass();//获得data的运行时字节码对象
包装类
就像给基本数据类型穿上了战衣,给予他们更多的方法来应用,以便于解决一些问题
java基本数据类型4型8种都有一个对应的包装类
int——integer
double——Double
float——Float
byte——Byte
long——Long
char——Character
short——Short
boolean——Boolean
Character包装类
1)创建Character实例
- 通过构造器:public Character(char value)
Character ch = new Character('中');//这里的“中”是Character类型
- 静态方式获取:public static Character valueOf(char c)
Character ch2 = Character.valueOf('国');
2)Character包含的常用方法
- public char charValue():返回此character对象的char值
char chr = ch.charValue();//这里把character对象类型“中”转化为值类型型存入了ch中
- public int compareTo(Character get):比较大小
char chr2 = 'A';
Character chr3 = Character.valueOf('B');
int a = chr3.compareTo(chr2);//chr3>chr2则返回1,<则返回-1,=则返回0
- public String toString():返回此对象包含char值的字符串类型
String str = chr3.toString();//将chr3转化为字符串类型存入str
3)Character进行字符处理的常用方法
- public static boolean isDefined(int ch):是否为Unicode(0-56533)
- public static boolean isDigit(int ch):是否为数字
- public static boolean isLetter(int ch):是否为字母
- public static boolean isLetterOrDigit(int ch):是否为数字或字母
- public static boolean isLowerCase(int ch):是否为小写字母
- public static boolean isUpperCase(int ch):是否为大写字母
- public static boolean isWhitespace(int ch):是否为空格
- public static boolean toLowerCase(int ch):返回转化为小写的字符
- public static boolean toUpperCase(int ch):返回转化为大写的字符
**
演示:
**
public class TestCharacterStaticMenthods {
public static void main(String []args) {
/*字符处理*/
char []ch1= {'a','b',' ','j','H','5','6',' '};
countChar(ch1);
}
public static void countChar(char []ch) {
int low=0;//小写字母数量
int up=0;//大写字母数量
int let=0;//字母数量
int num=0;//数字数量
int spa=0;//空格数量
for(int i:ch) {
if (Character.isLetter(i)) {
let++;
if(Character.isLowerCase(i)) {
low++;
}else {
up++;
}
}else if(Character.isDigit(i)) {
num++;
}else if(Character.isWhitespace(i)) {
spa++;
}
}
System.out.println("字母数量"+let);
System.out.println("大写字母数量"+up);
System.out.println("小写字母数量"+low);
System.out.println("数字数量"+num);
System.out.println("空格数量"+spa);
}
}
integer包装类
1)integer的作用:对int类型进行包装,integer提供了多中方法,所以定义 类成员属性时经常用integer代替int从而应用更多integer的功能
2)integer的创建:
- public Integer(int value); 向下兼容均可
int n = 5;
Integer objint = new Integer(n);//将n中的数据从值类型转化为对象类型objint
- public Integer(String str);str必须是纯数字的字符串
String str1= "1123456";
Integer str = new Integer(str1);//将str1中的数据从值类型转化为对象类型str
3)常用方法:
- public static final int MAX_VALUE:int类型能够表示的最大值
- public static final int MIN_VALUE:int类型能够表示的最小值
- public static final int SIZE:int类型的二进制的补码形式bite位数
- public static final int BYTES:int类型在JVM中所占字节数
- public int compareTo(integer target):比较大小
int n=5;
Integer objint = new Integer(n);
int a = objint.compareTo(x);//此时objint>x,则a=1,<则a=-1,=则a=0
- public int intValue():以int类型返回,从对象类型转化为值类型,同样有byteValue,shortValue,doubleValue等等
- public static int parseInt(String s):将s字符串转化为十进制的int类型,必须是数字字符
public static int parseInt(String s, int radix):将s字符串转化为十进制的int类型,以radix为标识,radix通常取2,8,10,16,27。如:取2时将s以 二进制形式转化为十进制返回 - public static Integer valueOf(int i):得到一个引用类型,不需要new一个对象,效率更高,占用资源更少
- public static String toBinaryString(int i):将int类型的i转化为二进制,以字符串类型返回
类似有:toOctalString转化为8进制;toHexString转化为16进制
包装类与字符串是否相同的比较
对于包装类以及String类,比较是否相同时推荐使用equals方法
- 对于字符串
使用字面量创建字符串时将存在常量池中,如果常量池已存在该字面量,则会直接将地址指向该对象,而使用new的方式创建的字符串对象则直接存在于堆中;而使用==比较的是地址,这是存在于常量池中和直接存在于堆中的字符串即便是值相同返回也是false
- 对于包装类
以Integer为例,
Integer number = 1
这样自动装箱的方式创建包装类对象的时候实际是调用的valueOf(int)方法,该方法会将-128~127范围内的值存在于一个缓存池中,超出这个范围的则会new一个对象,所以只有在这个范围里,基本类型的int和包装类可以使用==判断是否相同
System类
1)
概述
System表示当前运行的JVM,System提供了标准输入,标准输出和错误输出流对象。 对外部定义的属性和环境变量的访问;加载文件和库的方法;快速复制数组的一部分的实用方法,以及告知系统时间和显示告知垃圾回收器回收垃圾释放内存空间的方法。 System是只读的,只能够获取而不能被实例化。
2)
常用方法
- System.in:获取标准输入流
- System.out:获取标准输出流
- System.err:获取错误输出流
- pubulic static void exist(int status):退出系统
- public static void gc():通知垃圾回收系统希望快速回收垃圾以释放内存空间
- public static long currentTimeMillis():获取当前系统时间毫秒表示
- public static Properties getProperties():获取当前系统属性的map集合
- public static String getProperty(String key):按照给定的名称获取当前系统属性字符串表示
演示:
import com.sun.xml.internal.fastinfoset.sax.Properties;
public class Test {
public static void main(String []args) {
outAndErr(23);//合法的年龄输出
outAndErr(-23);//不合法的年龄输出
//获取系统时间
long sysTime = System.currentTimeMillis();//获得的是一个毫秒时间
//期待垃圾回收器快速回收内存
System.gc();
//获取系统属性的map集合
java.util.Properties map = System.getProperties();
System.out.print(map);//map与python中的字典类似,key对应value
}
public static void outAndErr(int age) {
if (age<0) {
System.err.println("年龄不合法"+age);
}else {
System.out.println("年龄合法"+age);
}
}
}