异常的定义 异常:在Java语言中,将程序执行中发生的不正常情况称为“异常”。 (开发过程中的语法错误和逻辑错误不是异常) 1. 异常的体系结构 Java程序在执行过程中所发生的异常事件可分为两类: Error: Java虚拟机无法解决的严重问题。如:JVM系统内部错误、资源耗尽等严重情况。比如: ...
分类:
编程语言 时间:
2020-09-23 23:02:52
阅读次数:
39
什么是乐观锁? 很乐观的想,总是不会发生并发问题,每次取数据的时候总认为其他线程不会对数据进行修改,所以就不会加锁。但是在更新数据的时候,会判断在此之前又没有其他线程修改过数据。 实现乐观锁一般使用版本号机制和CAS操作。 版本号机制 一般是在数据表中加上一个数据版本号version字段,表示数据被 ...
分类:
其他好文 时间:
2020-09-21 11:34:45
阅读次数:
29
python中得比较运算符有: < > = != <= >= == 讲讲==与is得差别 ==指得是两个数值之间相等进行比较 而is则是两个变量地址值进行比较 布尔运算符: in not in or and not or 或 and 且 in 在..里 not in 不在..里 not 不 位移运算 ...
分类:
编程语言 时间:
2020-09-18 02:57:21
阅读次数:
47
写在前面 在Java中提供了synchronized关键字来保证只有一个线程能够访问同步代码块。既然已经提供了synchronized关键字,那为何在Java的SDK包中,还会提供Lock接口呢?这是不是重复造轮子,多此一举呢?今天,我们就一起来探讨下这个问题。 再造轮子? 既然JVM中提供了syn ...
分类:
编程语言 时间:
2020-09-18 02:25:58
阅读次数:
29
1、Java SE Java基础 数据类型/常量与变量 标识符/关键字/运算符/流程控制 数组/方法 类和对象 成员变量/局部变量 匿名对象/this关键字/构造方法 封装/继承/多态 抽象/接口/内部类 集合 Java高级 线程/锁 JDK 反射 JVM GC IO和NIO,AIO 2、JAVA ...
分类:
编程语言 时间:
2020-09-18 02:19:16
阅读次数:
40
1.垃圾标记阶段算法 在堆里存放着几乎所有的Java对象实例,在Gc执行垃圾回收之前,首先需要区分出内存中哪些是存活对象,哪些是已经死亡的对象。只有被标记为己经死亡的对象,Gc才会在执行垃圾回收时,释放掉其所占用的内存空间,因此这个过程我们可以称为垃圾标记阶段。那么在JVM中究竟是如何标记一个死亡对 ...
分类:
编程语言 时间:
2020-09-18 01:30:02
阅读次数:
36
在面向对象的编程中,会很频繁的使用到动态分派,如果每次动态分派的过程中都要重新在类的方法元数据中搜索合适的目标的话可能影响到执行效率。为了提高性能,JVM采用在类的方法区建立一个虚方法表(virtual method table)(非虚方法不会出现在表中)来实现。使用索引代替查找。 每个类中都有一个 ...
分类:
其他好文 时间:
2020-09-17 23:18:51
阅读次数:
24
运行时数据区 程序计数器/PC寄存器 线程私有,程序计数器是一块较小的内存空间,当前线程所执行的字节码的行号指示器。 字节码解释器工作时就是通过改变计数器的值来选择下一条需要执行的字节码指令,分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖计数器完成。 如果线程在执行java方法,计数器记录 ...
分类:
编程语言 时间:
2020-09-17 23:11:27
阅读次数:
31
问题: JVM安全点是什么概念? finally是如何实现的?finally中抛出异常会怎么样? 1.JVM安全点是什么概念? 安全点就是某些记录线程此时调用栈、寄存器等一些重要的数据区域里什么地方包含了GC要管理的指针(对象引用),而这些对象引用是通过OopMaps结构进行记录的,可以直接通过对O ...
分类:
其他好文 时间:
2020-09-17 22:19:26
阅读次数:
33
BIO通信模型图 缺点:缺乏弹性伸缩能力,线程是非常宝贵的资源,为每个请求创建、销毁线程会在请求数膨胀时出现性能问题,甚至堆栈溢出、创建线程失败,最终导致进程宕机。 改进用线程池 NIO的关键概念 缓冲区Buffer ByteBuffer(最常用) CharBuffer ShortBuffer In ...
分类:
Web程序 时间:
2020-09-17 21:06:34
阅读次数:
48