`
文章列表
原文转自:http://www.xiaoyaochong.net/wordpress/?p=563 遇到的问题 在同一个工作区下,依赖的Jar包如果既有GBK编码,又有UTF-8编码,就会出现的问题。 场景一:如果设置工作区为UTF-8编码来查看GBK编码的Jar包,可以显示正确的中文文字,但是查看GBK编码的Jar包,就会显示乱码。 场景二:反过来,如果设置工作区为GBK编码来查看UTF-8编码的Jar包,则查看UTF-8编码的Jar包,就会显示乱码。
转自:http://www.xiaoyaochong.net/wordpress/?p=363 我们知道,Netty使用二进制协议传输对象,那怎么通过Netty进行POJO对象传输呢?我们需要提供一种至支持对象传输的协议,这种协议依然是使用ChannelBuffer作为载体。我们要使用ChannelHandler作为编码和反编码的切入。   假设我们现在只需要读取32位整数,虽然这并不是使用ChannelBuffer的最佳场景。 首先我们需要一个传输对象的模型,这个模型将会在服务端和客户端中同时被使用。   public class UnixTime { private ...
转自:http://www.xiaoyaochong.net/wordpress/?p=354 ArrayBlockingQueue是Java并发框架中阻塞队列的最基本的实现,分析这个类就可以知道并发框架中是如何实现阻塞的。   笔者工作了一两年之后,还不知道阻塞是如何实现的,当然有一个原 ...
Ctrl+1 快速修复(最经典的快捷键,就不用多说了) Ctrl+D: 删除当前行 Ctrl+Alt+↓ 复制当前行到下一行(复制增加) Ctrl+Alt+↑ 复制当前行到上一行(复制增加) Alt+↓ 当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了) Alt+↑ 当前行和上面一行交互位置(同上) Alt+← 前一个编辑的页面 Alt+→ 下一个编辑的页面(当然是针对上面那条来说了) Alt+Enter 显示当前选择资源(工程,or 文件 or文件)的属性 Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后) Shi ...
转自:http://www.xiaoyaochong.net/wordpress/?p=354 TransferQueue是Java7新加入的一种线程安全的队列,实现了BockingQueue,也就时说这是一个特殊的阻塞队列。TransferQueue目前只有一个实现----LinkedTransferQueue,这是列表结构,意味着它是无边界的Queue。   一般的队列在未满的情况下往队列中存放元素是不会发生阻塞的,而一般的LinkedBlockingQueue又是一个无边界队列,所以在存放元素不会发生阻塞。为了满足无边界队列存放元素的阻塞需求,TransferQueue就应运而生 ...
Watch service 用来观察被注册了的对象的变化和事件。例如,在文件系统监控某一个文件目录下文件资源的创建,修改,删除,这个是WatchService的一种实现方式,用来监听文件状态变化的。是WatchService和Watchable两个接口的配合使用,WatchService类似于在观察者模式中的观察者,Watchable类似域观察者模式中的被观察者。   实例如下: @Test public void testResourceChanged() throws IOException, InterruptedException, ExecutionExceptio ...
本文转自:http://www.xiaoyaochong.net/wordpress/?p=330 AutoCloseable接口,表示一种不再使用时需要关闭的资源。这个接口下只有一个方法,close()。这个方法在try-with-resource语法下会被自动调用,支持抛出Exception,当然它也鼓励抛出更详细的异常。close()建议不要抛出线程中断的InterruptedException。对这个接口的实现,规范强烈建议close()是幂等的,也就是说多次调用close()方法和一次调用的结果是一样的。   AutoCloseable的简单实现: public class ...
摘要:虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题 ...
本文转自:http://www.xiaoyaochong.net/wordpress/?p=314 Java7引入了Fork Join的概念,来更好的支持并行运算。顾名思义,Fork Join类似与流程语言的分支,合并的概念。也就是说Java7 SE原生支持了在一个主线程中开辟多个分支线程,并且根据分支线程的逻辑来等待(或者不等待)汇集,当然你也可以fork的某一个分支线程中再开辟Fork Join,这也就可以实现Fork Join的嵌套。有两个核心类ForkJoinPool和ForkJoinTask。ForkJoinPool实现了ExecutorService接口,起到线程池的作用。所以 ...
一、对于32位系统,配置文件mms.cfg 文件存储在以下位置:C:\WINDOWS\system32\Macromed\Flash 二、对于64位系统,配置文件mms.cfg 文件存储在以下位置:C:\windows\SysWOW64\Macromed\flash   默认内容如下:   AutoUpdateDisable=0SilentAutoUpdateEnable=1   用记事本打开 mms.cfg 文件,在后面添加一行:   RTMFPP2PDisable=1   然后保存退出,再重新启动电脑,就彻底禁用了偷偷上传。
RESTFul持久化 使用SJON和XML媒介,通过REST可以暴露Java持久化单元。这使得应用可以更简单的暴露他们的持久化特性给包括HTML5和移动客户端的轻量服务框架( Thin Server Architecture)解决方案。 租户隔离 同一个应用程序将数据存储在数据表中,不同的租户可以通过每个租户的name或者schema唯一标识来管理各自租户的实体,开发者可以通过这样的特性设计和部署应用。开发者现在可以选择使通过应用来自定义数据源给不同的租户应用实例使用。 NoSQL 集成NoSQL数据源到应用中已经变成一个普遍的需求。使用通用的持久化解决方案满足这个需求时Eclip ...
业务需求对MySQL性能的影响 应用系统中的每一个功能在设计初衷肯定都是出于为用户提供某种服务,或者满足用户的某种需求,但是,并不是每一个功能在最后都能很成功,甚至有些功能的推出可能在整个系统中是画蛇添足。不仅没有为用户提高任何体验度,也没有为用户改进多少功能易用性,反而在整个系统中成为一个累赘,带来资源的浪费。   这里我们就拿一个看上去很简单的功能来分析一下。 需求:一个论坛帖子总量的统计 附加要求:实时更新   在很多人看来,这个功能非常容易实现,不就是执行一条SELECT COUNT(*)的Query 就可以得到结果了么?是的,确实只需要如此简单的一个Query 就可以 ...
麻雀虽小,五脏俱全。MySQL虽然以简单著称,但其内部结构并不简单。本章从MySQL逻辑组成,物理组成,以及相关工具这几个角度来介绍MySQL的整体架构组成,希望能够让读者对MySQL有一个更全面深入的了解。 逻辑模块组成 总的来说,MySQL可以看成是二层架构,第一层我们通常叫做SQL层(SQL Layer),在MySQL数据库系统处理底层数据之前的所有工作都是在这一层完成,包括权限判断,sql解析,执行计划优化,query cache的处理等等;第二层就是存储引擎层(Storage Engine Layer),也就是底层数据存取操作实现部分,由多种存储引擎共同组成。所以,可以用如下一 ...
本文转自:http://www.xiaoyaochong.net/wordpress/?p=210 Memcached尽管是“分布式”缓存服务器,但服务器端并没有分布式功能。各个Memchached不会互相通信以共享信息。那么,怎么样进行分布式呢?完全取决于客户端的实现。 下面假设Mem ...
原文地址:http://www.xiaoyaochong.net/wordpress/?p=201 | 逍遥冲   ABA问题是一种异常现象:如果在算法中的节点可以被循环使用,那么在使用“比较并交换”指令时就可能出现这个问题(如果在没有垃圾回收机制的环境 中)。在CAS操作中将判断“V的值是否仍然为A?”,并且如果是的话就继续执行更新操作。在大多数情况下,这种判断是足够的。然而,有时候还需要知道 “自从上次看到V的值为A以来,这个值是否发生了变化?”在某些算法中,如果V值首先由A编程B,在由B编程A,那么仍然被认为发生了变化,并需要重新执 行算法中的某些步骤。   如果在算法中采用 ...
Global site tag (gtag.js) - Google Analytics