上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 60 下一页
摘要: 什么叫Java内存模型? 现代计算机通过指令的重排序来提升计算机的性能,而没有限制条件的指令重排序会使得程序的行为不可预测,JMM就是通过一系列的操作规则限制指令重排序的方式使得指令重排序不会破坏JMM提供的可见性,同时JMM通过让JVM在适当的位置插入内存栅栏来屏蔽JMM与底层平台内存模型之间的差 阅读全文
posted @ 2019-04-02 18:15 西*风 阅读(819) 评论(0) 推荐(0)
摘要: 垃圾收集器需要解决的三个问题: 1)哪些内存需要回收 2)什么时候回收 3)如何回收 背景:程序计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭,在这几个区域内不需要过多的考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟着回收了,所以我们着重需要探究的是堆和方法区,因为他们是线程共 阅读全文
posted @ 2019-03-29 11:55 西*风 阅读(376) 评论(0) 推荐(0)
摘要: OOM异常:OutOfMemoryError1.JAVA堆溢出JAVA堆用于存储对象实例,只要不断的创建对象,并且保证GC Roots到这些对象之间有路径可以来避免垃圾回收机制清除这些对象,那么在对象数量达到最大堆的容量限制之后就会产生OOM异常解决方案:先分析到底是出现了内存泄漏(无法释放已申请的内存空间)还是内存溢出(没有足够的内存空间使用)内存泄漏:通过工具查看泄漏对象到GC Roots的引... 阅读全文
posted @ 2019-03-28 11:02 西*风 阅读(1682) 评论(0) 推荐(0)
摘要: 以常用的HotSpot虚拟机和JAVA内存区域堆为例,探讨对象的创建,对象的内存布局以及对象的访问定位 一.对象的创建 1)类加载:虚拟机遇到一条new指令时,先检测这个指令的参数能否在常量池中定位到一个类的符号的引用,并检查这个符号代表的类否收以及被加载,解析和初始化,如果没有那么就必须执行相应的 阅读全文
posted @ 2019-03-28 10:20 西*风 阅读(378) 评论(0) 推荐(0)
摘要: 背景介绍:假设现在有一个线程共享的变量c=0,让两个线程分别对c进行c++操作100次,那么我们最后得到的结果是200吗? 1.在线程不安全的方式下:结果可能小于200,比如当前线程A取得c的值为3,然后线程A阻塞了,线程B取得的c的值也是3,然后线程B也阻塞了,现在线程A被唤醒执行了++操作使得c 阅读全文
posted @ 2019-03-25 20:36 西*风 阅读(4831) 评论(0) 推荐(2)
摘要: JVM的分区可以分为两种:线程私有的内存区和线程共享的内存区 一.JVM中线程私有的内存区: 1.程序计数器:当前线程所执行的字节码行号计数指示器,是线程私有的,即每个线程都有自己的程序计数器,需要注意的是,如果当前JVM执行的是Native代码(即非JAVA代码),那么程序计数器值为空 2.JAV 阅读全文
posted @ 2019-03-24 19:37 西*风 阅读(4983) 评论(0) 推荐(1)
摘要: 1.Lambda表达式:允许把函数作为一个方法的参数Lambda的优点:1)简洁2)非常容易并行计算3)可能代表未来编程趋势Lambda的缺点:1)若不要并行计算,很多时候计算速度没有传统的for快(并行计算有时候需要预热才能显示出效率)2)不容易调试3)若其他程序员没有学过lambda表达式,代表不容易让其他语言程序员看懂2.方法引用:直接引用已有的java类或实例的方法或构造器,使得语言结构更... 阅读全文
posted @ 2019-03-16 19:41 西*风 阅读(244) 评论(0) 推荐(0)
摘要: java为数据结构中的映射定义了一个接口java.util.Map,他实现了四个类,分别是:HashMap,HashTable,LinkedHashMapTreeMapMap不允许键重复,但允许值重复1.HashMap:最常用的Map,根据键的hashcode值来存储数据,根据键可以直接获得他的值(因为相同的键hashcode值相同,在地址为hashcode值的地方存储的就是值,所以根据键可以直接... 阅读全文
posted @ 2019-03-16 17:03 西*风 阅读(4352) 评论(0) 推荐(1)
摘要: 工厂方法模式继承了简单工厂模式的优点,还弥补了简单工厂模式的缺陷 关于简单工厂模式请戳这里! 工厂方法模式的定义:定义一个用于创建对象的接口,但是让子类决定将哪一个类实例化,工厂方法模式让一个类的实例化延迟到其子类 简而言之就是工厂方法模式有多个子工厂,每个子工厂负责一个产品的生产,这些子工厂都有一 阅读全文
posted @ 2019-03-16 15:06 西*风 阅读(622) 评论(0) 推荐(0)
摘要: equals和hashcode是object类下一个重要的方法,而object类是所有类的父类,所以所有的类都有这两个方法equals和hashcode间的关系:1.如果两个对象相同(即equals比较返回true),那么他们的hashcode一定要相等2.如果他们的hashcode相等,他们的equals不一定相等假设两个对象,重写了其equals方法,其相等条件是属性相等,equals比较之后... 阅读全文
posted @ 2019-03-15 21:02 西*风 阅读(1897) 评论(0) 推荐(2)
上一页 1 ··· 15 16 17 18 19 20 21 22 23 ··· 60 下一页