- 博客(4)
- 收藏
- 关注
原创 CountDownLatch和CyclicBarrier的区别
前言看了任玉刚讲BinderPool的时候用到了CountDownLatch,这东西Android开发中用的比较少,每次都是记了又忘,并且容易跟CyclicBarrier搞混。特别有些博客说“CountDownLatch会阻塞主线程”,虽然我记性差,但也能知道这句话混淆概念不负责任,于是有了这篇博客,现在直奔主题。共同点都能调用await()阻塞当前线程都能达到条件后唤醒线程唤醒线程时都是一次性唤醒所有线程不同点CountDownLatchCyclicBarrier构
2021-02-09 16:20:01
222
1
原创 浅谈堆内存和栈内存
区别用途:栈内存用于执行程序;堆内存用于存放对象。存放:栈内存主要存放局部变量和对象的引用;堆内存主要存放对象。唯一性:每个Java线程都有一个栈,而一个Java进程只有一个堆。速度与灵活性:栈内存在运行时需要计算出分配多少内存空间,灵活性低,但速度更快。堆内存空闲空间大,运行时不关心需要分配多少内存空间,...
2020-12-01 18:02:06
318
原创 浅谈NDK和JNI
什么是JNI和NDKJNI是Java Native Interface的缩写,翻译过来为“Java原生接口”。我大致把他理解成一种支持Java和c/c++交互的技术。对于Android来说,使用JNI开发项目,通常有以下优点。使用c/c++编写对语言性能有要求的代码,提高程序运行速度使用c/c++编写需要加密的代码,防止反编译有些库只有c/c++版本,jni提供了Java与其交互的能力NDK是Native Development Kit的缩写,翻译过来为“原生开发包”,是用于支持在java
2020-11-30 16:39:37
383
原创 多个JAVA版本导致的JAVA_HOME is set to an invalid directory
现象Android Studio中运行java命令或gradlew命令均报错:JAVA_HOME is set to an invalid directory。但cmd中正常。已经配置好了JAVA环境变量,但Project Structure->JDK Location里的JAVA_HOME指向的却是Android Studio的内置JDK路径环境已装有JAVA10,项目需要又装了个JAVA1.8,且已经正确修改环境变量解决方案删掉JAVA_HOME重新配置查找原因JAVA版本冲
2020-08-13 10:54:14
370
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人