您好,欢迎来到钮旅网。
搜索
您的当前位置:首页Java基础-由浅入深

Java基础-由浅入深

来源:钮旅网
1、== 与 equals()
  • == ,基本数据类型为值比较;引用类型为 引用比较
  • equals() ,默认引用比较,但很多类重写equals方法一般为值比较
2、 值传递和引用传递 【相关:Java内存模型】

值传递:将实参的内容副本 通过形参传入方法内部,形参的任何操作都不影响实参的内容。

3、 静态绑定和动态绑定 【相关:类加载】

绑定:方法的调用和调用此方法的类连接在一起的过程

静态绑定:构造方法和 由private、static、final任意一个关键字所修饰的方法

被private修饰的方法,只有本类调用,其它类无法调用,编译器可以推出调用此方法的类;

被final修饰的方法不能重写,但可被子类调用

被static修饰的方法,方法无法重写,由类名直接调用时,类名确定,不会产生多态;引用 为父类时,方法编译期就绑定为父类

动态绑定:编译期间,编译器不知道调用哪个方法,则根据被调用对象的实际类型判定[不是引用的类型],绑定需要延迟到运行。重写动态绑定

过程:虚拟机提取对象的实际类型的放发表,搜索方法签名,调用方法

4、 String 【相关:源码】

String类final修饰优点

StringBuffer 和StringBuilder

  1. 都提供append 和 insert 方法用于字符串的拼接
  2. StringBuffer使用synchronized保证线程安全,StringBuilder没有

JDK 1.7 之后把永生代换成的元空间,字符串常量池从方法区移到了 Java 堆上

5、Java序列化 【相关:io】

序列化:将对象转化为字节序列

反序列化:将字节序列恢复为对象

使用场景:网络传输、磁盘存储Java对象

Java序列化算法:保存到磁盘的对象都有一个序列化编号,当序列化一个对象时,先检查对象是否被序列化,未被序列化过,则将对象序列化为字节;若序列化,则输出已有编号。但如果更改了对象的内容,再次序列化,并不会将对象序列化

6、 克隆 【相关:深拷贝、浅拷贝】

实现方式

  • 实现Cloneable接口,重写Object类的clone()方法
  • 实现Serializable接口,通过对象的系列化和反序列化实现深度克隆,还可以通过泛型限定,检测要克隆的对象是否支持序列化
7、反射 【相关:代理】

由于.class文件加载到JVM时,在堆中创建一个java.lang.Class类 的对象,代表类相关信息;因此先获取Class类,通过Class类得到 创建的类。

优点:

  • 提高程序灵活性:如连接数据库中,数据变化只需修改配置文件,无需改变Java代码
  • 屏蔽实现细节,使用方便:如springMVC中,参数名与字段名保持一致,直接使用

后续完善

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- niushuan.com 版权所有 赣ICP备2024042780号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务