首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
java
订阅
PlayInJava
更多收藏集
微信扫码分享
微信
新浪微博
QQ
22篇文章 · 2订阅
JVM如何处理方法调用
所有方法在Class文件都是一个常量池中的符号引用,类加载的解析阶段会将其转换成直接引用,这种解析的前提是:要保证这个方法在运行期是不可变的。这类方法的调用称为解析。 [ ] invokevirtual:调用所有的虚方法。 [ ] invokedynamic: 现在运行时期动态…
JVM内存管理
记录当前线程锁执行的字节码的行号。 程序计数器是一块较小的内存空间。 处于线程独占区。 执行java方法时,它记录正在执行的虚拟机字节码指令地址。执行native方法,它的值为undefined 存放方法运行时所需的数据,成为栈帧。其实它很简单!它里面存放的是一个函数的上下文,…
JVM垃圾回收机制入门
在堆里面存放着Java世界中几乎所有的对象实例, 垃圾收集器在对堆进行回收前, 第一件事就是判断哪些对象已死(可回收). 在JDK1.2之前,使用的是引用计数器算法。 **问题:**如果在A类中调用B类的方法,B类中调用A类的方法,这样当其他所有的引用都消失了之后,A和B还有一…
抽象类abstract的一些思考
好了,那今天就简单的解决下这个问题。 对抽象类的使用缺乏理解,我认为就是用的太少,如果你用过抽象类工厂的开发模式,你一定会对抽象类有很深的理解。我简单了写了一个demo: 这几个问题清楚了,为什么不能实例化abstract类的思路就很清晰了。 1. Phone类里的print方…
Class文件结构&字节码指令
class文件是一组以8位字节为基础单位的二进制流,各个数据项目严格按照顺序紧凑的排列在Class文件中,中间没有添加任何分隔符,整个Class文件中存储的内容几乎全部是程序运行的必要的数据,没有空隙存在。 当遇到8位字节以上的空间的数据项时,则会按照高位在前的方式分割成若干个…
Java并发编程 -- AQS实战手写锁&可重入锁
MyAQSLock.java从上往下分析,首先继承Lock接口,然后定义一个子类为非公共内部帮助器类Helper类,Helper类继承AQS,重写它的tryAcquire和tryRelease方法。作
Java 互斥锁/共享锁/读写锁 快速入门
什么是互斥锁?在访问共享资源之前对进行加锁操作,在访问完成之后进行解锁操作。加锁后,任何其他试图再次加锁的线程会被阻塞,直到当前进程解锁。如果解锁时有一个以上的线程阻塞,那么所有该锁上的线程都被编程就
Java多线程 -- 公平锁和非公平锁
那如何能保证每个线程都能拿到锁呢,队列FIFO是一个完美的解决方案,也就是先进先出,java的ReenTrantLock也就是用队列实现的公平锁和非公平锁。 在公平的锁中,如果有另一个线程持有锁或者有其他线程在等待队列中等待这个所,那么新发出的请求的线程将被放入到队列中。而非公…
从JVM视角分析try...catch...性能
代码运行时出错时,会先判断出错位置是否在from - to的范围,如果是,则从target标志位往下执行,如果没有出错,直接goto 到return。可以看出,如果代码不出错的话,性能几乎是不受影响的,和正常的代码执行是一样的。 我只需要把i>0改成i>=0,程序遍会进行一次异…
Java 函数式编程(三)流(Stream)
个人认为,外和内是相对集合代码而言。 如果迭代的业务执行在应用代码中,称之为外部迭代。 反之,迭代的业务执行在集合代码中,称为内部迭代(函数式编程)。 语言描述可能有点抽象,下面看实例。 1. 外部迭代 上面的迭代方法就是外部迭代。 本质上讲是串行化操作。 2. 内部迭代 整个…