Java包在物理上是文件夹,逻辑上是逻辑类的集合,作用有避免类重命和控制访问权限。
Private |
本类访问 |
Default |
不写权限修饰符,只能被同包类访问 |
Protected |
同包类和子类访问 |
Public |
任意类访问 |
整型:byte short int long
浮点型:float double
字符型:char
逻辑型:boolean
JDK1.5后的自动装箱拆箱8个包装器类有:
Byte Short Integer Long Float Double Character Boolean
在编译源代码时,当一个类没有显式标明继承的父类时,编译器会为其指定一个默认的父类(一般为Object),而交给虚拟机处理这个类时。
接口可以多继承,抽象类不行
接口定义方法,不能实现,而抽象类可以实现部分方法。
接口中基本数据类型为static 而抽类象不是的。
当你关注一个事物的本质的时候,用抽象类;当你关注一个操作的时候用接口;
接口是对动作的抽象,抽象类是对根源的抽象。
抽象类不能实例化,关键字abstract,抽象类往往用来做父类、可以将抽象类当做类型使用、抽象类可以直接调用静态成员。没有方法体的方法为抽象方法,使用abstract修饰。那么抽象方法和抽象类的关系:抽象类里不一定有抽象方法,有抽象方法的类必定是抽象类。
接口是特殊的抽象类,没有变量(可以声明静态常量)、接口中的方法都是抽象方法。接口访问权限只能public。
Java类有关联、依赖、继承、实现等关系
关联关系:has-A 关系,A类关联B,即B类对象作为A类的属性存在,然而关系关系要考虑到关联的方向(单向关联和双向关联),还要考虑到关联的多重性
依赖关系:Use –A,A类某个方法的参数是B类对像,则A依赖B,依赖和关联在生命周期不同
继承关系:extends 关键字表继承,子类构造方法默认情况下调用父类无参数构造,可以在子类构造第一行使用super关键字调用父类任意一个构造函数。子类Override原则有(同名、同参、同返回值、访问权限不能缩小)。
由许多接口、抽象类、具体类组成的,位于java.util包中。Collection<E> 接口是所有集合类的根接口;
Map<K,V>是一个映射接口;Iterator<E>接口提供遍历Collection对象。
Iterator 中的hasnext()和next();其子接口ListIterator,但是JDK5之后增强型for循环比迭代器方便。
泛型的本质是参数化类型,对类型的抽象。泛型是JDK5引入,集合框架是基于泛型编程(复用思想+编译);
在java.io包中。那么在IO中文件File类是非常重要的,除了文件类,有字符流和字节流。从流的方向可以分为输入流和输出流,那么输入流和输出流。
Java.io包中最重要的就是5个类和一个接口。5个类指的是File、OutputStream、InputStream、Writer、Reader;一个接口指的是Serializable
字符流的由来: 因为数据编码的不同,而有了对字符进行高效操作的流对象。本质其实就是基于字节流读取时,去查了指定的码表。 字节流和字符流的区别:
结论:只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。
原文:https://www.cnblogs.com/zhang-zhi-ming/p/11257860.html