JAVA知识回顾【二】

本文回顾了Java中的字符串特点、字符串常量池机制、访问权限修饰符、引用传递与值传递的区别、对象初始化流程,以及构造器、浅拷贝与深拷贝的概念。
摘要由CSDN通过智能技术生成

JAVA知识回顾【二】

13.字符串特点

String类型不可变,线程安全
Stringbuffer可变,线程安全
Stringbuilder可变,线程安全

14.字符串常量池

1.构造//都会在常量池存入字符串
直接赋值:String s = “string”;//返回池内对象
new方法:String s = new String ();//返回堆内对象

2.拼接
常量+常量:编译器优化//常量池中一个对象
变量+?:new Stringbuilder.append().tostring()
//常量池中变量+新的对象

3.比较
==比较地址
equal比较内存

15.修饰符(权限)

public:所有都可以访问。
protect:包内或者包外子类。
default:包内。
private:类内。子类不可以访问。

16.修饰符(非权限)

abstract:
类:抽象类,不可被实例化。不能同时被final修饰。只能被继承从而实现抽象方法。抽象类中可以有抽象方法。有抽象方法不一定是抽象类。
方法:抽象方法。只有声明。没有实现。子类必须实现抽象类中所有方法才可以实例化。不能用private修饰,也不能用static修饰。

final:
类:final类不能被继承。
方法:final方法不能被重写。
final变量不可以被修改。

static:
变量:类变量
方法:类方法
类:可以被单独实例化,且不需要外界交互的类。
代码块:类加载的时候执行的代码块。

17.引用传递和值传递

引用的概念:
C++:新建一个变量存储另一个变量的地址。
Java:新建一个变量指向堆中的内容。
java没有c++概念里的引用,因此没有引用传递。在java中引用作为数据类型的一种,因此地址传递也被叫做值传递。

18.引用的分类

强引用:默认引用,一直存活。
软引用:jvm内存不足时回收。
弱引用:引用对象没有强引用时回收。
虚引用:任何时刻都可以回收。

19.初始化流程

程序从main方法开始执行。main方法执行之前会进行类的初始化。依次加载父类的静态部分和子类的静态部分。
对象的初始化发送在创建对象的时候,依次执行父类的非静态变量和代码块,最后执行构造方法。
总结:类的初始化时,依次加载静态部分,再到子类的静态。而对象的初始化时,依次加载非静态部分,任何构造函数,之后是子类的。

20.构造器,this,super关键字

构造器最后执行。子类构造器默认执行父类构造方法。

21.浅拷贝和深拷贝

浅拷贝只复制指向某个对象的指针,而不复制对象本身,新旧对象还是共享同一块内存。
深拷贝会另外创造一个一模一样的对象,新对象跟原对象不共享内存,修改新对象不会改到原对象,是“值”而不是“引用”。

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值