首先,JVM除了程序计数器之外,都可能发生内存溢出OutOfMemoryError(OOM)异常。这里主要对可能发生内存溢出的区域,原因进行总结。 1.JAVA虚拟机栈 虚拟机栈是线程私有的,虚拟机栈主要存储局部变量。Java虚拟机规范中,规定了此区域会抛出两种异常: (1)如果请求栈深度大于虚拟机 ...
分类:
编程语言 时间:
2019-09-08 00:02:58
阅读次数:
85
GC需要完成的三个件: 哪些内存需要回收 ?什么时候回收? 如何回收? java内存运行时区域中程序计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭,栈中的栈帧随着方法的进入和退出 而有条不紊的执行着出栈和入栈操作。每一个桢帧中分配多少内存基本上是类结构确定下来就已知的,因此这个区域的内存 ...
分类:
其他好文 时间:
2019-09-07 13:11:22
阅读次数:
92
什么是线程: 操作系统调度的最小单元是线程,也叫轻量级进程,在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量 为什么使用多线程: 更多的处理器核心 更快的响应时间 更好的编程模型 线程优先级: 在Java线程中,通过一个整型成员变量prior ...
分类:
编程语言 时间:
2019-09-06 01:01:32
阅读次数:
116
循环就是在重复执行循环体里面的代码 1.while首先需要定义一个计数器,代码例子如下: 查看结果: 2.for循环不需要定义计数器,循环几次直接写range(n),代码例子如下: 查看结果: 3.break:在循环体中遇到break,立即结束循环,代码例子如下: 结果如下:当遇到break时,不管 ...
分类:
编程语言 时间:
2019-09-05 23:34:16
阅读次数:
127
更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 应用场景 缓存系统:用于缓解数据库的高并发压力 计数器:使用Redis原子操作,用于社交网络的转发数,评论数,粉丝数,关注数等 排行榜:使用zset数据结构,进行排行榜计算 实时系统:使用Redis位图的功能实现布隆 ...
分类:
其他好文 时间:
2019-09-04 10:00:37
阅读次数:
80
大学刚来的时候没有特别鲜明的目标,只觉得四年里最重要的是要找到自己想要做什么,大学里自动化知识不一定是最重要的,但是提高自己的综合素质很重要。 高中的时候就很喜欢辩论,得益于语文老师爱给我们搞各式各样的活动,辩论是成为了我很喜欢的一种交流活动。曾经有人问过我,辩论的时候如果你抽到了一个‘三观不正的辩 ...
分类:
其他好文 时间:
2019-09-02 21:03:02
阅读次数:
121
自定义的装饰器,由于硬编码的原因只能应用在一类具体的方法上,这类方法接受两个参数,传递给闭包捕获的函数,如果我们实现一个能够应用在任何方法上的装饰器要怎么做呢?在比如,如果过我们要实现一个能够应用到任何方法上的计数器的装饰器,不需要改变原有的方法的任何逻辑,这意味着装饰器能够接受任何签名的函数作为自 ...
分类:
其他好文 时间:
2019-09-02 13:38:00
阅读次数:
46
占空比为50%分频: 偶数分频,一个计数器就可以搞定; 奇数分频: 1.用两个计数器分别按照上升下降沿计数,最后如果高电平的比低电平多一个周期则用与门,少一个周期则用或门; 2.另一种使用异或门的形式组合如下图: 先根据上升沿计数(只用到一个计数器)从0计到(N-1) 再产生两个使能信号tff_1e ...
分类:
其他好文 时间:
2019-08-30 11:13:55
阅读次数:
80
前言 上一篇中,我们了解了JVM中的线程独占区,这节课我们就来了解一下JVM中的线程共享区,JVM中的线程共享区是跟随JVM启动时一起创建的,包括堆(Heap)和方法区()两部分,而线程独占区的程序计数器,虚拟机栈,本地方法栈的生命周期都是跟随线程的,随线程的创建而诞生,随线程的销毁而销毁。 堆(H ...
分类:
编程语言 时间:
2019-08-29 09:14:48
阅读次数:
97
概念 (这是我学习过程中的一些总结) JAVA虚拟机内存模型 从属于线程的内存区域 JVM的内存划分中,有部分区域是线程私有的,有部分是属于整个JVM进程;我们将这部分归为一类。 1.程序计数器(Program Counter Register) 在JVM规范中,每个线程都有自己的程序计数器。这是一 ...
分类:
编程语言 时间:
2019-08-28 22:22:09
阅读次数:
125