- 博客(52)
- 资源 (11)
- 收藏
- 关注
原创 Mac OS 简易安装redis
1、首先使用 sudo brew install redis 命令一键安装Redis, 默认会安装在 /usr/local/bin 路径中。若提示brew 命令无效,还是先装好 brew 吧。接下来执行以下命令进行配置ln -f /usr/local/Cellar/redis/3.0.4/homebrew.mxcl.redis.plist ~/Library/LaunchAgents/lau
2016-05-30 23:04:26
18168
原创 个人对AOP概念的理解
一、什么是AOPAOP 是Aspect Oriented Programing 的简称,被译为“面向方面编程”。相信看到这个术语,刚接触的人肯定是很难理解的。下面个人就按照自己的理解将其解释下,如果有什么不妥的地方,还请指出~一般情况下,如果我们的代码出现了很多重复的,比如在 Pig、Horse、Cat 等类中,它们都拥有共同的方法 eat(),run(), 按照软件重构的思想理念
2016-05-08 15:52:13
773
原创 websocket 解决 The extension [x-webkit-deflate-frame] is not supported 问题
在利用websocket进行实时性聊天过程中,由于浏览器问题,常常会出现不支持 websocket 相关扩展的问题,报错通常如下所示:nested exception is java.lang.IllegalArgumentException: The extension [x-webkit-deflate-frame] is not supported查了下发现这是浏览器版本
2015-12-20 21:22:36
6536
1
原创 解决问题 java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
SolutionReason 1)有可能在xml文件中没有添加 spring web 依赖,先将spring-web.jar 添加上Reason 2)添加了spring-web依赖后如果还是出现该问题,很可能没有将 Maven Dependencies 添加到环境中,可按照如下步骤操作解决1) Open project properties and sele
2015-12-05 22:26:58
791
原创 java 向 mysql插入中文字符乱码问题解决
1、首先保证建立数据库和数据表时,字符编码为GBK或UTF-8,这样才能支持中文2、将数据库的连接字符串改为 jdbc:mysql://xxxxx:3306/dbname?useUnicode=true&characterEncoding=utf-8如果连接串是在xml文件中,则需将&改为& 如果是将连接字符串放在 XX.properties文件中再利用xml文件去加载,则使用&即
2015-12-03 15:44:37
825
1
原创 MyBatis Insert返回主键和批量插入
一、 insert元素 属性详解 其属性如下: parameterType ,入参的全限定类名或类型别名 keyColumn ,设置数据表自动生成的主键名。对特定数据库(如PostgreSQL),若自动生成的主键不是第一个字段则必须设置 keyProperty ,默认值unset,用于设置getG
2015-11-11 20:41:06
1146
原创 MAC OS查看端口占用情况及杀死进程
终端命令sudo lsof -i :9000COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAMEjava 716 a 313u IPv6
2015-11-10 21:02:58
96868
原创 java 中访问控制 public、private 和 protected 介绍
Java的访问控制机制说明:1.任何声明为public的内容可以被从任何地方访问。2.被声明成private的成员不能被该类外看到。3.如果一个成员不含有一个明确的访问说明,则它只对同包可见, 不同包不可见。这是默认访问。4.protected是同包都可见,且子类都可见。以下例子说明:1)子类可以访问protected 2)同一包中非子类(Test)可以访问
2015-10-30 20:33:17
837
原创 Java中传值与传递引用的区分
基本类型传的是值,例如:int,float,double,char,不包括 java.lang.String对象实例,接口实例传的是引用,包括java.lang.String。但是我们在通过一个函数传递String参数时,为何出来的结果没有发生改变?如下所示:void public func(String str){ str = "ssss";}String str = "
2015-10-30 17:29:52
1587
转载 Cookie 和 Session 的区别
原作者:施杨(施杨's Think out)出处:http://shiyangxt.cnblogs.com本文版权归原作者和博客园共有,欢迎转载,但未经原作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则原作者会保留追究法律责任的权利。cookie机制采用的是在客户端保持状态的方案,而session机制采用的是在服务器端保持状态的方案。同时我们也看到,由于采用
2015-10-13 01:05:21
395
原创 计算机网络部分协议
不同的协议对应不同的设备,协议间相互透明,每个协议只专注于自己的功能。协议层传输单位特点地址网络设备常见协议应用层 telnet,ftp,DNS传输层段(Segment)TCP:面向连接,可靠传输UDP:无连接,不可靠端口
2015-10-04 15:00:26
458
原创 剑指offer - 二叉搜索树转双向链表
题目:输入一棵二叉搜索树,将其转为排序的双向链表,且要求不能创建任何新的结点,只能调整树中结点指针的指向。二叉树结点定义如下:struct BinaryTreeNode{ int value; BinaryTreeNode *pLeft; BinaryTreeNode *pRight;};思路:由于是二叉搜索树,因此其中序遍历算法可以按照从小到大的顺序遍
2015-10-02 23:58:40
440
原创 剑指offer - 复杂链表的复制
题目:实现函数 ComplexListNode* Clone( ComplexListNode* pHead ), 复制一个复杂链表,在复杂链表中除了有一个 pNext 指针指向下一个结点外,还有一个 pSibling 指向链表中的任意结点或者NULL, 结点定义如下:struct ComplexListNode{ int value; ComplexListNode* pNe
2015-10-02 18:07:34
445
原创 剑指offer - 从上往下遍历二叉树
二叉树结点定义如下:struct BinaryTreeNode{ int value; BinaryTreeNode *pLeft; BinaryTreeNode *pRight;};分析:按层打印的顺序决定了我们应该先打印根节点,之后为了打印根节点的左右结点,我们需要把这两个子结点保存到一个queue的容器中。之后读取左结点,把它打印出来后,若它包含孩子结点,则还是按照顺
2015-10-01 21:05:06
706
原创 剑指offer - 包含min函数的栈
定义栈的数据结构,并在该类型中实现一个能够得到栈最小值的 min 函数,使得调用 min, pop, push 的时间复杂度均为1。思路:在入栈和出栈的过程中,借助一个辅助栈来记录每次操作后的当前栈的最小值。比如当前栈压入了一个更小的值,可以将该最小值压入辅助栈中,这样辅助栈的栈顶就是当前栈的最小值了。而如果当前栈弹出一个元素,那么可以将辅助栈的栈顶弹出。注意到通过这种方式,辅助栈跟当
2015-10-01 20:23:20
420
原创 剑指offer - 二叉树的镜像问题
输入一棵二叉树,输出它的镜像。二叉树定义如下所示:struct BinaryTreeNode { int value; BinaryTreeNode *pLeft; BinaryTreeNode *pRight;};求一棵二叉树的镜像时,注意到根节点是相同的,然后它们的左右结点交换了位置,所以可以采用前序遍历的方法遍历这棵树的每个结点。如果遍历到的结点有左右结点,则
2015-10-01 16:42:19
395
原创 剑指offer - 将字符串中空格替换为20%
将一个字符串中的所有空格替换成 20%,最直观的做法是从头到尾扫描字符串,然后每次碰到字符串时便替换,并将空格后面所有的字符向后移两个字节。假设字符串长度为n,对每个空格字符,需要移动后面O(n)个字符,因此对含有n个空格的字符串而言总的时间效率是O(n^2) 。时间复杂度达到n平方,说明程序效率并不高,因此可以采用另一种做法,就是先遍历一边字符串,计算出空格的数目,然后从字符串的后面开始
2015-09-20 01:12:18
585
原创 剑指offer - 二维数组的查找
题目:在一个二维数组中,每一行都按照从左到右递增的顺序排列,每一列都按照从上到下递增的顺序排列。如何在该数组中查找是否含有该整数由于该数组的特殊性,我们可以采用如下算法进行查找:首先选取数组中右上角的数字,如果该数字等于要查找的数字,则结束查找过程;如果该数字大于要查找的数字,剔除这个数字所在的列;如果该数字小于要查找的数字,则剔除该数字所在的行。代码实现:bool fin
2015-09-19 21:27:41
374
原创 易忘知识整理
1、C++中的 vector 是一种动态数组,为了避免浪费,一般我们先为数组开辟较小的空间,然后往数组中添加数据。每次插入数据需要对vector扩容时,新的容量都扩展成原来的两倍,然后再把之前的数据复制到新的数组中;2、假设有 int array[ ] = {1, 2, 3, 4, 5}, 则求得 sizeof( array ) 值为 20。若是定义一个指针指向该数组或者是将该数组作为
2015-09-19 21:05:43
403
原创 剑指offer - 实现Singleton模式
由于只生成一个实例,因此需要将类的构造函数设为私有,然后生成实例的功能由它内部的函数去实现:解法一:(只适用于单线程模式)在多线程情况下,下面的代码可能会因为有多个线程同时执行到 if 判断语句,然后同时创建了Singleton的多个实例,从而破坏了单例模式。class Singleton{ private static Singleton single = null; priva
2015-09-19 18:25:02
524
原创 剑指offer - 赋值运算符函数
如下为类型CMyString的声明,为该类型添加赋值运算符函数:class CMyString{ public : CMyString(char* pData = NULL); CMyString(const CMyString& str); ~CMyString(void); private : ch
2015-09-19 12:16:13
688
原创 剑指offer - sizeof问题
1、定义一个空的类型,里面没有任何成员变量与成员函数,对该类型求 sizeof, 得到的结果为 1。解析:空类型的实例中不包含任何信息,本来求sizeof应该是0,但是由于我们声明该类型时,它必须在内存中占据一定的空间,否则无法使用这些实例。而占用多少内存,这是由编译器决定的。在Visual Studio中每个空类型的实例占用1字节的空间2、如果在该空类型中添加一个构造函数和析构函
2015-09-19 11:23:25
494
原创 const 使用过程中的难点和区别
如果函数需要传入一个指针,面试官可能会问是否需要为该指针加上const,把const加在指针不同的位置有什么区别;如果写的函数需要传入的参数是一个复杂类型的实例,面试官可能会问传入值参数或者引用参数有什么区别,什么时候需要为传入的引用参数加上const。 const是用来声明一个常量的,当你不想让一个值被改变时就用const,const int max和int const max 是没有区别的
2015-09-18 12:10:35
997
转载 Jquery 使用介绍
转自 (http://www.cnblogs.com/yeer/archive/2009/07/23/1529460.html)jQuery确实是一个挺好的轻量级的JS框架,能帮助我们快速的开发JS应用,并在一定程度上改变了我们写JavaScript代码的习惯。废话少说,直接进入正题,我们先来看一些简单的方法,这些方法都是对jQuery.ajax()进行封装以方便我们使用的方法,当然,如果
2015-08-31 00:52:42
390
原创 PHP 扩展开发[从零开始编写第一个PHP扩展]
操作系统:Mac OS / Linux在开始之前,应该先下载 PHP 源码,可到 http://php.net/get/php-5.6.12.tar.bz2/from/a/mirror 下载,这里选择的是中国的。下载之后解压,存放到自己喜欢的任何一个工作目录中,比如我这里是放在 Mac 桌面。另外,系统中需要安装有 C 的编译环境,另外还有 make 和 autoconf。因此,在 linux
2015-08-17 00:24:09
2638
原创 PHP 命名空间
命名空间对于PHP来说就像是文件和目录的关系,它允许我们为两个不同的类使用相同的类名称。比如我们希望有个名为Line的类,这个类可以在图像上画一条直线。然而,Line类的画线功能在处理像素格式图像和矢量格式图像时是不大一样的,因此理想的解决方案便是实用两个带有命名空间的类。命名空间使用两个关键的语言结构:namespace 和 use。要声明一个命名空间,需要在文件的顶部指定命名空间的名称
2015-08-08 20:16:51
366
转载 白盒测试 语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖
白盒测试作为测试人员常用的一种测试方法,越来越受到测试工程师的重视。白盒测试并不是简单的按照代码设计用例,而是需要根据不同的测试需求,结合不同的测试对象,使用适合的方法进行测试。因为对于不同复杂度的代码逻辑,可以衍生出许多种执行路径,只有适当的测试方法,才能帮助我们从代码的迷雾森林中找到正确的方向。本文介绍六种白盒子测试方法:语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖、路径覆盖。
2015-07-04 15:11:58
3118
2
原创 VS2013 OpenGL MFC 编程问题
1、编译时出现 warning C4996: 'fopen': This function or variable may be unsafe. Consider using fopen_s instead:右键project ->properties -> Configuration Properties -> C/C++ -> Preprocessor -> Preprocessor De
2015-06-27 12:31:44
1228
原创 HttpClient.execute() 阻塞问题
在实现安卓与PHP后台交互过程中,当安卓利用HttpPost去后台获取数据时,代码执行到下面这句就阻塞了:httpClient.execute(httpPost);一开始找到资料说是新开一个线程执行上述语句,于是我便利用如下方式尝试了:new Thread() { public void run(){ try { HttpResponse response = httpCl
2015-05-24 15:10:02
6526
转载 严苛模式(StrictMode)
Android 2.3提供一个称为严苛模式(StrictMode)的调试特性,Google称该特性已经使数百个Android上的Google应用程序受益。那它都做什么呢?它将报告与线程及虚拟机相关的策略违例。一旦检测到策略违例(policy violation),你将获得警告,其包含了一个栈trace显示你的应用在何处发生违例。你可以强制用警告代替崩溃(crash),也可以仅将警告计入日志,让你的
2015-05-24 15:07:40
353
转载 Nginx与Apache各自优缺点
1、nginx相对于apache的优点: 轻量级,同样起web 服务,比apache占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则是阻塞型的,在高并发下nginx 能保持低资源低消耗高性能 高度模块化的设计,编写模块相对简单 社区活跃,各种高性能模块出品迅速啊 apache 相对于nginx 的优点: rewrite ,比nginx 的rewri
2015-05-07 00:58:44
898
原创 PHP 符号说明
$a == $b等于TRUE ,如果 $a 等于 $b。$a === $b全等TRUE ,如果 $a 等于 $b,并且它们的类型也相同。$a != $b不等TRUE ,如果 $a 不等于 $b。$a 不等TRUE ,如果 $a 不等于 $b。$a !== $b非全等TRUE ,如果 $a 不等于 $b,或者它们
2015-05-04 21:46:07
347
原创 ubuntu14.04 安装Apache+Mysql+PHP
1、安装Apache Web服务器: sudo apt-get install apache2 apache2-doc, 安装后可通过地址栏输入 http://localhost 判断是否输入成功;2、安装PHP5和Apache的php模块,终端:sudo apt-get install php5 libapache2-mod-php5 。重启Apache服务使php模块生效,终端
2015-05-02 21:27:02
637
原创 消息中间件
1、什么是消息中间件 消息中间件是指利用高效可靠的消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集成。通过提供消息传递和消息排队模型,它可以在分布式环境下扩展进程间的通信。 消息中间件可以即支持同步方式,又支持异步方式。异步中间件比同步中间件具有更强的容错性,在系 统故障时可以保证消息的正常传输。异步中间件技术又分为两类:广播方式和发布/订阅方式。由于发布/订
2015-05-02 19:16:17
2158
原创 JAVA 中 ArrayList、Vector、LinkedList 和 HashMap介绍
ArrayList是一种可动态调整大小的数组,随着元素的插入,数组会适时扩容,使用方法如下:ArrayList arrayList = new ArrayList();arrayList.add("a");System.out.println(arrayList.get(0));Vector与ArrayList类似,只不过ArrayList是同步的而Vector不是同步的,
2015-04-03 20:20:54
783
原创 OpenGL画点、直线、虚线和多边形
// 从这里开始进行所有的绘制int DrawGLScene(GLvoid) {glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 清除屏幕和深度缓存glLoadIdentity();// 重置当前的模型观察矩阵glColor3f(1.0, 0.0,0.0); //设置接下来所要画的东西的颜色//绘制
2015-03-30 12:12:53
4651
2
原创 OpenGL -- GL_PROJECTION跟GL_MODELVIEW区别
GL_PROJECTION 跟 GL_MODELVIEW 均是 glMatrixMode() 函数的参数,该函数的作用便是对接下来所要做什么进行声明,比如在进行下一步之前告诉计算机我要对什么东西进行操作。参数GL_PROJECTION 是投影的意思,即要对投影相关进行操作,将一个物体映射到一个平面上,就好像平时照相将三维的物体映射成二维。而如果参数是GL_MODELVIEW,它是对模型视景
2015-03-29 14:32:08
5393
转载 PHP 模版引擎Smarty介绍
模板引擎SMARTY 用PHP实现MVC开发模式的逻辑层和表示层有多种模板引擎可供选择,但是官方引擎SMARTY诞生后,选择就有了变化。它的理念和实现都是相当"前卫"的。本文主要讨论SMARTY之于其他模板引擎的不同特点,简要介绍了该引擎的安装及使用,并用一个小的测试案例对比了SMARTY和PHPLIB template的速度和易用性。一、MV
2015-03-24 10:50:30
4759
转载 HashMap,LinkedHashMap,TreeMap的区别
Map主要用于存储健值对,根据键得到值,因此不允许键重复(重复了覆盖了),但允许值重复。Hashmap 是一个最常用的Map,它根据键的HashCode 值存储数据,根据键可以直接获取它的值,具有很快的访问速度,遍历时,取得数据的顺序是完全随机的。HashMap最多只允许一条记录的键为Null;允许多条记录的值为 Null;HashMap不支持线程的同步,即任一时刻可以有多个线程同时写Hash
2015-03-19 18:39:18
4581
转载 Sobel算子 原理
首先,我们来开一下计算机是如何检测边缘的。以灰度图像为例,它的理论基础是这样的,如果出现一个边缘,那么图像的灰度就会有一定的变化,为了方便假设由黑渐变为白代表一个边界,那么对其灰度分析,在边缘的灰度函数就是一个一次函数y=kx,对其求一阶导数就是其斜率k,就是说边缘的一阶导数是一个常数,而由于非边缘的一阶导数为零,这样通过求一阶导数就能初步判断图像的边缘了。通常是X方向和Y方向的导数,也就是梯度。
2015-01-14 14:39:30
7374
2
sublime text vue文件高亮插件vue-syntax-highlight
2017-11-03
powerdesign12破解pdflm12.dll和license.lic文件
2016-05-31
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人