之前上学的时候有这个一个梗,说在食堂里吃饭,吃完把餐盘端走清理的,是 C++ 程序员,吃完直接就走的,是 Java 程序员。🤔 确实,在 Java 的世界里,似乎我们不用对垃圾回收那么的专注,很多初学者不懂 GC,也依然能写出一个能用甚至还不错的程序或系统。但其实这并不代表 Java 的 GC 就 ...
分类:
编程语言 时间:
2019-09-12 13:01:45
阅读次数:
76
一、Python发展史 1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易 ...
分类:
编程语言 时间:
2019-09-12 11:40:58
阅读次数:
105
SimpleDateFormat 的线程安全性问题 SimpleDateFormat类内部有一个Calendar对象引用,用来储存这个SimpleDateFormat相关的日期信息,多线程下会共享这个Calendar引用,会导致出现幻读成员变量的现象 解决办法: 1、将SimpleDateForma ...
分类:
其他好文 时间:
2019-09-11 21:33:41
阅读次数:
106
判断哪些对象需要被回收 引用计数算法: 给对象中添加一个引用计数器,每当有一个地方引用时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。 但是JVM没有使用此方法,因为此方法无法解决2个对象相互循环引用的问题。 可达性分析算法: 这个算法的基本思路就是通 ...
分类:
编程语言 时间:
2019-09-11 15:52:21
阅读次数:
98
本人免费整理了Java高级资料,一共30G,需要自己领取;传送门:https://mp.weixin.qq.com/s/JzddfH-7yNudmkjT0IRL8Q 说起垃圾收集(Garbage Collection, GC),想必大家都不陌生,它是JVM实现里非常重要的一环,JVM成熟的内存动态分 ...
分类:
编程语言 时间:
2019-09-11 15:38:37
阅读次数:
78
1.垃圾回收概述 随着程序的不断运行,程序所产生的对象必将越来越多,而系统的内存则是有限的,所以,将没有用的对象进行清除是程序长期稳定运行的关键. 垃圾回收主要关注三个问题 什么对象应该被回收? 当然是没有用的对象.当对象不再被引用时,我们认为该对象应该被回收.如何判断对象是否还被引用,会在后面详述 ...
分类:
编程语言 时间:
2019-09-11 13:40:08
阅读次数:
100
堆外内存简介DirectByteBuffer这个类是JDK提供使用堆外内存的一种途径,当然常见的业务开发一般不会接触到,即使涉及到也可能是框架(如Netty、RPC等)使用的,对框架使用者来说也是透明的。堆外内存优势堆外内存优势在IO操作上,对于网络IO,使用Socket发送数据时,能够节省堆内存到堆外内存的数据拷贝,所以性能更高。看过Netty源码的同学应该了解,Netty使用堆外内存池来实现零
分类:
编程语言 时间:
2019-09-10 11:33:29
阅读次数:
113
目录 1. 简述垃圾回收机制 2. 引用计数练习 3. 简述小整数池概念 4. 对于x = 10,请用python代码分别打印变量值、变量值内存和变量数据类型 5. 对于下述代码: ? 请判断x、y、z的变量值是否相同?x、y、z的所在的内存地址是否相同?请用python代码阐述为什么? 6. 简述 ...
分类:
编程语言 时间:
2019-09-09 22:30:19
阅读次数:
123
默认情况下,ef在datacontext生命周期中跟踪已加载的实体 当操作数据库现有数据时,才会跟踪 如果在datacontext回收之前没savechanges,那么跟踪的状态就会丢失. 实体得要有主键属性才能跟踪 可以用下面的方法来跟踪datacontext的状态(Added Modified ...
分类:
其他好文 时间:
2019-09-09 22:27:25
阅读次数:
116
之前看过《深入了解Java虚拟机》感觉容易忘,今天写一篇博客加深一下印象。 JVM的内存分配和垃圾回收(GC)主要发生在Java堆中。而Java堆根据对象的存活时间可以分为新生代和老年代,而新生代又细分为Eden区、From Survivor区、To Survivor区,这是由于新生代中的垃圾回收算 ...
分类:
其他好文 时间:
2019-09-09 22:20:02
阅读次数:
109