1、栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清楚的变量的存储区,里面的变量通常是局部变量、函数参数等。 2、堆,就是那些由new分配的内存块,他们的释放编译器不去管,由我们的应用程序去控制,一般一个new就要对应一个delete。如果程序员没有释放掉,那么在程序结束后,操作系统会自动 ...
分类:
编程语言 时间:
2019-09-20 16:58:21
阅读次数:
138
1.特点 跨平台(操作系统) 面向对象 简单性(多继承,指针) 健壮性(垃圾回收,异常处理) 多线程 大数据开发相关 2.运行机制 1. JVM(JAVA 虚拟机 Virtual Machine),可以在平台上用自带虚拟机翻译成对应语言。 JVM 把源文件.java 编译成字节码.class 2. ...
分类:
编程语言 时间:
2019-09-20 16:51:19
阅读次数:
64
读完 lua1.0 的源码感触:1. 把复杂的代码写简单2. pack 的内存回收3. hash 实现简单,但是应该可以改进,看高版本的代码怎么实现4. lua 初始化环境做了什么,就是一组全局变量初始化, lua_table, const, string, file, lua_arrary5. 栈 ...
分类:
其他好文 时间:
2019-09-20 12:09:31
阅读次数:
95
一、守护进程 1.1、什么是守护进程? 1、守护进程会在主进程代码运行结束的情况下,立即挂掉。 2、守护进程本身就是一个子进程。 3、主进程在其代码结束后就已经算运行完毕了(守护进程在此时就被回收),然后主进程会一直等非守护的子进程都运行完毕后回收子进程的资源(否则会产生僵尸进程),才会结束, 1. ...
分类:
编程语言 时间:
2019-09-19 22:08:19
阅读次数:
124
最近遇到了java heap space错误。 这个问题的原因,其实还是堆溢出了。 解决这个问题 1 首先我们考虑,在代码中哪里使用了较多的对象,但是又没有及时回收。 2 我们可以通过 jvisualvm.exe 工具去查看 我们先到jdk文件夹中的bin目录找到jvisualvm.exe。双击运行 ...
分类:
编程语言 时间:
2019-09-16 19:58:22
阅读次数:
107
如果对象的引用被置为null,垃圾收集器是否会立即释放对象占用的内存?垃圾回收的目的是识别并且丢弃应用不再使用的对象来释放和重用资源。当对象在JVM运行空间中无法通过根集合到达(找到)时,这个对象被称为垃圾对象,这个对象就可以被回收了。根集合是由类中的静态引用域与本地引用域组成的,JVM通过根集合索引对象。在释放对象占用的内存之前,垃圾收集器会调用对象的finalize()方法,一般建议在该方法中
分类:
编程语言 时间:
2019-09-16 17:56:16
阅读次数:
108
在 Java9 中,G1 GC 将成为默认的垃圾收集器,G1 垃圾收集器的关键特性之一是能够在不牺牲吞吐量的同时,限制 GC 暂停时间(即可以设置所需的最大停顿时间)。 由于 G1 GC 正在逐渐成为默认的垃圾收集器,它的使用与关注度也会逐渐增加。因此在调整 JVM 大小和排查问题的情况下,必须先理 ...
分类:
其他好文 时间:
2019-09-16 12:03:39
阅读次数:
108
golang panic的错误回收和简单的使用场景 代码示例 注意:deferPanic返回值的设计。返回值里面有声明变量了,这就相当与deferPanic中的一个变量,并且deferPanic返回值为变量的值。 原因:减少在函数中定义变量的代码 return、panic、defer的执行顺序 pa ...
分类:
其他好文 时间:
2019-09-16 11:46:10
阅读次数:
74
计算机语言 计算机语言是指人与计算机之间通讯的语言 分类 机器语言 汇编语言 高级语言 Java体系 JavaSE:标准版 JavaEE:企业版 JavaME:微型版 Java语言的特点 变量的声明与使用 声明格式 数据类型 变量名 = 变量值; 同时声明多个变量可以使用逗号隔开 变量类型 局部变量 ...
分类:
编程语言 时间:
2019-09-15 19:56:10
阅读次数:
144
参考资料:GC算法分类-https://zhuanlan.zhihu.com/p/41666328 《深入理解java虚拟机》第三章垃圾收集器与内存分配策略 一:GC分代--新生代跟老年代 gc活动空间为堆区域,堆按gc处理方式也可以分为新生代跟老年代。 对象内存分配跟使用的垃圾收集器有关,默认是在 ...
分类:
编程语言 时间:
2019-09-15 17:08:04
阅读次数:
110