自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

奇点临近

非淡泊无以明志, 非宁静无以致远

  • 博客(37)
  • 资源 (5)
  • 收藏
  • 关注

原创 使用nexus搭建maven私服、手动更新索引

网络上关于搭建maven私服的文章很多,但对于maven仓库索引的配置这方面还是较少,本文主要讲述如果快速搭建一个nexus私服,以及如何手动更新索引文件。

2014-04-12 23:43:35 81869 11

原创 解决unzip不能解压windows创建的zip文件问题

Mac OS X下默认带有unzip命令行工具,但在解压windows下创建的一些zip文件时有可能会出现如下问题:$ unzip 19.zipArchive: 19.zip skipping: QuestionImages\content\images\shuxueyunyong\MC_40183_stem.png need PK compat. v4.5 (can do v2.1)

2016-07-29 18:46:36 9206

原创 多种方式(含docker容器)实现零停机时间(Zero-Downtime)部署

零停机时间 (Zero-Downtime)对于互联网上需要直接面向用户的应用在更新时一般要求尽可能地减少停机时间,所谓零停机时间意思就是应用更新或回滚时不会导致服务不可用,一般实现有如下几种结合软负载均衡器该方案架构上要求由web server对外提供服务,接收到请求后均衡转发给多个app server,部署时利用reload特性每次更新一部分机器,可以实现零停机时间,缺点是整个部

2016-07-21 11:56:31 7865 1

原创 在CentOS下编译OpenJDK6过程

由于初次手动编译OpenJDK6, 踩的坑还不少, 各种依赖不足以及奇葩的事情, 特此整理记录, 给后人防坑. 编译环境信息:[root@dev-52 ~]# uname -aLinux dev-52 2.6.32-220.el6.x86_64 #1 SMP Tue Dec 6 19:48:22 GMT 2011 x86_64 x86_64 x86_64 GNU/Linux[root@dev-

2015-09-07 16:15:33 22773

原创 使用MinGW搭建windows下C/C++开发环境

一般在windows下搭建C/C++的开发环境, 作为Java出身的我首先肯定想到的是eclipse、VC++等等.但本人也是刚刚接触到C++, 所以上来直接使用IDE(集成开发环境)的话, 我反而觉得不好, 因为个人不建议上来就使用IDE, 因为它为我们提供了太多强大的功能, 比如实时校验代码语法, 提供联想功能等, 就是因为这些功能太强大, 对于初学者来说反而有些不太合适, 因为直接让我们避免了

2015-07-23 18:07:12 17934 2

原创 记一次"诡异"的mongodb进程退出事件

shell中通过mongo args &的方式启动mongo进程,退出shell重新登进之后发现mongo进程没了,查看日志发现有如下输出:2015-06-18T18:39:58.593+0800 [signalProcessingThread] got signal 1 (Hangup), will terminate after current cmd ends 2015-06-18T18:

2015-06-21 11:31:30 10865 1

原创 Java应用程序高CPU故障诊断(troubleshooting)思路

系统运行出现高CPU报警,一般可以通过top或者任务管理器找到哪些进程在使用CPU,但这个粒度不能让我们知道得更多,我们需要找到程序的哪部分在占用CPU并且在占用CPU做什么,这样才有利于我们以后调优,下面介绍一种可行的思路:找到占用CPU高的进程p找到进程p中占用CPU高的线程t找到线程t在做什么本文以Linux下Java应用程序为例,其他环境或程序可参照该思路,只要思路清晰就好办了打开

2015-05-24 19:44:11 10630

原创 在VIM中使用宏macro

宏是一组命令的集合,应用及其广泛,包括MS Office中的word编辑器,excel编辑器和各种文本编辑器,Linux系统中最强大的文本编辑器之一的VIM同样支持宏操作,本节内容简要说明一下宏在VIM中使用,首先看下面几个宏的命令q* 开始录制宏q 停止录制宏@* 执行宏@@ 重复执行上次的@*命令一次以上命令均是在VIM的一般模式(Normal)下使用的,其中*代表一

2015-05-24 17:22:36 14274

原创 我对“开源博客”的设想

最近一直在思考这样的一个问题,写了这样一些技术博客,我写的那些东西其实就是对其他网友写的博客的一个优化,在排版和内容以及其他小细节上面做了一些迭代优化。或许各位自己在写博客的时候也常常发现,关于自己这篇博客所要阐述的内容和技术,其实在网上也有相似的文章,只是自己将要写的是内容要比网上现有的更加清晰,阅读起来的体验也更好一些(这里存在一种例外, 一是将要写的内容在网上根本不存在,比如ScalingM

2014-12-07 16:26:27 9785 2

原创 JS对象转URL参数(原生JS和jQuery两种方式)

现在的JS框架将ajax请求封装得非常简单,例如下面:$.ajax({ type: "POST", url: "some.php", data: { name: "John", location: "Boston" } }).done(function( msg ) { alert( "Data Saved: " + msg ); });上面是基于jQuer

2014-12-05 16:21:41 36238 4

原创 MySQL root用户忘记密码解决方案(安全模式,修改密码的三种方式)

1.关闭正在运行的MySQL2.启动MySQL的安全模式,命令如下:mysqld --skip-grant-tablesormysqld-nd --skip-grant-tables3.使用root用户[免密码]登陆MySQLmysql -u root -p输入密码时,直接回车4.选择MySQL系统库use mysql5.查看当前系统用户

2014-12-04 16:00:30 12436

原创 sendmail-命令行发邮件利器

前段时间公司的一个项目刚刚上线,为了每天都能够查看系统中昨天出现的问题等各种关键信息,开发人员每天都远程登陆系统拿到产生的系统日志等其他文件,由于远程登陆还需要VPN,使用起来相当繁琐,并且效率不高,为此花掉的时间也挺多的.想了一想如何解决这个问题,得出的结论这种重复无意义的事情还是交给计算机做比较合适,于是花了周末的一个下午的时间使用Java编写了支持在命令行发送邮件的jar包,然后通过bat脚

2014-11-22 23:14:40 22194

原创 使用windows服务管理对WAS进行停止和重启操作时后台出现凭证失败的错误解决办法

最近公司测试服务器上的WAS通过windows服务管理器进行重启和停止时发现没有作用,虽然看起来像是完成了整个操作,但Java进程不变任然存在,后台stopServer.log报出了错误,如下: ************ Start Display Current Environment ************ Host Operating System is Windows Serv

2014-10-20 11:15:44 16904

转载 10个实用Eclipse调试技巧

Eclipse是众多Java程序员实用的开发工具,其中开发技巧也是繁多,但作为优秀的Java程序员,需要掌握最起码的调试技巧。 小编从前辈程序员和网络中,整理了10个Eclipse调试技巧,希望对Java程序员有用。 1 条件断点 如果你不知道如何添加断点,只需点击左边面板(行号前面)断点即被创建。在调试界面中,“断点”视图会把所有被创建的断点列出来。我们可以给它加一个布尔条件,也就是说

2014-07-07 08:51:43 9576 1

原创 Eclipse工程标准目录层次结构

首先说一下为什么要特别写一个文档来说明这个层次结构的事情,各位都在eclipse中使用java.io.File类读取过workspace中的文件,我相信在不了解eclipse目录层次结构的情况很少有人可以一次性把路径给写对了,为了避免以后再出现这种令人难堪的情况,还是编写这样一篇扫盲性的说明文档比较合适。当然重点绝不是上面的资源路径怎么编写,而是影响围绕整个工程的生命周期的构建活动。

2014-06-04 10:09:04 23692 2

原创 Eclipse多工程协同管理实践

每一个项目从开始编码到交付都会产生一些通用的类、包以及配置文件等,加强对这些通用文件的管理可以使团队在以后的工作中效率得以提高。比如JSON格式转换的工具类,WebService的项目可能还会用到共同的实体类。一般情况下,我们是将这些类在各个工程中都持有一份,但在某些情况下,这些东西并不是稳定不变的,频繁变更可能会造成多个功能之间持有的类不统一,改善不能得以快速传播等弊端。良好的开发习惯自然是

2014-05-15 18:35:35 10465

原创 构建通用的操作日志框架实践过程

前段时间公司的项目有这样的一个需求,需要将现有的项目中构建一个日志模块,可以记录用户操作到数据库中,这样一来就可以实现对用户操作的记录,有助于还原和追踪。项目本身的日志使用的是log4j,但仅仅只是代码层面上的日志信息,只能面向程序开发人员。项目中用到了spring的IoC和DI,web框架用的是struts,我决定使用spring的aop特性,编写一个aspect,切入点为service层的

2014-04-13 23:47:43 11915 6

原创 使用exe4j将jar文件加壳包装为exe文件(自带jre)

我们通过Java编写好程序之后打包为jar包运行,通过下面的命令java–jar example.jar这里是运行在我们自己的机器上面。但是要想将程序运行在其他机器上的话,就需要麻烦一些了,本文就来介绍一下这种方法,使用的工具为exe4j,通过文章末尾的附加信息可以找到exe4j的下载地址exe4j介绍exe4j专门用作将java程序发布到windows操作系统环境中,无论是作为s

2014-03-28 15:52:47 22937 1

原创 使用PuTTY或PieTTY远程免密码登陆Linux

最近在学习Hadoop的时候,搭建了2个子节点的集群,当然学习期间都是在虚拟机上面运行的,从虚拟机之间切换来切换也效率也忒低了,当然是用远程登陆的工具啦,我用的PieTTY,它是在PUTTY的基础上面进行二次开发而来的,功能方面与PUTTY大同小异,使用起来非常方便,但是每次登陆都要输入长长的密码又太麻烦啦,于是想到能否可以指定虚拟机的IP自动登陆呢?答案当然有啦,查看PieTTY的设置就可以发现

2014-03-03 19:42:59 11061

原创 新的融资方式构想

什么?你竟然把一百元放在钱夹里面一整天?太浪费了!为什么不能把它借出去由其它人实现价值呢?这个想法是根据我目前的情况设想出来的,这里提出这样一个设想,不为其他,这个世界有很多不公,然而消除不公平几乎是不可能做到的,并且我觉得也没有这样的必要,我们怎样去鼓励怀有改善社会现状想法的年轻人,鼓励这些人去做这样一些对社会有益的事情。社会资源分配不公导致了有些非常有才华的人不能全身心的去做有价值的事。

2013-10-24 00:46:00 1826

原创 Java正则表达式,详解反斜线在Java中的作用

在程序设计过程中,经常需要对获取的数据进行检查是否符合特定的格式,如此频繁地对数据进行检查使用人工检查简直就是灾难,而自己编写程序检查又显得非常麻烦。比如检查一个输入的电子邮件地址是否正确,自己编程实现检查操作至少需要10行代码并且效率也不一定很好,这时候咋办?正则表达式!!

2013-09-24 21:07:32 2664

原创 经典面试项目—银行业务调度系统

上一篇文章中介绍了交通灯管理系统,对我们学习面向对象编程的理解意义非凡,继这个面试者完成这个项目被软通动力聘用之后,又有一位面试者应聘软通动力,同样的还是交给这位面试者一个项目拿回家去做,提交审核通过之后即可完成面试。这个项目是模拟银行叫号业务的系统,我们平时去银行的时候可以发现,不管办理什么样的柜台业务,大厅经理都会从取票机上面取出一张号码票给我们,然后只要等待广播叫道各自拿到的号码到相应的柜台上办理业务即可,这个程序就是模拟这样一个过程,当我们使用面向对象编程时仔细分析潜在的对象,这种思考方式符合人类的

2013-09-24 12:40:18 1728

原创 经典面试项目--交通灯管理系统

项目由来:该项目原本是软通动力的一道面试题,交由面试者带回去自行完成,审核通过后即通过面试,当然现在不可能再作为面试题了。不过这个项目还是非常有实践意义的,在网络上传播广泛,从中我们可以学习面向对象的程序设计精髓,对于掌握Java SE基础的初学者而言意义更甚。好了,下面就具体看一看这个项目。

2013-09-23 04:10:16 13447 1

原创 Java反射机制--基本使用方法简介

Reflection(反射)是Java程序开发语言的特征之一,它允许运行中的 Java程序对自身进行检查,或者说"自审",并能直接操作程序的内部属性。例如,使用它能获得 Java类中各成员的名称并显示出来。 Java的这一能力在实际应用中也许用得不是很多,但是在其它的程序设计语言中根本就不存在这一特性。例如,Pascal、C或者 C++ 中就没有办法在程序中获得函数定义相关的信息。反射机制是构建框架技术的基础所在,灵活掌握Java反射机制,对大家以后学习框架技术有很大的帮助。

2013-09-22 20:17:04 9354 2

原创 Java学习疑惑(9)--详述枚举,枚举为我们带来了哪些便利?

枚举是JDK1.5的新加入的特性,Enum一般用来表示一组相同类型的常量,比如性别、日期、月份、颜色等。对这些属性用常量的好处是显而易见的,不仅可以保证单例,且做比较运算的时候可以用==来替换equals。当我们在编写源代码的时候需要让某个类型的变量的取值缩小在一个人为控制的范围内时,枚举就可以在这个时候大显身手了,否则编译器就会报错。枚举可以让编译器在编译就可以控制程序中编写的非法值,普通变量的方式在开发阶段无法实现这一目标。这里我们使用定义星期的枚举来演示一下,感受一下使用枚举给我们编程带来的方便之

2013-09-21 19:30:21 1539

原创 Java核心技术,让计算机"一芯多用"的多线程技术

我们在使用计算的时候会感受到计算机好像在同时执行很多任务,这也是我最初接触计算机给我留下的印象,而我们普通人在同一时刻大脑只能思考一件事情(当然不排除一些异能者能够做到一心二用),而且我们在思考完一件事情之后进入另一件事情的思考需要花费一段时间适应。而对于计算机来说,其执行任务间的切换是相当快的,以前计算机还是单CPU的时候就是通过这种在各种任务之间的快速切换而“伪实现”了同时执行任务。随着硬件飞速发展,计算机配备了多CPU芯片,就在真正意义上实现了多线程,实现了同时执行多种任务。

2013-09-19 21:38:38 12590 1

原创 Java核心技术,支撑Java程序对外接口的I/O

IO(Input/Output)作为Java编程语言的核心之一其重要性不言而喻,其实现了Java程序对外界的访问和输出,学好Java也是建立在熟练掌握IO的基础之上。流(Stream)的概念很形象,其为一组有序的数据序列。按照数据类型可以分类为字符流和字节流,字符流是对输入字符进行字符编码得到的流,字节流是指可以用计算机处理的二进制数据或者指令所组成的流。两者根据操作类型,可以大致划分为四大类,其中输入流为OutputStream(字节输出流)和Writer(字符输出流),输入流为InputStream(字

2013-09-18 20:03:15 1779

原创 Java可视化编程,基于布局管理器的UI设计

在《事件驱动模型》我们讲述了如何将用户与功能实现代码联系到一起, 怎么样便于用户理解和符合用户的使用习惯? 本篇还是就此问题作分析, 站用户角度上分析UI各组件倒底该如何设计. 优秀的UI会给用户带来更加便捷高效的感受,对用户体验的提升是勿容置疑的。在学习网页基础知识的时候css作为样式表为网页设计提供了相当大的便利,Java中Layout布局管理器功能上虽然没有css那么全面,但也提供了类似的功能,为UI各种组件的排布提供了相当大的便捷。通过调用setLayout方法为其指定布局管理器。

2013-09-17 21:15:29 12569 1

原创 Java学习疑惑(8)----可视化编程, 对Java中事件驱动模型的理解

我们编写程序就是为了方便用户使用, 我觉得UI设计的核心就是简洁, 操作过于繁琐的程序让很大一部分用户敬而远之. 即使功能强大, 但是人们更愿意使用易于操作的软件. 近年流行起来的操作手势和逐渐趋于成熟的语言控制以及其他更加易于操作的方式很可能会颠覆鼠标键盘的操作方式, 我相信这一天必将到来.电影>中画面我记得我去年编写了我的第一个用户界面, 现在想起来当时非常令我困惑的有两项:

2013-09-16 16:38:28 10783

原创 Java学习疑惑(7)----网络编程, 详解TCP与UDP两者之间的共同点和差异

设立网络编程最根本性的原因是实现计算机之间的通信. 一台计算机想要与另一台计算机进行通信首先要在网络中通过IP地址找到它. IP地址就像我们每个人的名字一样, 是一种特定的标识, IP地址是计算机的标识, 由于其具有唯一性(在同一个网络中, 一个IP地址代表着一台计算机). 应用程序通过IP地址找到这台电脑与之建立通信, 我们知道, 一台计算机中有很多应用程序, 不同的应用程序传输的数据内容以及格式都是各不相同的, 而这些程序是怎么做到区分各自的数据呢? 计算机科学家们想到了一种很好的解决方案, 在计算机中

2013-09-15 01:24:50 2067

原创 淡泊明志, 宁静致远--如何在自学之路上爬得更高更远?

细心的朋友可以看到我在标题上面特意用了"爬"而非"走", 因为自学相对于在学校系统学习要求更高地自制能力(抗拒拖延症), 以及社会对其存在诸多限制(加班, 应酬, 浮躁的社会风气). 故而, 我将其称之为"爬". 值得注意的是, 即使没有充分的资源, 没有大量空闲的时间, 而我们依然在坚持自我提高, 这种精神气儿值得我们敬畏.  "记住你即将死去"        这听起来似乎有些可怕,

2013-09-10 00:55:06 2230

原创 Java学习疑点(6)--Set集合添加元素时底层如何实现无重复元素?

最近在学习Collection时发现Set集合的一个显著特点: 不包含重复元素. 经过测试之后发现Set集合在向其添加元素时add()和addAll()方法就对元素进行了"审查", 对比查看是否为尚未存在的元素然后选择是否添加进去. 关于这两种方法底层是如何实现的, 就是我在这里想要说明的.我们知道Set集合是建立在Map的基础之上, 其绝大多数方法构造时都是直接引用了Map中的方法.

2013-08-24 21:18:56 9010

原创 Java学习疑点(5)--使用多线程的时候如何注意避免死锁发生?

优秀的程序员总是不断仔细琢磨每一行代码及其所产生的衍生影响,所以优秀的代码总是非常简洁、高效。在编写多线程同步代码块时我们必须要考虑到可能会产生的死锁问题。一旦出现死锁,相关线程就会进入无线等待的状态,严重的可能导致整个程序无响应。通常情况下,死锁问题非常隐蔽。在设计程序时,要对各线程之间锁的等待关系进行详细分析。下面先写一个死锁代码演示一下:

2013-07-28 23:32:43 1912

原创 Java学习疑点(4)--线程的六个状态以及其安全性问题的个例解析

Thread StatesThreads can be in one of six states: New Runnable Blocked Waiting Timed waiting TerminatedEach of these states is explained in the sections that follow.To determine the current

2013-07-07 13:17:13 9257 1

原创 Java学习疑点(3)--解析二分法查找的原理以及其优缺点

Java数组Arrays类中有一个方法--binarySearch(). 称之为"二分查找", 其效率远远要高于线性查找, 但是其也一样存在着缺点, 比如查询对象必须要经过排序, 当查询对象中有多个元素相同时, 二分查找只能找到其中一个, 并且找到的这个元素不一定位于最前面或者最后面. 下面对二分查找的原理作一总结: 使用二分搜索法来搜索指定的 int 型数组,以获得指定的值。必须在进行此

2013-06-29 11:47:02 5191

原创 Java学习疑点(2)--被static修饰的静态变量与实例变量之间生命周期的区别

类中成员变量有两种类型,一种是在声明时被static修饰的静态变量(又称为类变量),为该类中每一个实例所共享。另一种叫做实例变量,由每个实例各自单独拥有,在功能上有这样的差异,两者的生命周期以及机制自然有所区别,下面作一总结 1,静态变量在Java虚拟机加载类时被创建并为其分配内存,位于方法区,就像类中方法一样被所有类的实例共享。所以其可以直接通过类名访问。当卸载类时静态变量被销毁并撤销所

2013-06-27 23:35:08 1686

原创 为何在匿名内部类中只能问被final修饰的本地变量?

最近在实现一个对JTextField监听字符长度功能中使用了匿名内部类,其中引用了本地的两个变量,编译时出错,被告知“需要被声明为最终类型",甚是疑惑,于是在网上搜索其原因, 在此作一总结。 局部内部类(在方法内部定义的类)中无法直接访问方法中的局部变量,须修饰其为final1:变量的生命周期与局部内部类的对象的生命周期不一致从而导致了这个问题,一个方法运行结束,其局部变量就随之被回收

2013-06-26 16:56:56 12704 1

Spring官方文档3.2.1.RELEASE版本

Spring官方文档3.2.1.RELEASE版本 spring-framework-reference-3.2.1.RELEASE.pdf 外网不太好找,分享一下

2015-02-26

JUnit单元测试框架培训PPT

该PPT主要讲述了JUnit单元测试框架的发展历史、使用方法以及一部分的原理剖析内容,解析JUnit的实现原理。

2014-08-06

中国计算机学会通讯期刊(2014年二月刊)

中国计算机学会通讯期刊(2014年二月刊)

2014-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除