Java自带的动态代理
大家都知道,代理模式是23中设计模式中的一种,代理模式又分为动态代理和静态代理,今天主要介绍下动态代理。目前流行的动态代理,一种是JDK自带的动态代理,另外一种就是cglib动态代理。所为的代理就是构造一个新对象,实现对原有对象所有行为的支持,同时又可以支持新的功能,比如常见的AOP。
JDK[……]
Jupyter Notebook安装
Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。在本文中,我们将介绍 Jupyter notebook 的主要特性,以及为什么对于希望编写漂亮的交互式文档的人来说是一个强大工具。
安装Jupyter
如[……]
JDBC事务详解
事务的特性:
1) 原子性(atomicity):事务是数据库的逻辑工作单位,而且是必须是原子工作单位,对于其数据修改,要么全部执行,要么全部不执行。
2)一致性(consistency):事务在完成时,必须是所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数[……]
重构 01-Replace Nested Conditional with Guard Clauses 以卫语句取代嵌套条件表达式
在函数中,如果嵌套很深的if/else,代码理解起来是比较费力,可以说是bad code。在重构过程中,可以通过谓语句表达式达到同样的效果。如下代码:
[java]
double getPayAmount() {
double result;
if (_isDead) res[……]
Python2 vs Python3
1.性能
Py3.0运行 pystone benchmark的速度比Py2.5慢30%
2.编码
Py3.X源码文件默认使用utf-8编码,这就使得以下代码是合法的:
>>> 中国 = ‘china’
>>>print(中国)
china
3. 语法
1)[……]
Jquery Easyui中的坑
Jquery Easyui是一个不错的前端UI框架,它以非常低的学习和编程成本,尽可能的用非标准的HTML属性和特殊的css来标记页面,由框架统一解析为前端UI控件。
但是,框架的作者采用了类似半开源的方式,license可以使的软件免费使用,但是,它对javascript源码进行了混淆,不发布源[……]
JDK8 Stream流的用法
Stream 不是集合元素,它不是数据结构并不保存数据,它是有关算法和计算的,它更像一个高级版本的 Iterator。原始版本的 Iterator,用户只能显式地一个一个遍历元素并对其执行某些操作;高级版本的 Stream,用户只要给出需要对其包含的元素执行什么操作,比如 “过滤掉长度大于 10 的[……]
JDK8 lambda表达式
JDK8 中包含了很多内置的函数式接口。有些是在以前版本的Java中大家耳熟能详的,例如Comparator接口,或者Runnable接口。对这些现成的接口进行实现,可以通过@FunctionalInterface 标注来启用Lambda功能支持
Predicate
Predicate 是一[……]
日志输出中,必须使用条件输出形式或者使用占位符的方式
比如以下例子:
logger.debug(“Processing trade with id: ” + id + ” symbol: ” + symbol);
如果日志是warn,上述日志不会打印,但是在执行字符串的操作时,如果symbol是对象,就会执行toString()方法,浪费了[……]