java 和 jni 相互调用

jni 回调 java 层的方法在 JNI(Java Native Interface)中,从本地代码回调 Java 方法涉及几个步骤,包括获取 Java 类和方法的引用,并使用 JNI 提供的 API 调用该方法。
Android 2024年06月26日 200次浏览

Try、Catch、Finally

大家都知道是按顺序执行的。即,如果try中没有异常,则顺序为try→finally,如果try中有异常,则顺序为try→catch→finally。但是当try、catch、finally中加入return之后呢?
2023年10月11日 351次浏览

volatile关键字在单例模式(双重校验)中的作用

双重检查锁定背后的理论是完美的。不幸地是,现实完全不同。双重检查锁定的问题是:并不能保证它会在单处理器或多处理器计算机上顺利运行。所以需要 volatile
2023年09月21日 375次浏览

Java IO

IO简介​数据流是一组有序,有起点和终点的字节的数据序列。包括输入流和输出流。​ 流序列中的数据既可以是未经加工的原始二进制数据,也可以是经一定编码处理后符合某种格式规定的特定数据。因此Java中的流分为两种:字节流:数据流中最小的数据单元是字节字符流:数据流中最小的数据单元是字符, Java
2021年03月03日 393次浏览

ClassLoader、热修复原理

ART 和 Dalvik​DVM也是实现了JVM规范的一个虚拟器,默认使用CMS垃圾回收器,但是与JVM运行 Class 字节码不同,DVM 执行 Dex(Dalvik Executable Format) ——专为 Dalvik 设计的一种压缩格式。Dex 文件是很多 .class 文件处理压缩后
2021年02月27日 460次浏览

内存分配与回收策略

学习垃圾回收的意义Java与C++等语言最大的技术区别:自动化的垃圾回收机制(GC)为什么要了解GC和内存分配策略面试需要GC对应用的性能是有影响的写代码有好处栈:栈中的生命周期是跟随线程,所以一般不需要关注堆:堆中的对象是垃圾回收的重点方法区/元空间:这一块也会发生垃圾回收,不过这块的效率比较低,
2021年02月26日 404次浏览

深入理解JVM内存区域

虚拟机历史了解即可,无需关注Hotspot什么意思:热点代码探测技术,及时编译器(发现最有价值的代码,如果代码用得非常多,就会把这些代码编译成本地代码)。
2021年02月26日 404次浏览

线程池、AsyncTask

线程池什么是线程池?为什么要用线程池?Java中的线程池是运用场景最多的并发框架,几乎所有需要异步或并发执行任务的程序都可以使用线程池。线程池就是将线程进行池化,需要运行任务时从池中拿一个线程来执行,执行完毕,线程放回池中。在开发过程中,合理地使用线程池能够带来3个好处。降低资源消耗。通过重复利用已
2021年02月25日 402次浏览

多线程共享协作

线程间的共享和协作线程间的共享线程开始运行,拥有自己的栈空间,就如同一个脚本一样,按照既定的代码一步一步地执行,直到终止。但是,每个运行中的线程,如果仅仅是孤立地运行,那么没有一点儿价值,或者说价值很少,如果多个线程能够相互配合完成工作,包括数据之间的共享,协同处理事情。这将会带来巨大的价值。Jav
2021年02月25日 454次浏览

多线程

基础概念CPU核心数和线程数的关系核心数、线程数:目前主流CPU有双核、三核和四核,六核。增加核心数目就是为了增加线程数,因为操作系统是通过线程来执行任务的,一般情况下它们是1:1对应关系,也就是说四核CPU一般拥有四个线程。
2021年02月25日 638次浏览