- 浏览: 14603 次
- 性别:
- 来自: 北京
最新评论
文章列表
原文地址:http://zh.wikipedia.org/wiki/%E5%8F%8C%E9%87%8D%E6%A3%80%E6%9F%A5%E9%94%81%E5%AE%9A%E6%A8%A1%E5%BC%8F
双重检查锁定模式(也被称为"双重检查加锁优化","锁暗示"(Lock hint)[1]) 是一种软件设计模式用来减少并发系统中竞争和同步的开销。双重检查锁定模式首先验证锁定条件(第一次检查),只有通过锁定条件验证才真正的进行加锁逻辑并再次验证条件(第二次检查)。
该模式在某些语言在某些硬件平台的实现可能是不安全的。有的时候,这一模式被看做是反模 ...
安装findbugs插件后,SVN插件就消失了。后来从网上查到解决方案:eclipse/configuration目录下的org.eclipse.update目录删除,重启eclipse即可解决。
问题主要是platform.xml文件,eclipse解析出现问题。
删除前:
<site enabled="true" updateable="true" policy="USER-EXCLUDE" url="file:/D:/Program Files/eclipse/links/site-1.8.5/"&g ...
因为项目要用到Hibernate,好长时间没有直接使用过了,看了一些资料,总结了一些知识点记在这里。主要来自官方文档(3.6.10),也有一些来自网络文章。
get和load的最大区别是,如果在缓存中没有找到相应的对象,get将会直接访问数据库并返回一个完全初始化好的对象,而这个过程有可能会涉及到多个数据库调用;而load方法在缓存中没有发现对象的情况下,只会返回一个代理对象,只有在对象getId()之外的其它方法被调用时才会真正去访问数据库,这样就能在某些情况下大幅度提高性能。
save()、saveOrUpdate()和persist()都是用于将对象保存到数据库中的方法,但其中有些细微的 ...
grails最佳实践
- 博客分类:
- grails
------以后根据这个改网站
我工作于IntelliGrape, 一个专用Groovy&Grails开发项目的公司. 本文列举了我们Grails项目遵循的几个基本的最佳实踐, 它们通过邮件, Stack Overflow, 博客, podcasts, 和公司内部的讨论收集. 按照controller, service, domain, views, taglibs, 测试和其它分类.
本文的建议主要针对Grails 2.0.
Controller
1. 不要让Controller扮演多个角色. 控制器的角色仅仅是接收请求, 检查权限等, 复杂逻辑由domain或service ...
禅修程序员十诫----转自图灵社区
- 博客分类:
- 禅修
做一名禅修程序员意味着什么?那意味着,你要持守我从禅宗 习得的10条戒律,它们与计算机程序员的现代世界息息相关。
早晨,外面下着雨,我发觉自己正坐在办公桌上琢磨有关高效率工作(efficient working)的问题。在我成为 ...
注意:log4j.properties放在classpath中才起作用
在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义。定义步骤就是对Logger、Appender及Layout的分别使用。
Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)【Java特性文件(键=值)】。下面我们介绍使用Java特性文件做为配置文件的方法
具体如下:
1、配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName1, appenderName2, … ...
/bin bin是binary的缩写。这个目录是对UNIX系统习惯的沿袭,存放着使用者最经常使用的命令。例如:cp,ls,cat。
/boot 这里存放的是启动LINUX时使用的一些核心文件。
/dev dev是device(设备)的缩写。这个目录下是所有LINUX的外部设备,其功 ...
收藏学习,原文地址http://blog.csdn.net/fenglibing/article/details/1756473
1、冒泡排序 Bubble Sort最简单的排序方法是冒泡排序方法。这种方法的基本思想是,将待排序的元素看作是竖着排列的“气泡”,较小的元素比较轻,从而要往上浮。 ...
模板技术用于将不同页面间公共的显示内容独立封装起来。
模板页面是以"_"开头的".gsp"文件,存放在views目录下(template属性以”/“开头)或者controller的views目录下(template属性不以"/"开头)。
在目标页面中,使用<g:render>标签引用模板的内容。
当template中只使用一个数据对象时:
<p>${it.title}</p>
<p>${it.author}</p>
如果使用collecton属性传入集合,则会对集合中的每一个元 ...
Http之Get/Post请求区别
1.HTTP请求格式:
<request line>
<headers>
<blank line>
[<request-body>]
在HTTP请求中,第一行必须是一个请求行(request line),用来说明请求类型、要访问的资源以及使用的HTTP版本。紧接着是一个 ...
要在JSP中使用Struts 2.0标志,先要指明标志的引入。通过在JSP的代码的顶部加入以下代码可以做到这点。
<%@taglib prefix="s" uri="/struts-tags" %>
非UI标志
if、elseif和else
描述:
执行基本的条件流转。
参数:
名称 必需 默认 类型 描述 备注
test 是 Boolean 决定标志里内容是否显示的表达式 else标志没有这个参数
id 否 Object/String 用来标识元素的id。在UI和表单中为HTML的id属性
例子:
<%@ page cont ...
import java.net.InetAddress;
import java.net.UnknownHostException;
public class TestInetAddress {
InetAddress myIpAddress = null;
InetAddress[] myServer = null;
public static void main(String args[]) {
TestInetAddress address = new TestInetAddress();
System.out.println("Your ...
关于 Java 对象序列化您不知道的 5 件事
Java 序列化简介
Java 对象序列化是 JDK 1.1 中引入的一组开创性特性之一,用于作为一种将 Java 对象的状态转换为字节数组,以便存储或传输的机制,以后,仍可以将字节数组转换回 Java 对象原有的状态。
实际上,序列化的思想是 “冻结” 对象状态,传输对象状态(写到磁盘、通过网络传输等等),然后 “解冻” 状态,重新获得可用的 Java 对象。所有这些事情的发生有点像是魔术,这要归功于 ObjectInputStream/ObjectOutputStream 类、完全保真的元数据以及程序员愿意用 Serializable ...
Java语法总结 - 异常
软件开发中一个古老的说法是:80%的工作使用20%的时间。80%是指检查和处理错误所付出的努力。在许多语言中,编写检查和处理错误的程序代码很乏味,并使应用程序代码变得冗长。原因之一就是它们的错误处理方式不是语言的一部分。尽管如此,错误检测和处理仍然是任何健壮应用程序最重要的组成部分。
Java提供了一种很好的机制,用强制规定的形式来消除错误处理过程中随心所欲的因素:异常处理。它的优秀之处在于不用编写特殊代码检测返回值就能很容易地检测错误。而且它让我们把异常处理代码明确地与异常产生代码分开,代码变得更有条理。异常处理也是Java中唯一正式的错误报告机制。
第一部分 ...
1. Java语言基础
谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的《Thinking in Java》。它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它。该书的作者Bruce Eckel在网络上被称为天才的投机者,作者的《Thinking in C++》在1995年曾获SoftwareDevelopment Jolt Award最佳书籍大奖,《Thinking in Java》被评为1999年Java World“最爱读者欢迎图书”,并且赢得了编辑首选图书奖。作者从1986年至今,已经发表了超过150篇计算机技术文章,出版 ...