![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java
文章平均质量分 93
WAXXD
这个作者很懒,什么都没留下…
展开
-
Java线程Thread--一文讲透线程相关API
0. Thread线程的状态转换以及相关API先来个图再说明线程就六种状态转换关系上面的图也画出来了.如果是JDK开发环境可以使用在bin目录下的jstack命令查看相关的线程状态.命令jstack pid 后面是笔者使用了过滤只查看状态, 可以看到图中有RUNNABLE, WAITING, TIEMD_WAITING.几种状态解释:NEW: Thread对象的实例刚刚创建出来的状态属于NEW.RUNNABLE: 这个状态属于可运行的状态, 但是RUNNABLE并不表示一定在运行, 当原创 2021-04-07 16:21:17 · 1013 阅读 · 5 评论 -
Java反射底层原理以及应用
写在前面: Java反射, 这个东西百度就会出来相关概念:JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;这种动态获取的信息以及动态调用对象的方法的功能称为Java语言的反射机制。字每一个都认识, 连起来的意思也不是那么的深奥, 但总给人感觉前面蒙着一层面纱看不清, 似懂非懂, 懂又不懂的感觉. 笔者就尝试从自己的理解对Java反射进行一些解释.0. 类加载过程要说反射就得从Java的类加载过程说起.&nb原创 2021-04-06 18:59:20 · 895 阅读 · 2 评论 -
java调用dll或者.so库--JNI
0. JNI .dll和.so就不用介绍了吧, 不知道的也应该不需要看本文, 就是库文件. JNI是啥, JNI全称Java Native Interface, 如果你有跟过Java的源码, 反正我觉得最恶心的就是一路跟到一个签名带native的方法, 你什么都看不到. 当然其实也不是什么都看不到要是想知道更加内部的原理还是有办法的, 比如下载hotspot的源码.JNI就是其它语言的代码和Java之间的一个桥, 这个其它语言基本也就是C++了.原创 2021-04-06 12:23:07 · 2299 阅读 · 5 评论 -
Java JDK动态代理JDK和CGLIB动态代理
0. 代理 代理是一种设计模式, 一种不直接访问目标, 通过代理访问目标的设计模式. 好像等于白说?代理其实在很多地方都有使用到, 不只是Java,在nginx中有正向代理反向代理, 生活中有律师代理他的当事人进行变护.用Java来解释:class A { public void add()}class B { private A a; public B(A a){ this.a = a; } public void add() {原创 2021-03-31 16:30:43 · 363 阅读 · 5 评论 -
Java8中的lambda表达式、::符号和Optional类
文章目录Java8中的lambda表达式、::符号和Optional类0. 函数式编程1. lambda表达式2. 双冒号::符号3. Optional类Java8中的lambda表达式、::符号和Optional类0. 函数式编程 函数式编程(Functional Programming)属于编程范式(Programming Paradigm)中的用语,此外还有命令式编程(Imperative Programing)等,有兴趣的同学可以自行了解,我们这里原创 2021-03-30 16:33:37 · 2085 阅读 · 7 评论 -
HashMap原理以及源码分析以及HashMap线程不安全问题
HashMap以下分析基于JDK1.80. 哈希表数据结构数据的物理存储结构主要分两种: 顺序存储和链式存储:顺序存储: 在内存中分配连续的内存空间存储数据, JAVA中的数组就是顺序存储结构的典型应用. 顺序存储结构对于指定位置的数据访问非常快速只需要首地址加上偏移地址即可访问, 如果对C/C++的指针有了解就非常容易理解了.复杂度为O(1),但对于插入删除略微复杂, 扩容也比较麻烦.链式存储: 在内存存储是分散的不相关联的, 上一个元素会保存下一个元素的内存地址, 这样依次形成链, 这.原创 2021-03-30 16:24:08 · 199 阅读 · 4 评论