为什么需要垃圾回收: 在程序执行的过程中,会产生一系列的对象(占用内存的代表),这些都会存储在内存中。一部分对象在生命周期结束后,依然会占用一部分内存。这些占用内存却没有再次使用的对象,我们称之为“垃圾”,而对“垃圾”占用的内存的回收,就是垃圾回收。 在没有垃圾回收机制的语言里,垃圾回收操作需要程序 ...
分类:
编程语言 时间:
2019-07-25 14:54:27
阅读次数:
137
多线程 一, 开启多线程的两种方式 二, 在一个进程下开启多个线程与在一个进程下开启多个子进程的区别 三, 线程相关的其他方法 四, 守护线程 无论是进程还是线程,都遵循: 守护xx会等待主xx运行完毕后被销毁 需要强调的是: 运行完毕并非终止运行 对主进程来说,运行完毕指的是主进程代码运行完毕 主 ...
分类:
编程语言 时间:
2019-07-25 00:16:44
阅读次数:
100
判定对象是否属于垃圾: 判断对象的引用数量 通过判断对象的引用数量来决定,是否被回收,引用数量=0,被当做垃圾处理 每个对象实例,都有一个引用计数器,被引用+1,完成引用-1 优点:执行效率高,程序执行影响较小 缺点:无法检测循环引用的情况,导致内存泄露 可达性分析算法 通过判断对象的引用链是否可达 ...
分类:
编程语言 时间:
2019-07-24 21:09:29
阅读次数:
133
1. 说明 java是一门完全的面向对象编程语言。对于开发者而言,面向对象的思想无疑是非常重要的,但是对于对象本身我们也有必要知道,对象从怎么来的?又怎么死的。 通常我们创建一个对象最常见的方式如下 这样对象就被创建了,我们可以操作object去实现我们需要的功能,但是问题在于,怎么创建的?执行了所 ...
分类:
其他好文 时间:
2019-07-24 21:07:21
阅读次数:
102
一、垃圾回收的必要性 下面这段话引自《JavaScript权威指南(第四版)》 由于字符串、对象和数组没有固定大小,所有当他们的大小已知时,才能对他们进行动态的存储分配。JavaScript程序每次创建字符串、数组或对象时,解释器都必须分配内存来存储那个实体。只要像这样动态地分配了内存,最终都要释放 ...
分类:
编程语言 时间:
2019-07-24 09:21:33
阅读次数:
99
会话拥有并管理TensorFlow程序运行时的所有资源。当计算完成后需要关闭会话来帮助系统回收资源,否则就可能出现资源泄漏的问题。 TensorFlow中使用的会话模式一般有梁总,第一种模式需要明确调用会话生成函数和关闭会话函数,代码流程如下: 上述方法计算完成时,需要明确调用Session.clo ...
分类:
其他好文 时间:
2019-07-24 00:33:51
阅读次数:
122
图片来源于《用得上的商学课》课程封面 003 沉没成本(Sunk cost) 定义: 沉没成本是指已发生或承诺、无法回收的成本支出,如因失误造成的不可收回的投资。沉没成本是一种历史成本,对现有决策而言是不可控成本,不会影响当前行为或未来决策。从这个意义上说,在投资决策时理性的决策者应排除沉没成本的干 ...
分类:
其他好文 时间:
2019-07-24 00:10:09
阅读次数:
120
据《南华早报》网站7月18日报道,在上海7月1日开始实施垃圾分类新政,居民们吐槽不知该如何正确地把垃圾分成四类之后,中国的大互联网公司纷纷推出手机APP来帮忙。报道称,居民如不遵守新规定,即垃圾必须按照湿垃圾、干垃圾、可回收垃圾和有害垃圾进行分类,就会面临罚款,并且影响个人征信。报道称,阿里巴巴旗下的支付宝早些时候宣布,使用人工智能和增强现实技术的一款小程序,可帮助上海和中国其他城市的居民进行垃圾
分类:
其他好文 时间:
2019-07-23 16:44:54
阅读次数:
138
程序计数器 记录字节码指令地址,占用空间很小,基本无异常抛出 本地方法栈 native方法区 方法区 所有线程共享,主要存储类的信息,常量池,方法数据,方法代码。 堆内存 JVM所有线程共享,所有对象和数组都在堆上进行分配,这部分内存可通过GC回收,申请不到内存空间会抛出 虚拟机栈 线程私有,随线程 ...
分类:
其他好文 时间:
2019-07-23 14:58:59
阅读次数:
84
前言:相比C++,java做的一大改进是将复杂的内存管理抽离出来交给jvm去处理,让码农不再时刻盯着内存泄漏的问题,可以更专注于业务逻辑的开发。 java的GC机制是和其内存模型相关联的,而GC的核心内存区域是内存中的堆区。 java堆区按对象的存活时间被分为了年轻代(eden区+s0区+s1区)和 ...
分类:
编程语言 时间:
2019-07-23 13:09:36
阅读次数:
103