摘要: Python允许使用装饰器对函数进行装饰,这样编写函数时就可以专注于功能的实现,而装饰器可以帮助函数实现一些通用的功能,在函数调用前运行写预备代码或函数调用后执行些清理工作.比如:插入日志,检测性能和事务管理. 装饰器实质上还是一个函数,用来包装别的函数的函数.包装后返回一个装饰后的函数对象,该函数 阅读全文
posted @ 2018-03-29 10:47 weller 阅读(317) 评论(0) 推荐(0) 编辑
摘要: 在Numpy中经常使用到的操作由扁平化操作,Numpy提供了两个函数进行此操作,他们的功能相同,但在内存上有很大的不同. 先来看这两个函数的使用: 可以看到这两个函数实现的功能一样,但我们在平时使用的时候flatten()更为合适.在使用过程中flatten()分配了新的内存,但ravel()返回的 阅读全文
posted @ 2018-03-27 18:31 weller 阅读(53567) 评论(0) 推荐(16) 编辑
摘要: 一般在web开发中定时调度比较有用,因为要维护一个容器不关闭才可以一直定时操作下去。 定时调度:每当一段时间之后,程序就会自动执行,就称为定时调度。如果要使用定时调动,则必须要保证程序要始终运行着,也就是说定时调度是在程序之外又启动了一个新的线程。 完成定时调度需要Timer和TimerTask类的 阅读全文
posted @ 2018-01-15 22:19 weller 阅读(621) 评论(0) 推荐(0) 编辑
摘要: 二叉树排序的基本原理:使用第一个元素作为根节点,如果之后的元素比第一个小,则放到左子树,否则放到右子树,之后按中序遍历。 下面实现一个二叉树排序的比较算法,为了操作方便,使用Integer类完成。 我们可以看到Integer类实现了Comparable接口,所以可用Integer实例化Compara 阅读全文
posted @ 2018-01-15 14:51 weller 阅读(18480) 评论(0) 推荐(1) 编辑
摘要: 1、Comparable比较器 在Arrays类中存在sort()排序方法,此方法可以直接对对象数组进行排序。 根据元素的自然顺序对指定对象数组按升序进行排序。但前提是数组中的所有元素都必须实现 Comparable 接口,并覆写compareTo()方法指定对象排序的规则。 Comparable接 阅读全文
posted @ 2018-01-15 14:46 weller 阅读(269) 评论(0) 推荐(0) 编辑
摘要: StringBuffer是使用缓冲区的,本身也是操作字符串的,但与String类不同,String类的内容一旦声明后是不可改变的,改变的只是其内存的指向,而StringBuffer类的对象内容是可以改变的。 对于StringBuffer而言本身就是一个操作类,不能像String那样直接通过赋值的方式 阅读全文
posted @ 2018-01-14 16:37 weller 阅读(3731) 评论(0) 推荐(0) 编辑
摘要: Thread和Runnable的联系 Thread类的定义: 联系:从Thread类的定义可以看到,Thread类实现了Runnable接口,即可以说Thread是Runnable的子类。 Thread和Runnable的区别 观察以下程序(程序1): 通过继承Thread类实现的多线程操作,两个售 阅读全文
posted @ 2018-01-14 16:32 weller 阅读(542) 评论(0) 推荐(0) 编辑
摘要: 观察以下代码 由文档知parseInt()的定义格式为: public static int parseInt(String s) throws NumberFormatException 我们可以看到在此方法中明明使用了throws抛出异常,但我们在调用时为什么不用处理就可以编译通过呢? 我们可以 阅读全文
posted @ 2018-01-14 16:18 weller 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 假设有这样一种情景: l 张三借给李四5000000块钱 l 李四不换了,张三很生气 l 张三找到王五,王五是讨债公司的 l 王五准备了老虎闸和辣椒水 l 把李四欠张三的钱拿回来了 也就是说,张三委托王五找李四要钱,也就是说王五代理了张三。 代理设计是在Java中一种常用的设计模式,所谓代理设计就是 阅读全文
posted @ 2018-01-14 16:11 weller 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 这样的代码有没有问题呢?从程序的设计思路上,主方法应该就表示一个客户端,住房法中的代码应该越少越好。此时在主方法中直接指定了要操作的子类,就表示了客户端和特定的子类紧密的耦合在一起了,这时如果要更换子类,就需要改变客户端。 我们参考JVM的工作原理:程序->JVM->操作系统。这就是一个解耦合的范例 阅读全文
posted @ 2018-01-14 16:08 weller 阅读(96) 评论(0) 推荐(0) 编辑