- 博客(8)
- 收藏
- 关注
原创 类初始化和类加载
类加载检查:检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符合引用代表的类是否已经被加载过、解析和初始化过。如果没有,那必须先执行相应的类加载过程。分配内存:在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需的内存大小在类加载完成后便可确定,为对象分配空间的任务等于把一块确定大小的内存从Java堆中划分处理。初始化为零值:虚拟机将分配到的内存空间初始化为零值,保证对象的实例字段在Java代码中可以不赋初值就直接使用,程序能访问到这些字段的数据类型所对应的零值。
2025-02-26 21:15:28
399
原创 面向对象基础
字段的内容本身不会被克隆。:浅拷贝会在堆上创建一个新的对象(区别于引用拷贝的一点),不过,如果原对象内部的属性是引用类型的话,浅拷贝会直接复制 对象的引用地址,也就是说浅拷贝和原对象共用一个内部对象。子类拥有父类对象的所有属性和方法(包括私有属性和私有方法),但是父类中的私有属性和方法,子类无法访问,只是拥有。继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以使用父类的功能。如果子类重写了父类的方法,真正执行的是子类重写的方法,没重写的,执行的是父类的方法。
2025-02-22 22:05:24
890
原创 JVM内存结构
当前线程所执行的字节码的行号指示器。作用:字节码解释器通过改变程序计数器来依次读取指令,从而实现代码的流程控制,如:顺序执行、选择、循环、异常处理。在多线程的情况下,程序计数器用于记录当前线程执行的位置,从而当线程被切换回来的时候能够知道该线程上次运行到哪儿了。⚠️ 注意:程序计数器是唯一一个不会出现的内存区域。
2025-02-21 13:26:23
528
原创 Okhttp源码解析
迭代异步准备队列满足条件加入异步运行队列:异步请求总任务数小于64并且同一个host的请求数不能大于5将当前Call请求加入到任务集合中遍历任务集合加入请求线程池,并执行他。
2024-12-29 19:13:36
1685
原创 Android中Intent的使用:Activity创建及跳转
过滤器中可以有多个action, 而Intent对象中最多只能设置一个action,因为每一次setAction就会把前面的action覆盖,所以Intent只需匹配任意一个action就可以了。上 android.intent.category.DEFAULT,所以能被隐式启动的Activity,在 AndroidManifest.xml 必须给过滤器添加上这个category。 Intent 中可以设置多个category,,只要Intent设置了 category,过滤器中就必须有。
2024-05-11 08:22:15
1920
2
原创 Android多线程技术:Handler 异步消息处理机制
当我们在Activity或Fragment内部创建一个匿名内部类的Handler时,这个Handler会隐式持有其外部类的引用(即Activity或Fragment的引用)如果Activity在销毁时,Handler还有未执行完或者正在执行的Message,而Handler又持有Activity的引用,导致GC无法回收Activity,导致内存泄漏。该UI线程处理与UI相关的事件,如:用户的按键事件,把相关的事件分派到对应的组件进行处理等。对于UI线程中比较耗时的工作,开启一个子线程来处理这些工作。
2024-04-16 21:37:29
1813
3
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人