1. 多线程的创建方式 (1)、继承 Thread类:但Thread本质上也是实现了Runnable 接口的一个实例,它代表一个线程的实例,并且,启动线程的唯一方法就是通过 Thread 类的 start()实例方法。start()方法是一个 native 方法,它将启动一个新线程,并执行run() ...
分类:
编程语言 时间:
2019-05-24 15:44:52
阅读次数:
150
Java多线程非常复杂,可以使用BlockingQueue和Executor等工具类来简化使用。但还是要弄清wait()、notify()和notifyAll()的作用和用法。它们都是native方法 一、wait() 作用:告诉当前调用它的方法释放锁并sleep,直到其它某个线程也进入sleep状 ...
分类:
编程语言 时间:
2019-05-13 16:10:22
阅读次数:
155
CAS(Compare-and-Swap),即比较并替换,java并发包中许多Atomic的类的底层原理都是CAS。 它的功能是判断内存中某个地址的值是否为预期值,如果是就改变成新值,整个过程具有原子性。 具体体现于sun.misc.Unsafe类中的native方法,调用这些native方法,JV ...
分类:
其他好文 时间:
2019-04-23 23:50:13
阅读次数:
310
1、集合 ArrayList,基于数组Object[] elementData实现,因为是连续内存,所以使用native方法System.arraycopy执行扩容操作,1.5倍扩容 迭代器模式,定义Iterable接口表示“可迭代”,Collection extends Iterable,List ...
分类:
编程语言 时间:
2019-04-09 20:35:51
阅读次数:
167
由于运行时常量池属于方法区的一部分,因此两个区域放在一块执行。 String.intern()是一个Native方法,它的作用是如果字符串常量池中已经包含了此String对象的字符串,则返回代表池中这个字符串的String对象;否则将此String对象包含的字符串添加到常量池中,并且返回此Strin ...
分类:
其他好文 时间:
2019-03-29 00:46:45
阅读次数:
208
附有连接(https://www.cnblogs.com/jingmoxukong/p/4302891.html),其中很多是引用其他作者,主要是自己学习随笔,如果有问题,请与我联系,万分感谢! ...
分类:
编程语言 时间:
2019-03-09 23:51:48
阅读次数:
180
ndk-build ①声明native方法 ②模块的根目录下创建一个jni目录 创建Android.mk 右键单击模块 选择Link C++ Project with gradle 这个Android.mk指定了之后就给当前的项目添加了ndk-build的支持 写C的代码 ③ java代码中 sys ...
分类:
其他好文 时间:
2019-02-24 11:00:39
阅读次数:
143
①Caused by: java.lang.UnsatisfiedLinkError: Native method not found: MainActivity.hello_InC 本地方法没有找到 出错误的原因1 native方法对应的c的函数 不符合命名的规范 出错误的原因2 native方法 ...
分类:
其他好文 时间:
2019-02-24 10:57:59
阅读次数:
165
对比JDK1.7,JDK1.8在运行时的内存分配上进行了调整。本篇对JDK1.8版本进行简要介绍。 先以一张图片描述运行时内存: 程序计数器 记录当前线程执行的字节码行号。如果执行的是native方法,值为null。 虚拟机栈 每一个线程执行时,都对应有一个虚拟机栈,生命周期与线程相同。一个虚拟机栈 ...
分类:
其他好文 时间:
2019-02-22 23:04:01
阅读次数:
303
一、实现Java多线程的方法 1、继承Thread类创建多线程 Thread类本质实现了Runnable接口。启动线程为start0()方法。是个native方法。 2、实现Runnable。一个类已经继承了Thread类就无法继承其它类。 3、实现Callable 如果运行完线程并且需要线程返回结 ...
分类:
编程语言 时间:
2019-02-07 12:08:02
阅读次数:
190