- 博客(66)
- 资源 (5)
- 收藏
- 关注
原创 JavaScript浏览对象(笔记)
JavaScript可以获取浏览器提供的很多对象,并进行操作。windowwindow对象不但充当全局作用域,而且表示浏览器窗口。navigatornavigator对象表示浏览器的信息,最常用的属性包括:navigator.appName:浏览器名称;navigator.appVersion:浏览器版本;navigator.language:浏览器设置的语言;navigator.platfo
2017-11-24 14:08:03 323
原创 JavaScript面向对象编程——类(笔记)
类新的关键字class从ES6开始正式被引入到JavaScript中。class的目的就是让定义类更简单。class Student { constructor(name) { this.name = name; } hello() { alert('Hello, ' + this.name + '!'); }}var xiaomin
2017-11-24 11:42:00 390
原创 JavaScript标准对象(笔记)
在JavaScript的世界里,一切都是对象。 不要使用new Number()、new Boolean()、new String()创建包装对象; 用parseInt()或parseFloat()来转换任意类型到number; 用String()来转换任意类型到string,或者直接调用某个对象的toString()方法; 通常不必把任意类型转换为boolean再判断,因为
2017-11-22 19:51:29 303
原创 JavaScript 函数(笔记)
JavaScript 函数JavaScript的函数不但是“头等公民”,而且可以像变量一样使用,具有非常强大的抽象能力。定义函数function abs(x){ if(x >= 0){ return x; } else { return -x; }}由于JavaScript的函数也是一个对象,上述定义的abs()函数实际上是一个函数对象,而函
2017-11-22 17:45:24 476
原创 JavaScript 基础(笔记)
JavaScript 基础动态语言 StringES6里多行字符串可以用反引号 `…`表示。 ES6 模板替换, console.log(hello ${name}, you are ${age} years old now!); Arrayvar array = [1, 44, ‘hello’, null, true]; array.length; 请注意,直接给Array的
2017-11-22 13:27:28 279
原创 commons-logging 原理浅析
介绍Apache Commons Logging,又叫做JakartaCommons Logging (JCL),他提供的是一个日志(Log)接口(interface),同时兼顾轻量级和不依赖于具体的日志实现工具。它提供给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。用户被假定已熟悉某种日志实现工具的更高级别的细节。JCL提供的接口,对其它一些日志工具,包
2017-09-23 19:05:14 1293 1
原创 Spring Junit4 Test中JDBC事务回滚抛异常Connection is null
Spring Junit 对 JDBC Test的支持, 如下设置可以方便的对数据库操作进行回滚,以免扰乱数据库数据。@RunWith(SpringJUnit4ClassRunner.class)@ContextConfiguration("classpath:application-context.xml")@Transactional(value = "txManager", rollbac
2017-08-07 00:18:56 1869
原创 JdbcDaoSupport配合@Repository无法注入DataSource
JdbcDaoSupport配合@Repository无法注入DataSourceJdbcDaoSupport和@Repository配合使用的时候,会出现DataSource无法注入的问题,Google+查看源码,发现JdbcDaoSupport的设计可能有点问题,或者说不适合配合注解使用。 通常来说,我们首先会有配置DataSource的xml,这是必不可少的。<context:propert
2017-08-02 16:18:30 1450 1
转载 refusing to merge unrelated histories
refusing to merge unrelated histories新建本地项目,推到github。由于github和本地是两个不同的项目,要把两个不同的项目合并,git pull需要添加一句代码,–allow-unrelated-histories。 git pull origin master --allow-unrelated-histories
2017-07-13 15:56:29 866
原创 Java 线程阻塞、中断及优雅退出
线程阻塞一个线程进入阻塞状态的原因可能如下(已排除Deprecated方法):sleep()sleep()使当前线程进入停滞状态(阻塞当前线程),让出CUP的使用、目的是不让当前线程独自霸占该进程所获的CPU资源,以留一定时间给其他线程执行的机会;当在一个Synchronized块中调用Sleep()方法是,线程虽然休眠了,但是对象锁并没有被释放,其他线程无法访问这个对象(即使睡着也持有对象锁)。w
2017-06-12 19:54:17 14898 5
原创 线程间协作——wait & notify & notifyAll
线程间协作——wait & notify在 Java 中可以用 wait、notify 和 notifyAll 来实现线程间的通信。尽管关于wait和notify的概念很基础,它们也都是Object类的函数,但用它们来写代码却并不简单。wait, notify, notifyAll 都是基类Object的方法,而不属于Thread,这让习惯了调用Thread.sleep()使线程阻塞的同学感到奇怪。
2017-06-05 15:07:21 731
转载 mysql pattern matching
SQL pattern matching enables you to use “_” to match any single character and “%” to match an arbitrary number of characters (including zero characters).In MySQL, SQL patterns are case-insensitive by
2015-08-21 15:13:49 978
转载 MySQL修改密码
A root account password can be set several ways. The following discussion demonstrates three methods:Use the SET PASSWORD statementUse the UPDATE statementUse the mysqladmin
2015-08-19 15:07:36 401
转载 Cannot change version of project facet Dynamic Web Module to 2.5.
有时候eclipse web applicat莫名其妙会报这个error。找到一个解决方法:http://stackoverflow.com/questions/23183931/maven-java-ee-configurationup vote14down voteacceptedGo to project Build Path an
2015-07-18 22:02:30 482
原创 RMI in Spring
spring对远程过程调用(RPC)提供了强大的支持,包括远程方法调用(RMI),Hessian和Burlap和Spring自带的Http invoker。在以上所有模型中,服务都作为spring所管理的bean配置到我们的应用中。设计的思想都是代理的方式,客户端实现一个服务代理,向代理发起请求,代理会处理连接细节及向远程服务发起远程调用。下面描述spring是如何支持rmi的。第一步
2015-07-12 23:30:30 714
转载 ECLIPSE “CANNOT BE RESOLVED TO A TYPE” ERROR
可能还有其他方法、可能这个方法对你不管用,但是确实解决了我现在的问题~Clean, refresh, build, restartAlso, remember any external build/clean scripts you might be using. For instance, Grails has a command line “clean” you may hav
2015-05-12 10:57:34 690
原创 消息摘要算法及md5
消息摘要算法介绍:消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。(摘要可以比方为指纹,消息摘要算法就是要得到文件的唯一职位)特点:无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同
2015-03-28 23:18:37 5144
原创 base64编码
base64准确的说是一种编码方式,而不是加密方式。那为什么要用base64编码或者说其应用场景?某些系统中只能使用ASCII字符。Base64就是用来将非ASCII字符的数据转换成ASCII字符的一种方法。比如中文邮件等,比如可以用文本编辑器编辑二进制文件。采用base64编码可以达到隐藏明文的效果,微微起到了加密的作用。base64的原理base64是一种比较低级的对照
2015-03-28 18:33:53 615
原创 java类初始化顺序
具体参见《java编程思想,4th edition》p189.当用到类的静态方法或静态域时,会加载类的.class文件:首先静态初始化;如,static User = new User();其次,自动初始化默认值;如,private int a;再次,执行定义处的初始化;如,private int a = 4;最后,构造函数初始化。如,public User(){
2015-03-05 00:05:48 363
转载 S-Parameters
http://www.antenna-theory.com/definitions/sparameters.phpS-parameters describe the input-output relationship between ports (or terminals) in an electricalsystem. For instance, if we have 2 ports (
2013-12-31 20:06:29 2427
原创 希尔Shell排序
package com.chengmaoning.shellsort;public class ShellSort { public static int[] a = { 10, 32, 1, 9, 5, 7, 12, 0, 4, 3 }; /** * @param args */ public static void main(String[] args) { // T
2013-09-23 13:24:44 540
原创 大数相乘
对于大数(超过long型所能表达的范围)的四则运算,java提供了BigInteger、BigDecimal等支持,但是有时候考官就会难为你,让你自己实现一个运算,这时候可以用下面的思路:大数相乘:首先我们得重新审视一下小学做过无数遍的乘法运算,可以得出如下结论:假设有A和B两个大数,位数分别是a和b,则最终结果C的位数c小于等于(a+b)。然后我们得梳理一下乘法运算时怎么进行的。比如
2013-09-19 16:46:52 909
原创 树、二叉树、满二叉树、完全二叉树概念分清
自由树自由树是一个连通的,无回路的无向图。令G=(V,E)为一个无向图。下面的表述是等价的。1) G是自由树。2) G中任意两个顶点由唯一一条简单路径得到。3) G是连通的,但从E中去掉任何边后得到的图都是非连通的。4) G是无回路的,且|E|=|V|-1。5) G是连通的,且|E|=|V|-1。
2013-09-09 23:00:00 3164
原创 观察者模式Observer及Java对此模式的支持
概念观察者模式又叫发布-订阅模式(publish-subscribe)。观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个 主题对象在状态发生改变时,会通知所有观察者对象,使它们能够自动更新自己。结构分析Subject(被观察对象接口):规定ConcreteSubject的同意接口。每个Subject可以有多个Observer。
2013-09-05 21:41:05 1038
转载 命令模式CommandPattern
概念命令模式:把一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。在软件系统中,“行为请求者”与“行为实现者”通常呈现一种“紧耦合”。但在某些场合,比如要对行为进行“记录、撤销/重做、事务”等处理,这种无法抵御变化的紧耦合是不合适的。在这种情况下,如何将“行为请求者”与“行为实现者”解耦?将一组行为抽象为对象,实现二者之间的松耦
2013-09-04 21:02:56 498
原创 代理模式ProxyPattern以及java对此的支持——动态代理
代理模式,即Proxy Pattern,23种java常用设计模式之一。代理模式的定义:为其他对象提供一种代理以控制对这个对象的访问。在某些情况下,一个对象不适合或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用。通俗的说,就是客户端通过代理对象去操纵委托对象(或者说被代理对象)。举个例子,就业季到了,你需要定制一套西服,打扮一番,人模人样给面试官留个好印象。通常校
2013-09-03 17:06:03 613
原创 分清Java抽象方法、抽象类以及接口
总结了一下java中抽象方法、抽象类和接口,防止大家傻傻分不清楚~概念性的东西都有点绕,请读者一定看清每个字词,认真体会。抽象方法和抽象类抽象方法仅有声明而没有函数体,必须使用abstract关键词限定。使用abstract关键词限定的类是抽象类,抽象类不可以实例化为对象。只要包含抽象方法,那么这个类就是抽象类,抽象类使用abstract限定。抽象类可以同时包含抽象方法和普通方
2013-09-02 22:14:13 751
原创 抽象工厂模式AbstractFactoryPattern
定义:抽象工厂模式的实质是“提供接口,创建一系列相关或独立的对象,而不指定这些对象的具体类。”抽象工厂模式(英语:Abstract factory pattern)是一种软件开发设计模式。抽象工厂模式提供了一种方式,可以将一组具有同一主题的单独的工厂封装起来。在正常使用中,客户端程序需要创建抽象工厂的具体实现,然后使用抽象工厂作为接口来创建这一主题的具体对象。客户端程序不需要知道(或关心)它从
2013-09-02 19:50:17 655
原创 工厂方法Factory Method
工厂方法模式:定义 一个用于创建对象的接口,让子类决定实例化哪一个产品类。工厂方法使一个类的实例化延迟到其子类。工厂方法模式的对简单工厂模式进行了抽象。有一个抽象的Factory类(可以是抽象类和接口),这个类将不再负责具体的产品生产,而是只制定一些规范,具体的生产工作由其子类去完成。在这个模式中,工厂类和产品类往往可以依次对应。即一个抽象工厂对应一个抽象产品,一个具体工厂对应一个具体产品,这
2013-09-02 16:43:49 651
原创 简单工厂模式Static Factory Method
简单工厂模式(Simple Factory Pattern)属于类的创新型模式,又叫静态工厂方法模式(Static FactoryMethod Pattern),是通过专门定义一个类来负责创建其他类的实例,被创建的实例通常都具有共同的父类或继承自同一接口。下面的例子介绍,如何使用静态工厂方法模式生成包含不同打印机对象的计算机对象。首先是被创建的实例具有相同的接口:package des
2013-08-31 22:54:33 759
原创 单例模式Singleton
单例模式是一种常用的软件设计模式。通过单例模式可以保证系统中一个类只有一个实例而且该实例易于外界访问,从而方便对实例个数的控制并节约系统资源。如果希望在系统中某个类的对象只能存在一个,单例模式是最好的解决方案。public class Singleton { public static void main(String[] args) { //创建Singleton对象不能通过构造
2013-08-31 21:48:50 525
转载 java反射机制
Using Java ReflectionBy Glen McCluskeyJanuary 1998 Reflection is a feature in the Java programming language. It allows an executing Java program to examine or "introspect" upon itself, and man
2013-08-30 19:13:15 513
转载 已知二叉树的前序、中序遍历求后序遍历
转载至:点击打开链接首先,我们看看前序、中序、后序遍历的特性:前序遍历: 1.访问根节点 2.前序遍历左子树 3.前序遍历右子树中序遍历: 1.中序遍历左子树 2.访问根节点 3.中序遍历右子树后序遍历: 1.后序遍历左子树 2.后序遍历右子树 3.访问根节点好了,先说说用前序遍历
2013-08-29 16:42:10 1168
转载 判断整数序列是不是二叉查找树(BST)的后序遍历结果
这里沿用传统二叉查找树(BST)的概念:所有左子树都小于根,右子树都大于根。(不止是直接孩子,还有间接孩子!)现在给出一个整数序列,要求判断它是否是一棵二叉查找树BST的后序遍历结果。如果去掉BST这个条件,我们一般是不能只根据后序遍历结果来确定某一棵树的。有了BST这个条件后,我们可以这么做:定义如下递归函数头:1int judge(int* ar
2013-08-29 14:42:27 827
转载 C实现bitmap位图
转载:点击打开链接所谓的Bit-map就是用一个bit位来标记某个元素对应的Value, 而Key即是该元素。由于采用了Bit为单位来存储数据,因此在存储空间方面,可以大大节省。例如对于号码89256,由于89256 mod 32=2789…8,这样我们应该置a[2789]中32位字符串的第8位(从低位数起)为1.基本的操作:#define WORD 32#defin
2013-08-28 21:58:10 1650
原创 动态规划学习笔记
一、 动态规划概述动态规划(dynamicprogramming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法。动态规划是通过组合子问题的解进而解决整个问题的。动态规划适用于问题包含子问题,各子问题又包含公共的子子问题。动态规划对每个子子问题只求解一次,将其结果保存在一张表(或者说是一个二维矩阵)中,在求解子问题的过程中查表递归调用子子问题
2013-08-22 21:56:23 819
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人