首页
首页
沸点
课程
直播
活动
竞赛
商城
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. 内部迭代 整个…