如何书写高质量的Java源代码

0

错误码:WMI_WRONG_MAP_ITERATOR

实例:
for(String key : blackItemsMap.keySet()) {
List<BlockListDO> item = blackItemsMap.get(key);
if (null == item || item.isEmpty())
continue;
else ….
}
解读:遍历Map时使用了效率低下的方法,比如:先一个一个的把key遍历,然后在根据key去查找value,为什么不遍历entry(桶)然后直接从entry得到value呢?它们的执行效率大概为1.5:1(有人实际测试过)。 我们看看HashMap.get方法的源代码:
public V get(Object key) {
if (key == null)
return getForNullKey();
int hash = hash(key.hashCode());
for[......]

阅读全文

Jersey基础知识分享

0

RESTful Web 服务简介
REST 在 2000 年由 Roy Fielding 在博士论文中提出,他是 HTTP 规范 1.0 和 1.1 版的首席作者之一。
REST 中最重要的概念是资源(resources),使用全球 ID(通常使用 URI)标识。客户端应用程序使用 HTTP 方法(GET/ POST/ PUT/ DELETE)操作资源或资源集。RESTful Web 服务是使用 HTTP 和 REST 原理实现的 Web 服务。通常,RESTful Web 服务应该定义以下方面:
Web 服务的基/根 URI,比如 http://host/<appcontext>/resources。
支持 MIME 类型的响应数据,包括 JSON/XML/ATOM 等等。
服务支持的操作集合(例如 POST、GET、PUT 或 DELETE)。
Jersey的四种行为
对应我们日常说的CRUD.
方法/资源 资源集合; URI:http://host/ap[......]

阅读全文

200710231193108006978

构建REST风格的Web Service

0

1.什么是REST?
REST 是由 Roy Fielding 在他的论文《Architectural Styles and the Design of Network-based Software Architectures》中提出的一个术语。
REST 是英文 Representational State Transfer 的缩写,有中文翻译为“具象状态传输”(参考:《SIP/IMS网络中的Representational State Transfer (REST)和数据分布》
可以将REST归纳如下:
1.1首先REST只是一种风格,不是一种标准

You will not see the W3C putting out a REST specification. You will not see IBM or Microsoft or Sun selling a REST developer’s toolkit. Why? Because REST is just[......]

阅读全文

VirtualBox中使用物理硬盘上的Win7

0

操作有风险,动手须谨慎!
前提
1.在硬盘上安装Ubuntu、Win7(或者XP)

2.在Ubuntu安装VirtualBox

3.在Ubuntu安装MBR
sudo apt-get install mbr
方法
1.提升硬盘访问权限

chmod o+rw /dev/sda //全盘获取读写权限,不安全
chmod o+rw /dev/sda3 //第3个分区获得读写权限

1.配置引导区
install-mbr -e12 –force vm.mbr

2.将物理硬盘生成VirtualBox配置文件
VBoxManage internalcommands createrawvmdk -filename ~/Win7.vmdk -rawdisk /dev/sda -partitions 3 -mbr vm.mbr -relative
//将第3个分区生成配置文件,并导入MBR文件

3.修改vmdk等文件的所有者和访问权限
chown s[......]

阅读全文

browser_chrome

Chrome 快捷键

1

chrome窗口和标签页快捷键:

Ctrl+N 打开新窗口

Ctrl+T 打开新标签页

Ctrl+Shift+N 在隐身模式下打开新窗口

Ctrl+O,然后选择文件 在谷歌浏览器中打开计算机上的文件

按住 Ctrl 键,然后点击链接 从后台在新标签页中打开链接,但您仍停留在当前标签页中

按住 Ctrl+Shift 键,然后点击链接 在新标签页中打开链接,同时切换到新打开的标签页

按住 Shift 键,然后点击链接 在新窗口中打开链接

Alt+F4 关闭当前窗口

Ctrl+Shift+T 重新打开上次关闭的标签页。谷歌浏览器可记住最近关闭的 10 个标签页。

将链接拖动到标签页内 在指定标签页中打开链接
将链接拖动到两个标签页之间 在标签页横条的指定位置建立一个新标签页,在该标签页中打开链接

Ctrl+1 到 Ctrl+8 切换到指定位置编号的标签页。您按下的数字代表标签页横条上的相应标签位置。[......]

阅读全文

Google带给你冬天的感觉

0

尝试着在谷歌中搜索“let it snow”吧,会有惊喜哦~
不信就看下面的图片吧~

点击查看大图


下面是其他的一些彩蛋:
let it snow – 点击查看
tilt - 点击查看
do a barrel roll - 点击查看

Tomcat处理HTTP请求源码分析(下)

0

很多开源应用服务器都是集成tomcat作为web container的,而且对于tomcat的servlet container这部分代码很少改动。这样,这些应用服务器的性能基本上就取决于Tomcat处理HTTP请求的connector模块的性能。本文首先从应用层次分析了tomcat所有的connector种类及用法,接着从架构上分析了connector模块在整个tomcat中所处的位置,最后对connector做了详细的源代码分析。并且我们以Http11NioProtocol为例详细说明了tomcat是如何通过实现ProtocolHandler接口而构建connector的。
4 如何实现Connector
由上面的介绍我们可以知道,实现Connector就是实现ProtocolHander接口的过程。
AjpAprProtocol、AjpProtocol、Http11AprProtocol、Http11Protocol、JkCoyoteHandler、MemoryProtoco[......]

阅读全文

Tomcat处理HTTP请求源码分析(上)

0

很多开源应用服务器都是集成tomcat作为web container的,而且对于tomcat的servlet container这部分代码很少改动。这样,这些应用服务器的性能基本上就取决于Tomcat处理HTTP请求的connector模块的性能。本文首先从应用层次分析了tomcat所有的connector种类及用法,接着从架构上分析了connector模块在整个tomcat中所处的位置,最后对connector做了详细的源代码分析。并且我们以Http11NioProtocol为例详细说明了tomcat是如何通过实现ProtocolHandler接口而构建connector的。

通过本文的学习,应该可以轻松做到将tomcat做为web container集成到第三方系统,并且自定义任何你想要的高性能的HTTP连接器。
1 Connector介绍
1.1 Connector的种类
Tomcat源码中与connector相关的类位于org.apache.coyote包中,Conn[......]

阅读全文

回到顶部