Java进阶
文章平均质量分 92
码上.
这个作者很懒,什么都没留下…
展开
-
并发原子性问题
1、原子性问题的产生 1、下面的count存在jvm运行数据区中的哪个位置? public static int count=10000; 在jdk1.6中存在方法区中,jdk1.7以后存在堆中 2、根本原因 public static int count=10000; public void main(int [] args){ count++; } count++在cpu指令级别中会发生如下操作: 拷贝堆中的共享变量count到虚拟机栈中 在操作数栈中进行增加操作 写回共享变量中 故:根本原因是原创 2020-10-29 20:07:05 · 382 阅读 · 3 评论 -
JVM架构基础
Java virtual Machine :write once,run anywhere Hotspot是jvm规范的一种实现,java是运行class文件,javac将Java文件编译成class文件(十六进制文件),每两个十六进制位代表U1 magic(cafe babe) :标志class文件的正确格式,正确的class文件格式才可运行在jvm中。jvm只识别十六进制的文件,这文件不一定要从java源码编译过来,可以是其他语言通过其他编译方式,形成class文件,就可以在jvm上运行 类加载机制:(原创 2020-10-29 13:13:38 · 336 阅读 · 2 评论 -
并发编程认知
1、什么是并发编程? 并发:多个事件在同一时间间隔内发生。那在计算机当中为何要有并发?即单台计算机中的进程和线程为何要并发执行,当然是为了充分利用cpu资源,提高计算机系统的吞吐量。 编程:使用编程语言:java,go,c++ 并发编程:使用编程语言解决并发问题 2、并发会导致哪些问题? cpu是中央处理单元,调度线程进行运算,在我们的业务工程中会产生如下三个问题: 1、如何拆分工程业务分配给不同的线程使用cpu资源进行工作? 2、多线程的执行顺序如何确定? 3、多线程使用的共享数据是否有安全问题?(原创 2020-10-28 00:12:40 · 119 阅读 · 0 评论 -
存储数据结构之HashMap
文章目录1、HashMap为什么产生?2、在构造HashMap过程中会产生哪些问题?2.1、初始化数组长度应该为多少?2.2、如何确定键值对在数组中的存储位置?2.3、产生hash冲突如何解决?2.4、当链表长度过大会引发什么问题?2.5、为什么是8时变为红黑树?2.6、何时扩容,何如扩容,为什么?3、ConcurrentHashMap为何产生 1、HashMap为什么产生? 问题 在大数据背景下,如何设计出查增数据速度快的数据结构,且需要存储键值对? 解决思路: 1、数组具有查找快速的特点,能存储键值对原创 2020-10-21 22:51:01 · 139 阅读 · 0 评论 -
java的finalized作用
object的finalized方法 此方法在垃圾回收时被调用,用于回收资源时的处理 注意点 1、System包含三个静态变量:PrintStream out、InputStream in 和 PrintStream err。 2、InputStream.read()会等待读取输入流,或者等待超时才会返回,进而导致线程阻塞 3、调用gc垃圾回收时,需要使主线程阻塞从而有足够的时间给gc回收线程进行垃圾回收 ...原创 2020-10-20 00:30:05 · 513 阅读 · 1 评论