JAVA

Spring应用的几种事务处理机制 Java Transaction API和XA协议是Spring常用的分布式事务机制,不过你可以选择选择其他的实现方式。理想的实现取决于你的应用程序使用何种资源,你愿意在性能、安全、系统稳健性、数据完整方面做出何种权衡。在这次JavaWorld大会...

Java是一种简单的,面向对象的,分布式的,解释型的,健壮安全的,结构中立的,可移植的,性能优异、多线程的静态语言。那么java语言的特点是什么呢?1、Java语言是简单的 Java 语言的语法与C语言和C++语言很接近,使得大多数程序员很容易学习和使用Java。另...

在 Plumbr 从事 GC 暂停检测相关功能的工作时,本人被迫用自己的方式,通过大量文章、书籍和演讲来介绍本人所做的工作。在整个过程中,经常对 Minor、Major、和 Full GC 事件的使用感到困惑。这也是本人写这篇博客的原因,本人希望能清楚地解释这其中的一些疑...

译者注:ITJS的这篇文章其实是一个各方见解评论的总结,已将其中于此处发布不妥的内容去掉,全文内容可查看原文。 在官方的文档里:http://docs.oracle.com/javase/tutorial/uiswing/painting/step1.html 告诉各位同行如何创建一个gui。 事件分发线程: Sw...

Java annotations自从被引入到Java之后,一直扮演着整合各种API的作用,尤其是对大型应用框架而言。在这方面,Spring和Hibernate都是Java annotation应用的好例子——仅仅需要增加几行简单的Java annotation代码,就可以实现非常复杂的程序逻辑。尽管对这些AP...

最近,由于本人把工具类看作反模式,所以被指责反对函数式编程。这是绝对错误的!本人认为它们是很糟糕的反模式,因为他们与函数式编程无关。本人认为其中有两个基本原因。首先,函数式编程是可声明的,然而工具类方法是命令式的。第二,函数式编程是基于lamb...

对Java垃圾回收最大的误解是什么?它实际又是什么样的呢? 当 本人还是小孩的时候,父母常说如果你不好好学习,就只能去扫大街了。但他们不知道的是,清理垃圾实际上是很棒的一件事。可能这也是即使在Java的世界中, 同样有很多开发者对GC算法产生误解的原因...

垃圾收集基础 Java 语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源,例如内存资源的释放情况。自动垃圾收集虽然大大减轻了开发人员的工作量,但是也增加了软件系统的负担。 拥有垃圾收集器可以说是 Java 语言与 C++语言的一项...

Session接口是Hibernate向程序提供操纵数据库的最主要接口,是单线程对象,它提供了基本的保存、更新、删除和查询方法。它有一个缓存,保存了持久化对象,当清理缓存时,按照这些持久化对象同步更新数据库。 注意:session的某些方法(persist,load)不会立...

ITJS的这篇文章将介绍Hibernate中主键生成的几种策略方案,有需要的朋友可以参考一下。 1、自动增长identity 适用于MySQL、DB2、MS SQL Server,采用数据库生成的主键,用于为long、short、int类型生成唯一标识 使用SQL Server 和 MySQL 的自增字段,这个方...

CRUD是指在做计算处理时的增加(Create)、读取(Retrieve)(重新得到数据)、更新(Update)和删除(Delete)几个单词的首字母简写. 下面列举实例来讲解这几个操作: 实体类: package com.oumyye.model; public class Student {private long id; private Strin...

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中...

工欲善其事,必先利其器。每一个Java程序员都有其惯用的工具组件。对于Java程序员,各种有用的软件和工具泛滥成灾。初级开发人员要么找不到合适的工具,要么在寻找过程中浪费了大量的时间。下面,本人将为大家介绍6款Java开发必备工具。 1.Notepad++ Notepad+...

JAVA能够实现跨平台的一个根本原因,是定义了class文件的格式标准,凡是实现该标准的JVM都能够加载并解释该class文件,据此也可以知道,为啥Java语言的执行速度比C/C++语言执行的速度要慢了,当然原因肯定不止这一个,如在JVM中没有数据寄存器,指令集使用的是...

自动装箱和拆箱从Java 1.5开始引入,目的是将原始类型值转自动地转换成对应的对象。自动装箱与拆箱的机制可以让各位同行在Java的变量赋值或者是方法调用等情况下使用原始类型或者对象类型更加简单直接。 如果你在Java1.5下进行过编程的话,你一定不会陌生这...

多线程已经成为大多数开发者的兴趣所在了。他们努力尝试想找出最优策略来解决这个问题。过去已经有各种尝试去标准化这些方案。特别是随着大数据,实时分析等问题领域的兴起,又存在着新的挑战。在这个方向需要走的一步是“Doug Lea”的作品(一部巨作),以并...

容器是Java语言学习中重要的一部分。泥瓦匠本人的感觉是刚开始挺难学的,但等你熟悉它,接触多了,也就“顺理成章”地知道了。Java的容器类主要由两个接口派生而出:Collection和Map。 一、Collection vs Collections 首先,Collection 和 Collections 是两个...

一、Set回顾 一个不包括重复元素(包括可变对象)的Collection,是一种无序的集合。Set不包含满 a.equals(b) 的元素对a和b,并且最多有一个null。 泥瓦匠的记忆宫殿: 1、不允许包含相同元素 2、判断对象是否相同,根据equals方法二、HashSet 一个按着Hash...

一、List回顾 序列(List),有序的Collection,正如它的名字一样,是一个有序的元素列表。确切的讲,列表通常允许满足 e1.equals(e2) 的元素对 e1 和 e2,并且如果列表本身允许 null 元素的话,通常它们允许多个 null 元素。实现List的有:ArrayList、Linked...

在Java编程中,有些知识 并不能仅通过语言规范或者标准API文档就能学到的。在ITJS的这篇文章中,本人会尽量收集一些最常用的习惯用法,特别是很难猜到的用法。(Joshua Bloch的《Effective Java》对这个话题给出了更详尽的论述,可以从这本书里学习更多的用法...

一、引题 在java语言的所有数据类型中,String类型是比较特殊的一种类型,同时也是面试的时候经常被问到的一个知识点,ITJS的这篇文章结合java内存分配深度分析关于String的许多令人迷惑的问题。下面是ITJS的这篇文章将要涉及到的一些问题,如果读者对这些问...

Netty是JBoss出品的高效的Java NIO开发框架,关于其使用,可参考本人的另一篇文章 netty使用初步。ITJS的这篇文章将主要分析Netty实现方面的东西,由于精力有限,本人并没有对其源码做了极细致的研 究。如果下面的内容有错误或不严谨的地方,也请指正和谅解。...

一般来说,开发人员偶尔会遇到这样的情形: 在一个特定容器中映射缺救蒜类型的值。然而Java 集合API只提供了参数化的容器。这限制了类型安全地使用HashMap,如单一的值类型。但如果想混合苹果和梨,该怎样做呢? 幸运的是,有一个简单的设计模式允许使用Java...

致命错误出现的时候,JVM生成了hs_err_pid<pid>.log这样的文件,其中往往包含了虚拟机崩溃原因的重要信息。因为经常遇 到,在这篇文章里,本人挑选了一个,并且逐段分析它包含的内容(文件可以在文章最后下载)。默认情况下文件是创建在工作目录下的(...

配置环境变量这个东西应该要烂在程序猿,基本上Windows或者Mas osx还是Linux都有固定的配置方式,各位同行在使用任何软件都是基于系统这个最高层的应用程序上的,前面笔者已经介绍过如何在Max os配置java环境变量,这里不再赘述。 计算机->右键->属性...