JAVA个人总结


abstract(抽象):
抽象类无法实例化 (抽象类:表达概念而无法构造实体的类)
包含抽象方法的类必须是抽象类(抽象函数:表达概念而无法实现具体代码的函数)
继承自抽象类的子类必须覆盖父类的抽象函数

构造函数:无参构造函数 和 有参构造函数 
1.创建一个对象 会自动执行无参构造方法 
2.有参构造函数就是实例化对象成员变量 (也可以使用判断if的)
3.当没有指定构造方法时,系统会自动添加无参的构造方法

接口(interface):是一个抽象的实体,接口内所有的方法必须是public abstract
接口也是一种引用类型 (Flyable f = new Bird)
1.一个类实现多个接口,就达到了多重继承
2.接口中的常量:具有public,static,final

多态:相同的方法名字不同的调用(具有子父类才有多态)
1.编译时的多态称为重载(overload):多个同名的不同方法的调用
2.运行时的多态覆盖(override):子类对父类的方法覆盖(动态绑定)
虚方法的调用:自动根据实例来决定调哪个方法

static:
static变量:static 修饰的成员称为静态成员或类成员,它属于整个类所有,而不是某个对象所有,即被类的所有对象所共享。
static方法:
1.静态方法中可以直接调用同类中的静态成员,但不能直接调用非静态成员。
2.如果希望在静态方法中调用非静态变量,可以通过创建类的对象,然后通过对象来访问非静态变量
3.静态方法中不能直接调用非静态方法,需要通过对象来访问非静态方法。
4.在普通成员方法中,则可以直接访问同类的非静态变量和静态变量
static代码块:静态初始化块只在类加载时执行,且只会执行一次,同时静态初始化块只能给静态变量赋值,
不能初始化普通的成员变量。

final:
final修饰类,则该类不允许被继承
final修饰属性,类的初始化属性必须有值或在构造方法中赋值
final方法子类无法覆盖,不存在虚化问题(就是自动根据实例来决定调哪个方法)
final修饰变量,则该变量的值只能为赋一次值,即变为常量

JAVA I/O 输入输出
1.文件的编码问题:gbk 和utf-8情况下汉字编码不同
注:文本文件就是字节序列(可以是任意编码的字节序列)

2.File类常用API的使用
1.File类只用于文件(目录)的信息(名称、大小等),不能用于文件内容的访问
2.目录的遍历问题

3.例:RandomAccessFile raf = new RandomeAccessFile(file,"rw")
RandomAccessFile类 对文件内容的访问,既可以读文件,也可以写文件。
支持随机访问文件,可以访问文件的任意位置。
raf.write方法每次只能写一个字节 由此可以衍生到raf.writeInt()方法

File文件读文件必须把指针移到头部 raf.seek(0)
raf.read(buf) buf是一个字节数组 这样就把内容读取到字节数组中
string???
注意:文件读写完成之后一定要关闭 r(sf.close)


IO流(输入流、输出流 字节流、字符流)
1.字节流
1)InputStream\OutputStream
InputStream抽象了应用程序读取数据的方式
OutputStream抽象了应用程序写出数据的方式
2)EOF = End 读到-1就读到结尾

3)输入流基本方法
int b = in.read();读取一个字节无符号填充到int低八位。
in.read(byte[]buf)读取数据填充到字节数组buf
4)输出流基本方法
out.write(int b) 写出一个byte到流,b的低八位
out.read(byte[]buf)读取数据填充到字节数组buf

5)FileInputStream   具体实现了在文件上读取文件(把文件当成字节流读取)
 FileOutputStream 实现了向文件中写出byte数据的方法
6)DataOutputStream/DataInputStream 对流功能的扩展 可以更加方面的读取int、long字型等类型数据
DataOutputStream :writeInt()/writeDouble()/writeUTF()
DataOutputStream dos = new DataOutputStream
(new FileOutputStream(file))
7)BufferedInputStream和BufferedOutputStream
这两个流类位IO提供了带缓冲区的操作,一般打开文件写入或者读取操作时,都会加上缓冲这种流模提高了IO的性能。
  
字符流
字符流的基本实现
1)操作文本文件
InputStreamReader 完后byte流解析为char流,按照编码解析
OutputStreamWriter 提供char流到byte流,按照编码处理
2)
FileReader/FileWriter 缺点就是无法改变文本文件格式
3)字符流的过滤器 
BufferedReader 一次读一次,并不能识别换行
BufferWriter 写入文本文件中

序列化的基本操作
(对象的序列化:将Object对象转换成byte序列,反之叫对象的反序列化
序列化流(ObjectOutputStream),是过滤流
反序列化流(ObjectIntputStream),readObject)
------------------------------------------------------------------------------
序列化接口
对象必须实现序列化接口,才能进行序列化,否则将出现异常
这个接口,没有任何方法,只是一个标准
--------------------------------------------------------------------------------
transient关键字 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值