摘要: 一、对象存活标记 1. 引用计数算法 给对象中添加一个引用计数器,每当有一个地方引用它时,计数器就加1;当引用失效时,计数器就减1;任何时刻计数器都为0的对象就是不可能再被使用的。 引用计数算法(Reference Counting)的实现简单,判定效率也很高,在大部分情况下它都是一个不错的算法,也 阅读全文
posted @ 2019-01-01 23:38 zhaoshizi 阅读(240) 评论(0) 推荐(0) 编辑
摘要: Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE7版)》的规定,Java虚拟机所管理的内存将 阅读全文
posted @ 2018-12-31 23:04 zhaoshizi 阅读(183) 评论(0) 推荐(0) 编辑
摘要: 1. 写文件可以直接使用print函数 2. 判断一个文件有没有打开 可以判断文件变量有没有被定义,即有没有在locals()返回的集合中 3. 使用with语句就不再需要包含一个finally组来处理文件的关闭,python解释器会自动考虑这一点 打开多个文件时,中间用逗号分隔 4. print默 阅读全文
posted @ 2018-11-20 00:48 zhaoshizi 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 写python程序时常常要导入各种包,使用其中的模块或功能。我们如果有可以复用的功能或模块也可以发布成包,并安装在自己或他人电脑上,以供自己或别人使用。python发布包的步骤如下: 一、首先为模块创建一个文件夹 比如我有一个名为analyzelog.py的文件想发布成包,新建了一个文件夹Analy 阅读全文
posted @ 2018-11-16 01:33 zhaoshizi 阅读(852) 评论(0) 推荐(0) 编辑
摘要: 动态代理虽不常自己实现,但在Spring或MyBatis中都有重要应用。动态代理的意义在于生成一个占位(又称代理对象),来代理真实对象,从而控制真实对象的访问。Spring常JDK和CGLIB动态代理技术。现就了解的JDK动态代理做个笔记。 先举个例子,然后再慢慢分析。也可以直接跳过例子,回过头再看 阅读全文
posted @ 2018-10-03 20:32 zhaoshizi 阅读(232) 评论(0) 推荐(0) 编辑
摘要: 1. 输出CSV文件 用python输出csv文件不难,可是MS office excel和WPS 对输出的CSV文件打开规则不一样。 WPS可以支持CSV以'\t'为分隔符,打开文件直接写内容 MS office excel必须用','为分隔符,打开文件在写内容之前,要先写入文件头:u"\ufef 阅读全文
posted @ 2018-09-17 08:58 zhaoshizi 阅读(271) 评论(0) 推荐(0) 编辑
摘要: Selenium不再推荐使用PhantomJS,会报如下警告 UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Firefox inst 阅读全文
posted @ 2018-09-17 01:13 zhaoshizi 阅读(6369) 评论(0) 推荐(1) 编辑
摘要: 用了一段时间VSCode,觉得还可以,想用VSCode整合不同的开发语言,于是研究了一下利用VSCode搭建Java环境、开发Java程序。网上这方面的帖子有不少,但每人的经历不同,把自己的经历记下来吧。 先附上官网链接,官网上也对在VSCode中如何使用开发Java程序进行了说明 https:// 阅读全文
posted @ 2018-08-23 22:33 zhaoshizi 阅读(55813) 评论(0) 推荐(4) 编辑
摘要: 前段时间写了个多线程的程序,了解到Python中有个与众不同的thread.local()方法,可以创建一个全局对象,各个线程可以用这个全局对象保存各自的局部变量,而在使用时不受其他线程的影响。于是抽时间分析了一下thread.local()方法的源码。 相关知识储备: __slots__变量:__ 阅读全文
posted @ 2018-07-29 15:32 zhaoshizi 阅读(505) 评论(0) 推荐(0) 编辑
摘要: Python是一种非常灵活的动态语言,有时感觉太灵活以至于不知道遵循什么样的规则去驾驭。不过Python已经是非常完备的语言,想实现什么样的功能都是有方法的,而且也很容易,比如限制一个类动态添加成员变量。 一般情况下,我们定义完一个类,如果不加任何限制,还可以动态地为该类的对象或该类添加成员变量。 阅读全文
posted @ 2018-07-29 10:32 zhaoshizi 阅读(387) 评论(0) 推荐(0) 编辑