常用类与IO
来源:互联网 发布:佛山网络推广 招聘 编辑:程序博客网 时间:2024/06/10 23:08
一、 Object类
1. Object类是Java中唯一没有父类的类。
2. 其他所有的类都继承了Object类中的方法
3. 如果在类的声明中未使用extends关键字指明其父类,则默认父类为Object类
方法摘要
protected
Object
clone() 创建并返回此对象的一个副本。
boolean
equals(Object obj) 指示其他某个对象是否与此对象“相等”。
protected
void
finalize() 当垃圾回收器确定不存在对该对象的更多引用时,由对象的垃圾回收器调用此方法。
Class<?>
getClass() 返回此 Object 的运行时类。
int
hashCode() 返回该对象的哈希码值。
void
notify() 唤醒在此对象监视器上等待的单个线程。
void
notifyAll() 唤醒在此对象监视器上等待的所有线程。
String
toString() 返回该对象的字符串表示。
void
wait() 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法前,导致当前线程等待。
void
wait(long timeout) 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者超过指定的时间量前,导致当前线程等待。
void
wait(long timeout, int nanos) 在其他线程调用此对象的 notify() 方法或 notifyAll() 方法,或者其他某个线程中断当前线程,或者已超过某个实际时间量前,导致当前线程等待。
==操作符与equals方法
==操作符:
引用类型比较引用(是否指向同一个对象);
Person p1=new Person(); Person p2=new Person();
if (p1==p2){…}
基本类型比较值;int a=5; if(a==6){…}
用"=="进行比较时,符号两边的数据类型必须一致(可自动转换的基本数据类型除外),否则编译出错;
equals方法:
是Object类的方法,由于所有类都继承Object类,也就继承了equals()方法。
只能比较引用类型,
在Object类的定义中,其作用与“==”相同,比较是否指向同一个对象。格式:obj1.equals(obj2)
注意:对类File、String、Date、封装类(Wrapper Class)及很多重写了equals()方法的类来说,是比较类型及内容而不考虑引用是否指向
二、 String类
Java中字符串是常量,它们的值在创建之后不能更改。
String类的引用可以指向不同的字符串,这是因为字符串对象虽然是不能修改的,但是它们的地址可以共享。
String 类的常用方法
public boolean startsWith(String s)
public boolean endsWith(String s) :判断当前字符串对象的前缀(后缀)是否是参数s指定的字符串
public int compareTo(String s):按字典序与参数s指定的字符串比较大小
public int compareToIgnoreCase(String s)
public boolean contains(String s):判断当前字符串对象是否含有参数指定的字符串s
pubic String replace(char oldChar,char newChar)
public String replaceAll(String old,String new)
public String concat(String str)
public int indexOf (String s):从头开始检索字符串 s,并返回首次出现s 的位置
indexOf(String s ,int startpoint)
lastIndexOf (String s)
public String substring(int startpoint):获得一个当前字符串的子串
substring(int start ,int end)
public String trim(): 得到一个去掉前后空格后的字符串对象
字符串的长度length()
public String[] split(String regex)按照regex将当前字符串,拆分成多个字符串,整体构成一个字符串数组
三、 StringBuffer类
构造:
StringBuffer()
StringBuffer(int size)
StringBuffer(String str)
添加:
StringBuffer append(data);
StringBuffer insert(index,data);
删除:
StringBuffer delete(start,end):包含头,不包含尾。
StringBuffer deleteCharAt(int index):删除指定位置的元素
查找:
char charAt(index);
int indexOf(string);
int lastIndexOf(string);
修改:
StringBuffer replace(start,end,string);
void setCharAt(index,char);
StringBuffer:可变字符序列、线程安全、效率低
StringBuilder:可变字符序列、线程不安全、效率高
四、 封装类
基本数据类型
封装类
boolean
Boolean
byte
Byte
short
Short
int
Integer
long
Long
char
Character
float
Float
double
Double
五、 Date类
int hour = 23;
int minute = 12;
Calendar calendar = Calendar.getInstance();
SimpleDateFormat format = new SimpleDateFormat("yyyy-MMMM-dd-EEEE HH:mm:ss:SS");
System.out.println(format.format(calendar.getTime()));
//获取时间
int year =calendar.get(Calendar.YEAR);
int month =calendar.get(Calendar.MONTH);
int day =calendar.get(Calendar.DATE);
//设置时间
calendar.set(Calendar.HOUR_OF_DAY,hour);
calendar.set(Calendar.MINUTE,minute);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println(format.format(calendar.getTime()));
Calendar calendarCompare1 = Calendar.getInstance();
//利用构造函数设置时间
calendarCompare1.set(year,month, day, 6, 0);
六、 内存四区
七、 IO 概述
输入:读取外部数据(磁盘、光盘等存储设备的数据)到程序(内存)中。
输出:将程序(内存)数据输出到磁盘、U盘等存储设备中
Java 的 IO流主要包括输入流和输出流两种 ,每种输入、输出流又可分为字节流和字符流两大类:
字节流以字节为单位来处理输入、输出操作
字符流以字符为单位来处理输入、输出操作
File 类
File 类代表与平台无关的文件和目录。
File 能新建、删除、重命名文件和目录,但 File不能访问文件内容本身。
如果需要访问文件内容本身,则需要使用输入/输出流。
File f = new File("D:\\temp.txt");
try {
if (!f.exists()) {
f.createNewFile();
}
} catch (IOExceptione) {
e.printStackTrace();
}
System.out.println("是文件吗:" +f.isFile());
System.out.println("是目录吗:" +f.isDirectory());
System.out.println("名称:" +f.getName());
System.out.println("路径: " +f.getPath());
System.out.println("绝对路径: " +f.getAbsolutePath());
System.out.println("最后修改时间:" +new Date(f.lastModified()));
System.out.println("文件大小:" +f.length() + "字节");
System.out.println("文件可读吗:" +f.canRead());
System.out.println("文件可写吗:" +f.canWrite());
IO 流的分类
IO流是用来处理设备与程序之间的数据传输
按流向(站位到程序的角度):
输入流
输出流
按处理的单位:
字节流(8bit)byte
字符流(16bit)char
按流的角色
节点流:可以从一个特定的 IO 设备读/写数据的流(访问文件相关,也叫文件流,程序直接作用在文件上)
处理流:对一个已存在的流进行连接和封装,通过封装后的流来实现数据读/写操作
IO 流体系
程序中打开的文件 IO 资源不属于内存里的资源,垃圾回收机制无法回收该资源,所以应该显式关闭文件 IO资源。
八、 对象的序列化
对象序列化的目标是将对象保存到磁盘上,或允许在网络中直接传输对象。
序列化是RMI(Remote Method Invoke– 远程方法调用)过程的参数和返回值都必须实现的机制,而 RMI是 JavaEE的基础。因此序列化机制是 JavaEE平台的基础。
如果需要让某个对象支持序列化机制,则必须让的类是可序列化的,该类必须实现如下两个接口之一:
Serializable:一个对象想要被序列化,那么它的类就要实现 此接口,这个对象的所有属性(包括private属性、包括其引用的对象)都可以被序列化和反序列化来保存、传递。
Externalizable:他是Serializable接口的子类,有时我们不希望序列化那么多,可以使用这个接口,这个接口的writeExternal()和readExternal()方法可以指定序列化哪些属性。
序列化与反序列化
序列化:把Java对象转换为字节序列的过程。
反序列化:把字节序列恢复为Java对象的过程。
使用对象流序列化对象
若某个类实现了 Serializable 接口,该类的对象就是可序列化的:
创建一个 ObjectOutputStream
调用 ObjectOutputStream 对象的 writeObject() 方法输出可序列化对象
反序列化
创建一个 ObjectInputStream
调用 readObject() 方法读取六种的对象
如果某个类的字段不是基本数据类型或 String 类型,而是另一个引用类型,那么这个引用类型必须是可序列化的,否则拥有该类型的Field 的类也不能序列化
- 常用类与IO
- IO详解 常用io类
- IO包常用类
- java IO与网络的常用操作
- C#常用IO流与读写文件
- IO流常用类总结
- JAVA IO常用类总结
- 集合类与IO
- Java IO 流分类详解与常用流用法实例
- 黑马程序员--IO---FIle类常用方法
- java io流常用类的使用
- Java.io包中常用的类
- JAVA IO最常用类及实例
- IO流----File类的常用方法
- io流常用的基类
- IO流体系常用类总结
- java IO常用类和方法
- 常用文件和IO类使用总结
- 参考别人的面试总结:linux C/C++服务器后台开发面试题总结
- wireshark命令行抓包
- yarn简介及内存配置
- 判断弗洛伊德/FLOYD算法是不是有负环的
- WCF服务
- 常用类与IO
- 七种回归
- JSONArray数据转换成java List
- 网站点赞 评论 回复 数据库设计
- poj 2031 Building a Space Station (kruskal算法)
- 蓝牙基础知识学习
- 最全Pycharm教程(14)——Pycharm编辑器功能总篇
- ACM/ICPC 沈阳网络赛 1004 (nlogn最长上升子序列)
- bzoj 1562: [NOI2009]变换序列