1、lang包
- lang包提供了几乎每个应用程序都会用到的类 Object,Math,包装类,System,String等
- 这个包在使用时自动导入,因此不需要手动的使用import导入
2、System类
该类不能被实例化;
这个类提供了很多类属性和类方法用于实现每个程序最基本的操作;
- System.out:标准输出流
- System.err:错误信息输出流
- System.in:标准输入流
- System.exit(0):退出java虚拟机
- System.currentTimeMillis():获得当前时间的毫秒值
- System.arrayCopy():复制数组元素的方法
3、包装类
java为每个基本数据类型都提供了一个对应的包装类:
Integer;Short;Byte;Long;Float;Double;Blooean;Character;
每个包装类都提供了用于处理此类型的多个方法;
基本数据类型和包装类可以直接转换;这个过程叫做自动拆装包;
4、学会查看API文档
-
找到对应的类
-
查看类的结构
继承层次,实现接口;简要说明; 属性定义 构造方法 普通方法
5、Integer常用方法
Integer valueOf();
String toString();
int parseInt();
float floatValue();
6、引用数据类型之间的转换
- 向上转型:有继承关系,直接赋值即可;
- 向下转型:有继承关系,需要强制转换,可能造成ClassCastException异常
- 利用方法:可以无继承关系,Integer.valueOf()
7、Math
这个类包含了很多关于数学操作的方法(三角函数,指数等)
这个类不能实例化,所有的方法都是静态的
8、Object
所有类的父类;定义了所有类都实现的方法;
9、Object中的方法,共有11个
-
clone():克隆
-
equals():比较是否相等
-
toString():转换成String
-
hashcode():生成哈希码
-
finalize():垃圾回收前执行的代码
-
getClass():获得对象的类对象(反射)
-
线程: wait() notify() notifyAll()
10、toString方法
将对象转成字符串,通常的写法是将所有的属性值都连成一个完整的字符串;
当使用System.out.println(对象);时会自动调用toString方法;
11、hashcode
- hash算法是将长度不一的数值转成长度相等的数值的一种算法;(无论哪个对象都可以映射成一个整数)
- 协定:
同一个对象,执行多次hashcode时(对象里的值不变,应用程序不是关了又开再执行),结果相同
如果equals相同,那么hashcode一定相等 如果equals不等,那么hashcode也可能相等,但最好不等
12、equals
判断两个对象的内容是否相等
equals的原则
- 自反性:x,x
- 对称性:x,y
- 传递性:x,y,z
- 一致性:x,y x,y
- 与null比结果为false
13、finalize
垃圾回收前执行的代码
14、String 字符串常量
String代表字符串,是java中最常用的一个类;它是一个字符串常量,一旦定义就不能改变;
内部就是一个字符数组
不可被继承
如何创建一个字符串
最常用的:字面值 String str="hello world";
构造方法
15、字符串的方法
charAt():根据索引获得字符
length():获得字符数
getBytes():获得字节数组
compareTo():与另外一个字符串比较大小
contains():判断是否包含另一个字符串
equals():判断两个字符串的值是否相等
startsWith():是否以某个字符串开头
endsWith():是否以某个字符串结尾
replace():替换原有字符串,并返回新的(可以用来做删除 例:replace(“s”,""))
replaceAll():替换原有字符串,并返回新的(可以用正则表达式)
replaceFirst():替换第一次出现的原有字符串,并返回新的
isEmpty():判断是否为空串
subString():根据索引获得子串
split():根据字符串进行拆分成字符串数组
trim():去除左右空格
valueOf():将其它数据类型转换成String
16、字符串池 字面值
- 方法区:存放不变的信息
- 因为字符串是不可变的,为了提升性能,java对字符串做了特殊的处理,如果使用"字符串"形式定义了一个字符串,那么将会在字符串池中定义字符串,而不是在堆中每次创建新的字符串;
- 字符串池是方法区的一个组成部分
17、StringBuffer
可变的字符串缓冲区,如果需要对一个字符串频繁的做增删该查操作,那么建议使用此类;
常用方法:
特点:支持链式编程;适合对字符串进行处理(字符串适合存储)
insert():
delete():
append():
replace():
subString():
reverse():
- String与StringBuffer的转换:
String->StringBuffer:new StringBuffer(String);
StringBuffer->String:调用toString();
18、StringBuilder
与StringBuffer作用相同,只是它是线程不安全的;