- 博客(6)
- 收藏
- 关注
原创 线程池解析
线程池参考文章Java线程池实现原理-美团技术团队,Java线程池实现原理与源码解析写在前面1.线程池是什么线程池(Thread Pool)是一种基于池化思想管理线程的工具,经常出现在多线程服务器中。线程过多会带来额外的开销,其中包括创建销毁线程的开销、调度线程的开销等等,同时也降低了计算机的整体性能。线程池维护多个线程,等待监督管理者分配可并发执行的任务。这种做法,一方面避免了处理任务时创建销毁线程开销的代价,另一方面避免了线程数量膨胀导致的过分调度问题,保证了对内核的充分利用。2.
2021-10-29 09:04:56
191
原创 踩坑:JNI 开发 javah 生成包含函数原型的 C/C++ 头文件时,提示找不到类文件
背景在写 jni demo 时,在通过 javah 命令生成头文件时,一直提示找不到类文件,后续从网上搜了一堆方法,终于解决了,记录一下。过程一共三步写Java源码 javac 命令编译 Java javah 命令生成 .h 头文件需要注意的是:1 .java 文件和 .class文件不能放到同一级目录下,我是新建一个目录,把 .class 放进去。2.javah 命令是 javah -classpath 文件路径 包名+类名。比如我的命令是:javah -classp.
2021-09-14 23:05:59
465
原创 解决 debug info can be unavailable.Please close other application using ADB: Monitor, DDMS, Eclipse
在调试程序过程中,偶尔会遇到如标题所示无法debug的情况。在试了很多中方法之后,终于找到一个有效的命令,记录一下:usb restart adb server listening on USB
2021-09-05 22:53:26
2653
3
原创 HashMap 解析
HashMap1.概述HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现。HashMap 允许 null 键和 null 值,在计算哈键的哈希值时,null 键哈希值为 0。HashMap 并不保证键值对的顺序,这意味着在进行某些操作后,键值对的顺序可能会发生变化。另外,需要注意的是,HashMap 是非线程安全类,在多线程环境下可能会存在问题。2.原理散列算法分为散列再探测和拉链式。HashMap 则使用了拉链式的散列算法,并在 JDK 1.8 中引入了红黑树优化过长的链表
2021-08-30 23:46:03
192
原创 经典排序算法
冒泡排序冒泡排序是最简单的排序之一了,其大体思想就是通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。时间复杂度O(n ^ 2),稳定排序。package com.yxx.algorithm.sort;import static com.yxx.algorithm.sort.Util.*;/** * 冒泡排序 * 时间复杂度 O(n ^ 2) */public class BubbleSort { /** * 通过
2021-08-29 16:31:09
323
原创 Handle消息机制解析
概述Handler消息机制(由Handler/Looper/MessageQueue等构成),Android有大量的消息驱动方法来进行交互,就像Android的四大组件(Activity、Service、Broadcast、ContentProvider)的启动过程交互,都离不开Handler的消息机制,所以Android系统某种意义上说也是一种以消息驱动的系统。架构图相应的类HandlerHandler概述 Handler是一个可以通过关联一个消息队列来发送和处理消息,.
2021-08-23 21:08:44
782
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人