变量分类:1、栈内存(stack)和堆内存(heap)2、基本类型和引用类型 栈内存(stack) 一般为静态分配内存,其分配的内存系统自动释放。 堆内存(heap) 一般为动态分配内存,其分配的内存,系统不释放,哪怕程序退出,那一块还是在那里。 基本类型: Number、String、Null、U ...
分类:
Web程序 时间:
2019-05-31 19:52:34
阅读次数:
121
有些程序运行的时候,可能调用外部的dll,用户使用时可能会不小心丢失这些dll,导致程序无法正常运行,因此可以考虑将这些dll嵌入到资源中,启动时自动释放。对于托管的dll,我们可以用打包软件合成一个exe(例如利用Imerge),但是对于一些用C++等写的非托管dll,就比较麻烦。在这种情况下,大 ...
两者区别: 1.首先synchronized是java内置关键字,在jvm层面,Lock是个java类; 2.synchronized无法判断是否获取锁的状态,Lock可以判断是否获取到锁; 3.synchronized会自动释放锁(a 线程执行完同步代码会释放锁 ;b 线程执行过程中发生异常会释放 ...
分类:
其他好文 时间:
2019-05-14 13:17:57
阅读次数:
126
auto :用来定义自动申请内存、自动释放内存的变量(局部变量、块变量) 不加就代表加,与signed一样(注意:全局变量前不能使用) const :是对变量提供保护,定义出来不一定是常量,但不决定安全 变量一旦初始化后,就不能显示修改的值 const修饰被初始化过的全局变量才是真正的变量,一旦修改 ...
分类:
编程语言 时间:
2019-05-11 21:40:16
阅读次数:
211
栈存放:会为每个方法(包括构造函数)开辟一个栈指针,方法执行完毕后,会自动退出,并释放空间 局部变量 先进后出 自下而上存储 方法执行完毕 自动释放空间 堆: 存放new出来的对象 需要垃圾回收器来回收 方法区:其实也是在堆中的 存放类的信息(代码)、 static变量、字符串常量等 ...
分类:
编程语言 时间:
2019-04-28 12:59:48
阅读次数:
132
我们在使用资源的时候,必须关闭资源,比如使用jdbc连接或者inputStream的时候,必须在finally中将资源关闭。然而有的时候我们会忘记关闭资源。那么有没有更好的方法呢? 从jdk1.7开始, Java 7增强了try语句的功能——它允许在try关键字后跟一对圆括号,圆括号可以声明,初始化 ...
分类:
其他好文 时间:
2019-04-23 22:41:14
阅读次数:
329
对于实现分布式乐观锁非常重要。如果锁了,突然宕机了,锁是需要自动释放的。所以这锁在etcd里是需要生命期的。过期演示:packagemainimport("context""fmt""go.etcd.io/etcd/clientv3""time")funcmain(){var(configclientv3.Configclient*clientv3.Clienterrerrorleaseclien
分类:
其他好文 时间:
2019-04-20 17:08:32
阅读次数:
488
synchronize 和Lock: 1、synchronize 系java 内置关键字;而Lock 是一个类 2、synchronize 可以作用于变量、方法、代码块;而Lock 是显式地指定开始和结束位置 3、synchronize 不需要手动解锁,当线程抛出异常的时候,会自动释放锁;而Lock ...
分类:
其他好文 时间:
2019-04-06 09:23:40
阅读次数:
130
加锁和释放锁的原理 当方法执行完后或者抛出异常后,都会释放锁 method1等价于method2,因为method1执行完以后会自动释放锁,而么method2使用lock.unlock()释放锁 反编译看monitor指令 被 synchronized 关键字修饰的方法、代码块,就是 monitor ...
分类:
其他好文 时间:
2019-04-05 00:41:24
阅读次数:
241
1.垃圾回收(Garbage collection) a.对象创建 b.javascript垃圾回收,内存出现泄漏一般都发生在回收阶段. 低级语言,需要手动管理内存的分配和释放,javascript作为一种高级语言,垃圾回收器,当对象创建时会自动分配内存,当对象不再被使用的时候会自动释放内存。 如果 ...
分类:
编程语言 时间:
2019-04-04 09:45:12
阅读次数:
174