自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 资源 (3)
  • 收藏
  • 关注

转载 java 性能优化:35 个小细节,让你提升 java 代码的运行效率

前言代码 优化 ,一个很重要的课题。可能有些人觉得没用,一些细小的地方有什么好修改的,改与不改对于代码的运行效率有什么影响呢?这个问题我是这么考虑的,就像大海里面的鲸鱼一样,它吃一条小虾米有用吗?没用,但是,吃的小虾米一多之后,鲸鱼就被喂饱了。代码优化也是一样,如果项目着眼于尽快无BUG上线,那么此时可以抓大放小,代码的细节可以不精打细磨;但是如果有足够的时间开发、维护代码,这时候就必须考虑每个可...

2018-03-07 11:25:06 290

原创 for(;;)和while(true)的区别

再看JDK源码的时候发现,“死循环”有两种写法:for(;;)和while(true),我就疑问,两者有啥区别,有啥源码中多数是for( ; ; )这种形式的,编译前              编译后     while (1);         mov eax,1                                                test eax,eax       ...

2018-03-06 09:44:42 329

转载 在线文档分享工具:ShowDoc

阅读目录ShowDoc是什么ShowDoc是什么每当接手一个他人开发好的模块或者项目,看着那些没有写注释的代码,我们都无比抓狂。文档呢?!文档呢?!Show me the doc !!程序员都很希望别人能写技术文档,而自己却很不希望要写文档。因为写文档需要花大量的时间去处理格式排版,想着新建的word文档放在哪个目录等各种非技术细节。word

2016-03-01 17:26:20 1019

转载 使用 WebSockets 进行 HTML5 视频直播

最近在做的一个小项目需要用到相关技术,找到这篇文章貌似不错,于是就翻译转载上来了。Recently I'm interesting in these technologies and I'm working on a project related to it. I've found this useful article so I translated and posted it here.

2016-02-26 14:31:24 3254 1

转载 mysql使用JTA实例

JTA(Java Transaction API) 为 J2EE 平台提供了分布式事务服务。 测试使用的jdk中自带了javax.transaction和javax.transaction.xa import java.sql.Connection;import java.sql.SQLException;import java.sql.Statement;import

2016-02-17 16:24:34 534

转载 JTA 深度历险 - 原理与实现

利用 JTA 处理事务什么是事务处理事务是计算机应用中不可或缺的组件模型,它保证了用户操作的原子性 ( Atomicity )、一致性 ( Consistency )、隔离性 ( Isolation ) 和持久性 ( Durabilily )。关于事务最经典的示例莫过于信用卡转账:将用户 A 账户中的 500 元人民币转移到用户 B 的账户中,其操作流程如下 1. 将 A 账户

2016-02-17 14:01:13 298

转载 编程巨星的唯一秘诀

别以为是那些软件开发定律,别以为是开发出那些特殊用途的软件,别以为是软件设计技术本身。只有一条真理决定了一个软件程序员的成功还是失败。由于坚持这个真理,一个资深的程序员能在一天的时间里学会一门新的编程语言,而由于不坚持这条真理,一个初级的程序员用十年时间也只能挣到一份糊口的钱、永远是来实现别人的设计、永远不够优秀而得不到晋升的机会。这条真理让你看清了差的程序员和好的程序员的不同之处,好的程序员和伟

2016-02-04 18:01:37 354

转载 CocurrentHashMap和Hashtable的区别

集合类是Java API的核心,但是我觉得要用好它们是一种艺术。我总结了一些个人的经验,譬如使用ArrayList能够提高性能,而不再需要过时的Vector了,等等。JDK 1.5引入了一些好用的并发集合类,它们对于大型的、要求低延迟的电子商务系统来说非常的有用。这篇文章中将会看看ConcurrentHashMap和Hashtable之间的区别。这篇文章是HashMap的工作原理以及Has

2016-02-02 10:13:45 340

转载 多线程还是多进程的区别

关于多进程和多线程,教科书上最经典的一句话是“进程是资源分配的最小单位,线程是CPU调度的最小单位”,这句话应付考试基本上够了,但如果在工作中遇到类似的选择问题,那就没有这么简单了,选的不好,会让你深受其害。       我们按照多个不同的维度,来看看多线程和多进程的对比(注:因为是感性的比较,因此都是相对的,不是说一个好得不得了,另外一个差的无法忍受)。

2016-02-02 10:10:27 266

原创 HTML5视频播放器VideoJS使用附【源码及示例】- 兼容IE

HTML5很强大的说,但IE的不给力。让人抓狂。这里介绍一个HTML5的视频播放器,VideoJS 是最流行的 HTML5 视频播放器,免费、开源,可使用 CSS 轻松定制皮肤,支持全屏,在不支持的浏览器自动切换为 Flash 播放。没什么好说的直接贴源码 HTML5视频播放器Video.Js演示地址 videojs.options.flash.

2016-02-01 11:09:50 14187

转载 Servlet 3特性:异步Servlet

Servlet3是Tomcat7出现的新特性,所以需要先安装tomcat7理解异步Servlet之前,让我们试着理解为什么需要它。假设我们有一个Servlet需要很多的时间来处理,类似下面的内容:LongRunningServlet.java[java] view plain copy package com.journa

2016-01-29 10:01:37 302

转载 热部署原理和实例

在web应用开发的过程中,我们时时刻刻都在使用热部署。热部署的目的很简单,就是为了节省应用开发和发布的时间。比如,我们在使用Tomcat或者Jboss等应用服务器开发应用时,我们经常会开启热部署功能。热部署,简单点来说,就是我们将打包好的应用直接替换掉原有的应用,不用关闭或者重启Web服务器,一切就是这么简单。那么,热部署到底是如何实现的呢?在本文中,我将写一个实例,这个实例就是一个容器应用,允许

2016-01-28 13:28:52 407

转载 在程序员的眼里,用户是这样使用他们开发的软件的

我曾经说过,程序员不是一般的人,是具有某种超能里的人。但问题是,程序员往往意识不到自己 的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情,其他人——比如他们的客户/软件用户——也应该很容易做到。但 事实上,由于大部分人——绝大部分人(包括软件开发公司的客户/购买软件的用户)——都是电脑小白(对电脑知识/计算机知识/软件知识知之甚少的人)。一 个对于程序员来说很显

2016-01-28 09:27:31 501

转载 必备工具!程序员高效率工作工具推荐

编者注:作为一个程序员,一套顺手的工具,将在工作中带给你事半功倍的效率。下面推荐一些我们常用的工具,可以说是必备工具了。一、 Xshell Xftp免费软件 Xshell 和 Xftp 都是 NetSarang 出品的优秀网络管理、安全传输工具。Xshell 是一个免费的安全终端仿真器,可以作为 SSH、TELNET 或 RLOGIN 的终端模拟,能够从 W

2016-01-28 09:26:26 369

转载 jetty使用教程(嵌入eclipse开发)

在eclipse下面建一个java project建立目录结构如下:二级目录: (备注jetty_test是工程的根目录,etc、lib、webRoot为其二级目录)到jetty的官方网站(http://www.eclipse.org/jetty/)下载jetty的开发包;我下载的jetty-hightide-8.0.0.v2

2016-01-27 17:17:53 1832

转载 聊聊并发(五)——原子操作的实现原理

1. 引言原子(atom)本意是“不能被进一步分割的最小粒子”,而原子操作(atomic operation)意为"不可被中断的一个或一系列操作" 。在多处理器上实现原子操作就变得有点复杂。本文让我们一起来聊一聊在Intel处理器和Java里是如何实现原子操作的。2. 术语定义术语英文解释缓存行Cache line缓存的最小操

2016-01-27 11:17:27 275

转载 聊聊并发(四)——深入分析ConcurrentHashMap

术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。哈希表hash table根据设定的哈希函数H(key)和处理冲突方法将一组关键字映象到一个有限的地址区间上,并以关键字在地址区间中的象作为记录在表中的存储位置,这种表称为哈希表或散列,所得存储位

2016-01-27 11:03:02 253

转载 线程池ThreadPoolExecutor使用简介

一、简介 线程池类为 java.util.concurrent.ThreadPoolExecutor,常用构造方法为: ThreadPoolExecutor(int corePoolSize, int maximumPoolSize, long keepAliveTime, TimeUnit unit, BlockingQueue workQueue, RejectedEx

2016-01-27 10:55:47 213

转载 聊聊并发(三)——JAVA线程池的分析和使用

1. 引言合理利用线程池能够带来三个好处。第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。第三:提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和监控。但是要做到合理的利用线程池,必须对其原理了如指掌。

2016-01-27 10:27:16 236

转载 聊聊并发(二)——Java SE1.6中的Synchronized

1 引言在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中为了减少获得锁和释放锁带来的性能消耗而引入的偏向锁和轻量级锁,以及锁的存储结构和升级过程。2 术语定义术语相关厂商内容

2016-01-27 10:16:40 285

转载 聊聊并发(一)——深入分析Volatile的实现原理

引言在多线程并发编程中synchronized和Volatile都扮演着重要的角色,Volatile是轻量级的synchronized,它在多处理器开发中保证了共享变量的“可见性”。可见性的意思是当一个线程修改一个共享变量时,另外一个线程能读到这个修改的值。它在某些情况下比synchronized的开销更小,本文将深入分析在硬件层面上Inter处理器是如何实现Volatile的,通

2016-01-27 10:03:47 362

转载 Fork/Join框架介绍

1. 什么是Fork/Join框架Fork/Join框架是Java7提供了的一个用于并行执行任务的框架, 是一个把大任务分割成若干个小任务,最终汇总每个小任务结果后得到大任务结果的框架。我们再通过Fork和Join这两个单词来理解下Fork/Join框架,Fork就是把一个大任务切分为若干子任务并行的执行,Join就是合并这些子任务的执行结果,最后得到这个大任务的结果。比如计算1+

2016-01-27 09:58:43 288

转载 自定义浏览器协议,实现web程序调用本地程序

参考了一下qq的方式。tencent://Message/?Uin=000000&websiteName=qzone.qq.com&Menu=yes 在注册表里面添加下面,就能实现Windows Registry Editor Version 5.00[HKEY_CLASSES_ROOT\Tencent]"URL Protocol"="C:\\Progr

2016-01-26 15:00:59 538

转载 7、用JDK5.0的JConsole来连接MBean

前面所有看效果都是通过Html网页来看的。JDK5.0自带了一个jmx客户端,叫jconsole,位于c:\jdk\bin\jconsole.exe。我们来用用这个客户端来连接Mbean Server。 一、vm参数方式 1、还是用第一篇的那个HelloAgent,修改HelloAgent,将第一句:MBeanServer server = MBeanServerFactory

2016-01-18 13:59:57 330

转载 6、模型Bean:Model Bean

在上一节是用apache的commons-modeler来开发的一个model,只不过commons-modeler帮助我们实现了很多的代码,而我们只需要写描述XML文件就行了。这一节,来一个实打实的Model Bean,不借助任何第三方工具包。例子还是沿用Hello这个类,以便于和以前的实现相比较。 一、Model MBean实例1、Hello.java还是和以前的一样。这里它没有再

2016-01-18 13:55:22 274

转载 5、用Apache的commons-modeler来辅助开发JMX

一、前言   每一个MBean都要有一个接口,比如前面的Hello要有一个HelloMBean接口。要多维护一个接口,的确是件麻烦的事。 Apache的commons-modeler利用JMX中的动态MBean原理很好的解决了这一问题,commons-modeler使用得我们可以只写Hello,而不用写HelloMBean这个接口。不过这是有代价的,它要求我们写一个mbean的xml描述文

2016-01-18 13:38:40 289

转载 4、动态MBean:DynamicMBean

一、前言   动态MBean是在运行期才定义它的属性和方法,也就是说它有什么属性和方法是可以动态改变的。动态MBean主要利用一些辅助类(构造函数类MBeanConstructorInfo、属性类MBeanAttributeInfo、方法类MBeanOperationInfo)来完成这个功能,所有的动态MBean必须实现DynamicMBean接口。DynamicMBean写好后,使用方法

2016-01-18 13:15:13 341

转载 3、Notification的使用

一、简介   Mbean之间的通信是必不可少的,Notification就起到了在Mbean之间沟通桥梁的作用。JMX notification 由四部分组成:    * Notification 这个相当于一个信息包,封装了需要传递的信息    * Notification broadcaster 这相当于一个广播器,把消息广播出去    * Notification l

2016-01-18 11:42:02 266

转载 2、JMX简介

一、JMX简介  JMX是一种JAVA的正式规范,它主要目的是让程序且有被管理的功能,那么怎么理解所谓的“被管理”呢?试想你开发了一个软件(如WEB网 站),它是在24小时不简断运行的,那么你可能会想要“监控”这个软件的运行情况,比如收到了多少数据,有多少人登录等等。或者你又想“配置”这个软件, 比如现在访问人数比较多,你想把数据连接池设置得大一些。  当然,你也许会专门为这些管理

2016-01-18 11:40:47 515

转载 1、JMX的Hello World

1、JMX的Hello World 一、JMX简介  什么是JMX?在一篇网文中是这样说的:"JMX(Java Management Extensions)是一个为应用程序植入管理功能的框架。JMX是一套标准的代理和服务,实际上,用户可以在任何Java应用程序中使用这些代理和服务实现管理",这句话我现在看着还是不知所云,云里雾里。  我们还是从JMX能给我们提供什么好处入手

2016-01-18 11:14:26 282

转载 ASP.NET生成压缩文件(rar打包)

首先引用ICSharpCode.SharpZipLib.dll,没有在这里下载:http://files.cnblogs.com/KenBlove/ICSharpCode.SharpZipLib.rar压缩打包代码/// /// 生成压缩文件 /// /// 生成的zip文件的路径 /// 源文件的上级目录 /// T压缩等级

2013-09-09 14:01:45 715

转载 网站性能优化总结

1.  使用存储过程, (如果在程序里用exec 存储过程 参数,这样执行似乎并没有快多少)      在数据库里是预编译的,也不需要在字符串传输上花费大量时间。  防sql注入攻击。2.     尽量优化数据库语句,使逻辑尽量简单。      @  还有就是在使用函数时    charindex   >like > padindex  效率依次递减。   @查询字段是否包含在以,分隔的字

2013-08-21 22:30:19 413

OpenCV Java教程

OpenCV提供的视觉处理算法非常丰富,并且它部分以C语言编写,加上其开源的特性,处理得当,不需要添加新的外部支持也可以完整的编译链接生成执行程序。应用领域:人机互动、物体识别、图像分割、人脸识别、动作识别、运动跟踪、机器人、运动分析、机器视觉、结构分析、汽车安全驾驶

2017-06-12

jquery + endless-scroll 模拟实现 滚动加载数据

jquery + endless-scroll 模拟实现 滚动加载数据

2014-01-28

LINQPad v4.47.02 完美破解版

LINQPad v4.47.02破解+激活智能感知和智能完成功能。 学习和使用 Linq的最佳工具

2014-01-19

空空如也

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

TA关注的人

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