自动拆箱和自动装箱
装箱就是自动将基本数据类型转换为包装器类型
拆箱就是自动将包装其类型转化为基本数据类型
重写和重载
重写
1.发生在子类和父类之间
2.参数的方法名,参数,返回值,必须相同
3.权限修饰符不能小于重写方法的权限修饰符
4.抛出的异常不能比重写方法抛出的异常更加宽泛
重载
重载方法的参数类型不同,参数个数不同,参数顺序不同,但是与返回值类型无关
hashcode 作用
根据对象的内存地址算出一个值,存放再该位置上,如果相等调用equals(),相同就不存了,不相同散列到其他位置
java的四种引用
强软弱虚
泛型以及使用好处
编写的代码可以别不同类型的对象所使用
好处有代码复用,不必为不同数据类型写多个集合,可以在编译时检查类型的合法性,约束数据类型
java创建对象的方式
1.new创建对象
2.反射创建对象
3.clone创建对象
4.通过反序列化创建对象(ObjectInputStream)
深拷贝和浅拷贝的区别
浅拷贝拷贝基本数据类型的值和引用数据类型的引用
深拷贝是创建一个对像复制其内容,与原来的对象完全独立
final有那些用法
被final修饰的类不可以被继承
被final修饰的方法不可以被重写
被final修饰的常量不可以被改变,修饰引用,引用不可以修改,引用的内容可以改
被fianl修饰的常量编译阶段会存入常量池之中
被fianl修饰的放JVM会尝试将其内联,提高效率
static的用法
用于修饰静态方法和静态变量
静态代码块,用于类的初始化
用于修饰静态内部类(实现单例模式)
3*0.1 == 0.3返回值是false
因为浮点数是不能精确表示有误差的
IO流的分类
按照流的流向来划分:输入流,输出流
按照流的操作单元来划分:字符流,节点流
按照角色来划分:节点流,处理流
javaIO和NIO
NIO是 new IO在java1.4中引入,NIO以块为单位,速度相较IO更快
java API中提供了两套NIO,一套用于网络编程,一套用于标准输入输出
反射
反射是一种运行期间的动态技术,可以在运行是访问,检测,修改自己的类,方法,属性
获取Class对象有四种方法
1.Class.forName("类的路径")
2.类名.Class
3.对象名.getClass
4.对于包装类可以使用Type属性
反射机制的优缺点
优点:
1.反射能够动态获取类的实例,提高灵活性
2.能够动态编译结合
缺点:
1.反射效率较低,需要解析字节码,从内存中获得对象
2.相对不安全,破坏了封装性