final关键字修饰的成员变量必须初始化
final关键字修饰的成员变量必须初始化
弥补多继承的不足
抽象类不能new对象但可以super
重写抽象方法或者变成抽象类
抽象类不能new对象,是因为抽象类中没有方法体,所以调用抽象类是没有意义的。
'0'-48
'A'-65
'a'-97
空格-32
换行符-10
Field类的常用方法
除了获取构造方法以外,还获取成员变量
获到构造方法,再获取对象
newInstance()
正好代表动态创建对象
开发中,读取配置文件
Class类的
java.lang.Class类的实例可以用于描述java应用程序中类和接口,也就是一种数据类型
该类没有公共构造方法,该类的实例由java虚拟机和类加载器自动构造完成,本质上就是加载到内存中的运时类。
对象为在堆区中的一个区域,还是代表一种数量类型
类也是一种比较特殊的对象
Person P = new Person()
表示声明Person类型的引用指向Person类型的对象
p.show() 表示调用Person类中的成员方法show
在编写时,是不知道创建什么样的对象,与调用什么样的方法
通常情况下编写代码都是固定的,无论运行多少次执行的结果也是固定的
在某些特殊场合中编写代码时不确定要创建什么类型的对象,也不确定要调用什么样的方法,这些都是希望通过运行时传递的参数来决定,该机制叫做动态编程技术,也就是反射机制
通俗来说,反射机制就是用于动态创建对象并助动态调用方法的机制
目前主流的框架底层都是采用反射机制实现
启动的时候:先启动接收方
客户端与服务器不断的通信
客户端只输入一个数
实现了,服务器,与客户端之间相互的通信
1、IO流(重点)
概念、分类、
字节流,字符流
输入流,输出流
节点流,包装流
体系结构、相关类的详解等。
以字节为单位,对文件进行读写
以字符为单位,对文件时行读写
RandomAccessFile类
IO流:随着读写操作
如果需在跳跃性操作的时候,
随机的含义:
pos 为 position文件中的操作
用于设置从此文件的
java.RandomAccessFile 类主要支持对随机访问文件的读写操作
r:以只读方式打开
seek(long pos)用于设置以此文件的开头开始测量的文件指针偏移量
seek的写操作,用于信息的更新
RandomAccessFile类的一个优势
序列化机制是通过在运行时判断类的SerialVersionUID来验证版本一致性的。在进行反序列化时,JVM会把传来的字节流中的
当希望将多个对象写入文件时,通常建议将多个对象放入一个集合中,然后将集合这个整体看做一个对象写入输出流中,此时只需要调用一次readObject方法就可以将整个集合的数据读取出来,从而避免了通过返回值进行是否达到文件末尾的判断
比如这张图为一个对象,万事皆对象
将一个图,保留在磁盘上
图上的信息量很大,有色,有文字,有线条
所以相关信息,组织成有效组织成字节序列的转化过程
组织成字节序列的过程
所谓序列化主要是指将一个对象需要存储的相关信息有效组织成字节序列的转化过程
所谓反序列化 主要指将 有效组织的字节序列恢复为一个对象及相关信息的转化过程
序列化与反序列化
ObjectOutputStream类主要用于将一个对象的所有内容整体写入到输出流中
对象的类型要实现Serializable接口,来启动序列化
图:有文字,有线条,有空白的地方
万物皆对象的理念,图片也保存在上面
将一个对象需在存储的相关信息有效组织成字节序列的转化过程,叫序列化
反序列化主要指将有效组织的字节序列恢复为一个对象及相关信息的转化过程
计算机只能识别二进制数据,早期就是电信号。
为了方便计算机可以识别各个国家的文字,就需要将各个国家的文字采用数字编号的方式进行描述并建立对应关系表,该表就叫
编码表
字符与数字建立关系的表,叫做编码表
ASCII:美国标准信息交换码,使用一个字节的低7位二位进制进行表示
ISO8859:拉丁码表,欧洲码表,使用一个字节的8位二进制表示
GBK:中国的中文编码表升级,融合了更多的中文文字符号,最多使用两个字节16位进制位表示
Unicode:国际标准码,融合了目前人类使用的所有字符,为每个字符分配唯一的字符码。所有的文字都用两个字节16位二进制来表示
Unicode只是定义了一个庞大的,全球通用的字符集,并为每个字符规定了唯一确定的编号,具体存储成什么样的字节流,取决于字符编码方案。
推荐的Unicode编码是UTF-8,UTF-16
UTF-8 :变长的编码方式,可用1-4字节来表示一个字符