首页
学习
活动
专区
工具
TVP
发布

Android进阶编程

分享有用的Android知识。
专栏作者
32
文章
38353
阅读量
15
订阅数
Java类加载问题汇总
1、什么是类加载器? 负责读取 Java 字节代码,并转换成java.lang.Class类的一个实例。 2、类加载器工作机制是什么? 是虚拟机把描述类的数据从Class文件加载到内存,并对数据进行校验、转换解析和初始化,最终形成可被虚拟机直接使用的Java类型的过程。 类型的加载、连接和初始化过程都是在程序运行期完成的,从而通过牺牲一些性能开销来换取Java程序的高度灵活性。 下面介绍类加载每个阶段的任务: 加载(Loading): 通过类的全限定名来获取定义此类的二进制字节流。 将该二进制字节流所代表
李林LiLin
2023-03-02
4160
Java虚拟机问题汇总
1、运行时数据区域有哪些? 有方法区、虚拟机栈、本地方法栈、堆、程序计数器,其中方法区和堆是由线程共享的数据区,其他几个是线程隔离的数据区。 程序计数器:程序计数器是一块较小的内存,他可以看作是当前线程所执行的行号指示器。 字节码解释器工作的时候就是通过改变这个计数器的值来选取下一条需要执行的字节码的指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖这个计数器来完成。 如果线程正在执行的是一个Java方法,这个计数器记录的是正在执行的虚拟机字节码指令的地址。如果正在执行的是Native方法,这
李林LiLin
2023-03-02
3310
Java多线程问题汇总
1、线程中start()、run(),wait()、sleep(),sleep() 、join()、yield()有什么区别? 1.1、线程中start和run方法有什么区别 调用start()方法时会执行run()方法,不能直接调用run()方法。调用start()方法时将创建新的线程,并且执行在run()方法里的代码。但是直接调用run()方法,不会创建新的线程也不会执行调用线程的代码。 1.2、wait和sleep方法的不同 让当前执行线程陷入等待(注意:不一定是调用wait方法的线程,也就是执行
李林LiLin
2023-03-01
3240
Java面向对象问题汇总
1、面向对象编程的四大特性及其含义 1.1、封装 封装把一个对象的属性私有化,同时提供一些可以被外界访问的属性的方法。 1.2、继承 使用已存在的类的定义作为基础建立新类,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。通过使用继承我们能够非常方便地复用以前的代码。 子类拥有父类非 private 的属性和方法。 子类可以拥有自己属性和方法,即子类可以对父类进行扩展。 子类可以用自己的方式实现父类的方法。 1.3、多态 多态是指程序中定义的引用变量所指向的具体类型和通
李林LiLin
2023-03-01
3420
Java基础问题汇总
1、static关键字 1.1、static关键字可以修饰什么?static使用的注意事项有哪些?static关键字的特点?使用static存在什么问题? 可以用来修饰:成员变量,成员方法,代码块,内部类等。具体如下所示 修饰成员变量和成员方法 被 static 修饰的成员属于类,不属于单个这个类的某个对象,被类中所有对象共享,可以并且建议通过类名调用。 被static 声明的成员变量属于静态成员变量,静态变量存放在Java内存区域的方法区。 静态代码块 静态代码块定义在类中方法外,静态代码块在非静态
李林LiLin
2023-02-26
3520
Android避坑指南,Gson与Kotlin碰撞出一个不安全的操作
是的,确实很偏,跳过这个问题,我们往下看,看看是怎么在Android开发过程中遇到的,而且看完后,这个问题就迎刃而解了。
李林LiLin
2021-02-19
1.3K0
Kotlin 开发中遇到的坑(持续更新)
由代码可见,mHomeWorkId 是一个不能为null的String。然后通过intent.getStringExtra 方法给mHomeWorkId赋值。
李林LiLin
2021-01-03
4.2K0
不可不说的Java“锁”事
Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。
李林LiLin
2020-12-16
3260
Java线程池实现原理及其在美团业务中的实践
随着计算机行业的飞速发展,摩尔定律逐渐失效,多核CPU成为主流。使用多线程并行计算逐渐成为开发人员提升服务器性能的基本武器。J.U.C提供的线程池:ThreadPoolExecutor类,帮助开发人员管理线程并方便地执行并行任务。了解并合理使用线程池,是一个开发人员必修的基本功。
李林LiLin
2020-12-16
1.1K0
Android Binder 设计篇
之前看过一篇关于Binder设计相关的文章,但是之前的连接打不开了。于是在网上搜索很久才找到原文地址:https://blog.csdn.net/universus/article/details/6211589。这篇文章写得非常好,建议在学习Binder的小伙伴都可以保存下来多读几遍。唯一有点瑕疵的就是,这篇文章可能是作者翻译的,有些语法读起来不是很通顺。这里也自己记录一份,顺便做些标记,方便以后复习,也防止以后找不到。
李林LiLin
2020-12-04
6630
Android 性能优化最佳实践
快,稳,省,小,这四点很形象的代表了性能的四个方面,同时也让我们知道我们 App 现在是否是款性能良好的 APP,如果有一项不达标,那么说明我们的应用有待优化。
李林LiLin
2020-11-22
1.2K0
java-线程池(ThreadPoolExecutor)的参数解析
很多时候为了省事用的都是Executors的方式去创建,感觉也没什么问题,不过阿里工程师的推荐自然是有道理的,以后还是尽量改用ThreadPoolExecutor的方式来创建吧,不过使用ThreadPoolExecutor方式来创建时,需要传入的参数很多,为了加深记忆,这里就简记录一下。
李林LiLin
2020-11-05
1.3K0
java数据结构与算法-快速排序
基本思想 快速排序使用分治法策略来把一个序列分为两个子序列,基本步骤为: 先从序列中取出一个数作为基准数(为了方便一般选数组的第一个数作为基准数)。 分区过程:将把这个数大的数全部放到它的右边,小于它的数全放到它的左边。 递归的对左右两个子序列进行步骤2,知道各区间只有一个数。 java代码实现 public void sort(int[] arr, int left, int right){ if(left >= right){ return; }
李林LiLin
2020-09-28
5530
java数据结构与算法-思维导图
因为最近在学习数据结构与算法相关的知识,所以打算通过写笔记的方式加强自己对数据结构与算法的理解,也是为了方便以后复习。这里整理记录了一份数据结构与算法的思维导图,也是为了以后学习更有方向性。
李林LiLin
2020-09-26
1K0
java设计模式-单例模式详解
作为对象的创建模式,单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。
李林LiLin
2020-09-24
7580
Android 序列化 Serializable与Parcelable
由于存在于内存中的对象都是暂时的,无法长期驻存,为了把对象的状态保持下来,这时需要把对象写入到磁盘或者其他介质中,这个过程就叫做序列化。
李林LiLin
2020-09-22
1.9K0
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档