Object类
* java. lang. object类是Java语言中的根类,即所有类的父类。它中描述的所有方法子类都可以使用。在对象实例
化的时候,最终找的父类就是0bject。
* 如果一个类没有特别指定父类,那么默认则继承自Object类。
* 常用方法:
* public string toString(): 返回该对象的字符串表示。
* 作用:打印对象的信息
* 重写前:打印的是包名类名@地址值
* 重写后:打印的是对象中的属性值
* public boolean equals(obiect obj): 指示其他某个对象是否与此对象“相等”。
* 作用:比较两个对象是否相同
* 重写前:比较的是对象的地址值
* 重写后:比较的是对象中的属性值
Objects类
* 在JDK7添加了一个0bjects工具类 ,它提供了一些方法来操作对象 ,它由一些静态的实用方法组成 ,这些方法是
null-save (空指针安全的)或null-tolerant (容忍空指针的) , 用于计算对象的hashcode、返回对象的字符串表
示形式、比较两个对象。
* 在比较两个对象的时候, Object的equals方法容易抛出空指针异常,而Objects类中的equals方法就优化了这个问
题。方法如下:
* public static boolean equals(object a, Object b) :判断两个对象是否相等。但加了一些健壮性的判断。
* 源码如下:
* public static boolean equals(Object a, object b) {
return (a == b) | (a != null && a.equals(b));
}
Date类
* java.util.Date类表示特定的瞬间,精确到毫秒。
* 查阅Date类的描述,发现Date拥有多个构造函数,只是部分已经过时,但是其中有未过时的构造函数可以把
毫秒值转成日期对象。
* public Date():分配Date对象并初始化此对象,以表示分配它的时间(精确到亳秒)。
* public Date(long date) ] :分配Date对象并初始化此对象,以表示自从标准基准时间(称为"历元
( epoch )",即1970年1月1日00:00:00 GMT )以来的指定毫秒数。
* tips:由于我们处于东八区,所以我们的基准时间为1970年1月1日8时0分0秒。
* long getTime() 返回自1970年1月1日以来,由 Date对象表示的00:00:00 GMT的毫秒数。
DateFormat类
* java. text . DateFormat :是日期/时间格式化子类的抽象类
作用:
格式化(也就是日期->文本)、解析(文本->日期)
成员方法:
String format(Date date) 按照指定的模式, 把Date日期,格式化为符合模式的字符串
Date parse(String source) 把符合模式的字符串,解析为Date日期
DateFormat类是一个抽象类,无法直接创建对象使用,可以使用DateFormat的子类
java. text . SimpleDateFormat extends DateFormat
构造方法:
SimpleDateFormat(String pattern)用给定的模式和默认语言环境的日期格式符号构造Simpl eDateFormat.
参数:
string pattern:传递指定的模式
模式:区分大小写的
y 年 M 月 d 天 H 时 m 分 s 秒
写对应的模式,会把模式替换为对应的日期和时间
"yyyy-MM-dd HH:mm:ss”
注意:
"yyyy年MM月dd日HH时mm分ss秒”
模式中的字母不能更改,连接模式的符号可以改变
Calendar类
* Calendar类的成员方法:
* public int get(int field):返回给定日历字段的值。
* public void set(int field, int value): 将给定的日历字段设置为给定值。
* public abstract void add(int field, int amount): 根据日历的规则,为给定的日历字段添加或减去指定的时间量。
* public Date getTime(): 返回一个表示此Calendar时间值(从历元到现在的毫秒偏移量)的Date对象。
Random类
* public static double random()返回值为double的正值,大于等于0.0 ,小于1.0 。 返回的值是从该范围(大约)均匀分布的伪随机选择的。
* 生成一个0-10之间的整数随机数:
* int num = (int)(Math.random()*10);
Math类
* 求一个数的幂次方:
* Math.pow(double a,double b);
System类
* 常用方法:
* public static long currentTimeMillis():返回以毫秒为单位的当前时间。
* public static void arraycopy(object src, int srcPos, object dest, int destPos, int length):
将数组中指定的数据拷贝到另一个数组中。
StringBuilder类
* 从版本JDK 5开始,StringBuffer已经被一个等同的类补充了,它被设计为使用一个线程, StringBuilder 。 通常应该使用StringBuilder类,
因为它支持所有相同的操作,但它更快,因为它不执行同步。
* 构造方法:
* java. lang. StringBuilder类:字符串缓冲区,可以提高字符串的效率
构造方法:
- public StringBuilder(): 构造-个空的StringBuilder容器 。
- public StringBuilder(String str): 构造-个StringBuilder容器, 并将字符串添加进去。
* 常用方法:
* public StringBuilder append(...) :添加任意类型数据的字符串形式,并返回当前对象自身。
* public String toString():将当前StringBuilder对象转换为String对象。
* StringBuilder reverse() 导致该字符序列被序列的相反代替。
* String toString() 返回表示此顺序中的数据的字符串。
* String类和StringBuilder类的区别:
* String类:
字符串是常量;它们的值在创建之后不能更改。
字符串的底层是一个被final修饰的数组,不能改变,是一个常量
private final byte[] value;
进行字符串的相加,内存中就会有多个字符串,占用空间多,效率低下
* StringBuilder类:
字符串缓冲区,可以提高字符串的操作效率(看成一个长度可以变化的字符串)
底层也是一个数组,但是没有被final修饰, 可以改变长度
byte[] value = new byte[16];
StringBuilder在内存中始终是一个数组,占用空间少,效率高
如果超出了StringBuilder的容量,会自动的扩容
* StringBuilder和string可以相互转换:
String->StringBuilder:可以使用StringBuilder的构造方法,
StringBuilder(String str) 构造一个字符串生成器,并初始化为指定的字符串内容。
StringBuilder->String:可以使用StringBuilder中的tostring方法
public String toString(): 将当前StringBuilder对象转换为String对象。
包装类
* 包装类概念:基本数据类型的数据,使用起来非常的方便但是没有对应的方法来操作这些数据所以我们可以
使用一个类,把基本类型的数据包装起来这个类叫包装类在包装类中可以定义一些方法用来操作基本类型的数据。
基本类型 | 对应的包装类(位于java.lang包中) |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
* 拆箱与装箱
基本类型与对应的包装类对象之间,来回转换的过程称为”装箱”与”拆箱" 。
* 装箱:从基本类型转换为对应的包装类对象。
* 构造方法:
Integer(int value) 构造一个新分配的Integer 对象,它表示指定的int值。
Integer(String s)构造一个新分配的Integer 对象,它表示String 参数所指示的int 值。
传递的字符串,必须是基本类型的字符串,否则会抛出异常"100" 正确"a” 抛异常
* 静态方法:
static Integer value0f(int i)返回一个表示指定的int值的Integer 实例。
static Integer value0f(String. s) 返回保存指定的String 的值的Integer 对象。
* 拆箱:从包装类对象转换为对应的基本类型。
* 成员方法:
int intValue() 以int类型返回该Integer 的值。
* 自动装箱与自动拆箱
基本类型的数据和包装类之间可以自动的相互转换,JDK1. 5之后出现的新特性。
* 自动装箱:直接把int类型的整数赋值给包装类
Integer in =1;就相当于Integer in = new Integer(1);
* 自动拆箱: in是包装类,无法直接参与运算,可以自动转换为基本类型的数据,再参与计算
in + 2;就相当于in. intValue() + 2 = 3;
in = in + 2;就相当于in = new Integer(3) 自动装箱
* 基本类型与字符串之间的转换
* 基本类型--->字符串
1.基本类型数据的值+"" 最简单的方式(工作中常用)
2.使用包装类中的静态方法
static String toString(int i)返回-一个表示指定整数的String 对象。
3.使用String类中的静态方法
static String value0f(int i) 返回int 参数的字符串表示形式。
* 字符串--->基本类型
使用包装类的静态方法parseXX( "字符串")
Integer类: static int parseInt(String s)
Double类:static double parseDouble(String s)
File类
概述
java.io.File类是文件和目录路径名的抽象表示,主要用于文件和目录的创建、查找和删除等操作。
File类是一个与系统无关的类,任何的操作系统都可以使用这个类中的方法
重点:记住这三个单词
file:文件
directory:文件夹/目录
path:路径
构造方法
- public File(string pathname) : 通过将给定的路径名字符串转换为抽象路径名来创建新的File实例。
参数:
String pathname:字符串的路径名称
路径可以是以文件结尾,也可以是以文件夹结尾
路径可以是相对路径,也可以是绝对路径
路径可以是存在,也可以是不存在
创建File对象,只是把字符串路径封装为File对象,不考虑路径的真假情况
- public File(String parent, String child) : 从父路径名字符串和子路径名字符串创建新的File实例。
参数:把路径分成了两部分
String parent :父路径
String child:子路径
好处:
父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径都可以变化
- public File(File parent, String child) :从父抽象路径名和子路径名字符串创建新的File实例。
参数:把路径分成了两部分
File parent:父路径
string child:子路径
好处:
父路径和子路径,可以单独书写,使用起来非常灵活;父路径和子路径都可以变化
父路径是File类型,可以使用File的方法对路径进行一些操作 再使用路径创建对象
静态成员变量
static string pathSeparator 与系统有关的路径分隔符,为了方便,它被表示为一个字符串。
static char pathSeparatorChar与系统有关的路径分隔符。
static String separator与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。
static char separatorChar 与系统有关的默认名称分隔符。
操作路径:路径不能写死了
C:develop/a/a. txt
windows
C:/develop/a/a.txt linux
C:"+File. separator+ "develop"+File. separator+"a"+File. separator+"a. txt"
路径
-
绝对路径:是一个完整的路径
以盘符(C:,D: )开始的路径
C:a. txt
C:Usersitcostl IdeaProjects shungyuan1123. txt
D:ldemollb. txt -
相对路径:是一个简化的路径
相对指的是相对于当前项目的根目录(C: Users litcastl IdeaProjects shungyuan)
如果使用当前项目的根目录,路径可以简化书写
C:UsersitcastIdeaProjectsl shungyuan123. txt-- >简化为: 123. txt(可以省略项目的根目录) -
注意:
1.路径是不区分大小写
2.路径中的文件名称分隔符windows使用反斜杠,反斜杠是转义字符,两个反斜杠代表一个普通的反斜杠
常用方法
- 获取功能的方法:
-
public String getAbsolutePath() : 返回此File的绝对路径名字符串。获取的构造方法中传递的路径
无论路径是绝对的还是相对的, getAbsolutePath方法返回的都是绝对路径 -
public string getPath() : 将此File转换为路径名字符串。获取的构造方法中传递的路径
-
public string getName() : 返回由此File表示的文件或目录的名称。获取的就是构造方法传递路径的结尾部分(文件/文件夹)
-
public long length() : 返回由此File表示的文件的长度。获取的是构造方法指定的文件的大小,以字节为单位
注意:
文件夹是没有大小概念的,不能获取文件夹的大小
如果构造方法中给出的路径不存在,那么length方法返回0
- 判断功能的方法:
- public boolean exists() : 此File表示的文件或目录是否实际存在。
- public boolean isDirectory() : 此File表示的是否为目录。
- public boolean isFile() :此File表示的是否为文件。
- 创建删除功能的方法
-
public boolean createllewFile() : 当且仅当具有该名称的文件尚不存在时,创建一个新的空文件。
创建文件的路径和名称在构造方法中给出(构造方法的参数)
返回值:布尔值
true :文件不存在,创建文件,返回true
false:文件存在,不会创建,返回false
注意:
1.此方法只能创建文件,不能创建文件夹
2.创建文件的路径必须存在,否则会抛出异常 -
public boolean delete() :删除由此File表示的文件或目录。
此方法,可以删除构造方法路径中给出的文件/文件夹
返回值:布尔值
true:文件/文件夹删除成功,返回true
false:文件夹中有内容,不会删除返回false;构造方法中路径不存在false
注意:
delete方法是直接在硬盘删除文件/文件夹,不走回收站,删除要谨慎 -
public boolean mkdir() : 创建由此File表示的目录。
-
public boolean mkdirs() : 创建由此File表示的目录,包括任何必需但不存在的父目录。
创建文件夹的路径和名称在构造方法中给出(构造方法的参数)
返回值:布尔值
true :文件夹不存在,创建文件夹,返回true.
false:文件夹存在,不会创建,返回false;构造方法中给出的路径不存在返回false
注意:
1.此方法只能创建文件夹,不能创建文件
目录的遍历
- public string[] list() : 返回一个String数组,表示该File目录中的所有子文件或目录。
- public File[] listFiles() : 返回一个File数组,表示该File目录中的所有的子文件或目录。
注意:
list方法和listFiles方法遍历的是构造方法中给出的目录
如果构造方法中给出的目录的路径不存在,会抛出空指针异常
如果构造方法中给出的路径不是一个目录,也会抛出空指针异常