自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(43)
  • 收藏
  • 关注

转载 数据库的查询优化技术

数据库系统是管理信息系统的核心,基于数据库的联机事务处理(OLTP)以及联机分析处理(OLAP)是银行、企业、政府等部门最为重要的计算机应用之一。从大多数系统的应用实例来看,查询操作在各种数据库操作中所占据的比重最大,而查询操作所基于的SELECT语句在SQL语句中又是代价最大的语句笔者在应用项目的实施中发现,许多程序员在利用一些前端数据库开发工具(如PowerBuilder、Delphi等)

2013-07-31 17:53:40 502

转载 JDK 7 新特性 - 总览

JDK7 新特性系列之一 总览JDK 全称 Java Development Kit,是一套供 Java 开发人员使用的软件开发工具,其中包括了 JRE(Java Runtime Environment),以及 Java、Jar、Javac、 Javap、Javah、Javaws 等工具。自从 Sun 公司于 2006 年 12 月 11 日发布 JDK6 到 Oracle 公司于 2011

2013-07-31 16:35:14 531

转载 单元测试利器 JUnit 4

引言毋庸置疑,程序员要对自己编写的代码负责,您不仅要保证它能通过编译,正常地运行,而且要满足需求和设计预期的效果。单元测试正是验证代码行为是否满足预期的有效手段之一。但不可否认,做测试是件很枯燥无趣的事情,而一遍又一遍的测试则更是让人生畏的工作。幸运的是,单元测试工具 JUnit 使这一切变得简单艺术起来。JUnit 是 Java 社区中知名度最高的单元测试工具。它诞生于 1997 年,由

2013-07-31 16:06:46 574

转载 Java Web 高性能开发,第 2 部分: 前端的高性能

引言在前端优化的第一部分中,主要讲解了对静态资源的一些优化措施,包括图片压缩、CSS Sprites 技术、GZIP 压缩等。这一部分,本文将讲解前端优化里重要的 Flush 机制、动静分离、HTTP 持久连接、HTTP 协议灵活应用、CDN 等。结合这些技术或思想,相信会使 Java Web 应用程序的性能更上一层楼。回页首Flush 机制的使用实际上在 Web 技术中,Flus

2013-07-31 15:57:24 751

转载 Java Web 高性能开发,第 1 部分: 前端的高性能

引言前端的高性能部分,主要是指减少请求数、减少传输的数据以及提高用户体验,在这个部分,图片的优化显得至关重要。许多网站的美化,都是靠绚丽的图片达到的,图片恰恰是占用带宽的元凶。每个 img 标签,浏览器都会试图发起一个下载请求。本文就详细介绍了图片优化的几种方式,介绍了使用的工具以及优化后的结果。回页首图片压缩减少图片的大小,可以明显的提高性能,而对于已有图片,要想减少图片的大

2013-07-31 15:56:16 641

转载 Java 代码优化过程的实例介绍

衡量程序的标准衡量一个程序是否优质,可以从多个角度进行分析。其中,最常见的衡量标准是程序的时间复杂度、空间复杂度,以及代码的可读性、可扩展性。针对程序的时间复杂度和空间复杂度,想要优化程序代码,需要对数据结构与算法有深入的理解,并且熟悉计算机系统的基本概念和原理;而针对代码的可读性和可扩展性,想要优化程序代码,需要深入理解软件架构设计,熟知并会应用合适的设计模式。首先,如今计算机系统的存储

2013-07-31 15:54:06 417

转载 基于 Annotation 拦截的 Spring AOP 权限验证方法

在 Web 开发过程中,一个非常理想的开发过程是,开发人员在开发中并不需要关心权限问题,不需要在 Java 方法中写很多逻辑判断去判断用户是否具有合适的角色和权限,这样开发会花费非常多的人力成本,因为所有的开发人员都需要了解关于权限的详细内容,也非常不容易进行后期维护。我们希望有专门的很少数量的开发人员了解权限内容,并且可以随时方便的修改和配置。于是,我们使用 Annotation,在 Java

2013-07-31 15:33:32 588

转载 轻松使用线程: 不共享有时是最好的

编写线程安全类是困难的。它不但要求仔细分析在什么条件可以对变量进行读写,而且要求仔细分析其它类能如何使用某个类。 有时,要在不影响类的功能、易用性或性能的情况下使类成为线程安全的是很困难的。有些类保留从一个方法调用到下一个方法调用的状态信息,要在实践中使这样的类成为线程安全的是困难的。管理非线程安全类的使用比试图使类成为线程安全的要更容易些。非线程安全类通常可以安全地在多线程程序中使用,只要您

2013-07-30 17:13:21 443

转载 java高级进阶关于java多线程的应用 ThreadLocal多线程实例详解

ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程” 。其实,ThreadLocal并不是一个 Thread,而是 Thread 的局部变量,也许把它命名为 ThreadLocalVariable更容易让人理解一些。当使用 ThreadLocal 维护变量时,ThreadLocal 为每个使用该变量的线程提供独立的变量副本,所以每一个线程都可以独立地改变自己的副本,而不会影响其

2013-07-30 16:51:36 636

转载 轻松使用线程: 减少争用

当我们说一个程序“太慢”时,我们通常是指两个性能属性 — 等待时间和可伸缩性 — 中的一个。 等待时间指完成一个给定任务所花费的时间,而 可伸缩性则指随着负载的增加或给定计算资源的增加,程序的性能将怎样变化。严重的争用对等待时间和可伸缩性都不利。 争用为什么是这样一个问题争用同步之所以慢,是因为它涉及多个线程切换和系统调用。当多个线程争用同一个管程时,JVM 将不得不维护一个等待该管程

2013-07-30 16:35:36 498

转载 Java单例对象同步问题探讨

单例对象(Singleton)是一种常用的设计模式。在Java应用中,单例对象能保证在一个JVM中,该对象只有一个实例存在。正是由于这个特点,单例对象通常作为程序中的存放配置信息的载体,因为它能保证其他对象读到一致的信息。例如在某个服务器程序中,该服务器的配置信息可能存放在数据库或文件中,这些配置数据由某个单例对象统一读取,服务进程中的其他对象如果要获取这些配置信息,只需访问该单例对象即可。这种方

2013-07-30 13:49:56 435

转载 以一个固定、全局次序获取多个锁

当两个或多个线程互相等待时被阻塞,就会发生死锁。例如,第一个线程被第二个线程阻塞,它在等待第二个线程持有的一个资源。而第二个线程在获得第一个线程持有的某个资源之前不会释放这个资源。由于第一个线程在获得第二个线程持有的那个资源之前不会释放它自己所持有的资源,而第二个线程在获得第一个线程持有的一个资源之前也不会释放它所持有的资源,于是这两个线程就被死锁。  在编写多线程代码时,死锁是最难处理的问题

2013-07-30 11:53:42 681

转载 Java实时多任务调度过程中的安全监控设计

在一系列关联的多任务的实时环境中,如果有一个任务发生失败,可能导致所有任务产生连锁反应,从而造成调度失控的局面。特别是对于核心控制设备尤其重要,为了解决这个问题,必须对每个任务进行实时监控。问题分析在JAVA环境中,一个任务一般是由一个独立线程来引导实现的,独立线程可能调用一系列子线程。如果在执行过程中,某一个线程发生异常(产生的原因很多,比如软件升级、运行环境改变、系统资抢占等),那么该

2013-07-30 11:23:21 528

转载 使用JAVA建立稳定的多线程服务器

Java语言是完全面向对象的,它的线程机制和对象序列化特别容易使用,使用Java来建立一套多线程服务器要比使用其它语言方便的多,如果你再把它的异常处理机制利用好,那么你就可以建立一个商业级的多线程服务器了。由于采用了消息队列和Socket传输方式,所以不会出现丢消息的问题。这套服务器可以作为实时聊天服务器、多人协同的协作服务器等等。消息系统的建立这套服务器的消息系统采用的是对象传输的机制,

2013-07-29 18:10:19 539

转载 Java 技术: 使您轻松地进行多线程应用程序编程(生产者消费者模式的优化)

多线程应用程序通常利用生产者-消费者编程方案,其中由生产者线程创建重复性作业,将其传递给作业队列,然后由消费者线程处理作业。虽然这种编程方法很有用,但是它通常导致重复的代码,这对于调试和维护可能是真正的问题。为了解决这个问题并促进代码重用,我们创建了 Consumer 类。 Consumer 类包含所有用于作业队列和消费者线程的代码,以及使这两者能够结合在一起的逻辑。这使我们可以专注于业务逻辑

2013-07-29 17:46:34 714

转载 Java 生产者消费者问题

生产者消费者问题是研究多线程程序时绕不开的问题,它的描述是有一块生产者和消费者共享的有界缓冲区,生产者往缓冲区放入产品,消费者从缓冲区取走产品,这个过程可以无休止的执行,不能因缓冲区满生产者放不进产品而终止,也不能因缓冲区空消费者无产品可取而终止。       解决生产者消费者问题的方法有两种,一种是采用某种机制保持生产者和消费者之间的同步,一种是在生产者和消费者之间建立一个管道。前一种有较高

2013-07-29 16:04:40 454

转载 通配符与正则表达式

通配符与正则表达式很容易混淆,首先要明白二者是不同的,个人感觉通配符用于Linux的shell命令(如文件名相关操作)中,而正则表达式用于文本内容中的字符串搜索和替换等。通配符是Linux系统本身就支持的,而正则表达式用于vim编辑器或awk程序,这些文本处理工具正是由于支持正则表达式才变得强大。通配符[a-z]或[12]:匹配方括号中指定范围内的单个字符或方括号列出的其中一个字符

2013-07-26 13:41:03 501

转载 JBoss7配置指南(三)

4.管理任务4.1 网络接口和端口4.1.1 网络接口声明JBoss AS 7 在整个配置文件中都引用命名的接口。一个网络接口通过指定一个逻辑名和选择一个物理接口来声明。[standalone@localhost:9999 /] :read-children-names(child-type=interface){   "outcome" => "success

2013-07-24 09:22:51 768

转载 编写多线程的 Java 应用程序

几乎所有使用 AWT 或Swing编写的画图程序都需要多线程。但多线程程序会造成许多困难,刚开始编程的开发者常常会发现他们被一些问题所折磨,例如不正确的程序行为或死锁。在本文中,我们将探讨使用多线程时遇到的问题,并提出那些常见陷阱的解决方案。线程是什么?一个程序或进程能够包含多个线程,这些线程可以根据程序的代码执行相应的指令。多线程看上去似乎在并行执行它们各自的工作,就像在一台计算机上

2013-07-23 16:49:51 411

转载 线程调度

有两种调度模型:分时调度模型和抢占式调度模型。分时调度模型是指让所有的线程轮流获得cpu的使用权,并且平均分配每个线程占用的CPU的时间片这个也比较好理解。java虚拟机采用抢占式调度模型,是指优先让可运行池中优先级高的线程占用CPU,如果可运行池中的线程优先级相同,那么就随机选择一个线程,使其占用CPU。处于运行状态的线程会一直运行,直至它不得不放弃CPU。一个线程会因为以下

2013-07-23 16:26:51 546

转载 Java 理论与实践: 正确使用 Volatile 变量

Java 语言中的 volatile 变量可以被看作是一种 “程度较轻的 synchronized”;与 synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。本文介绍了几种有效使用 volatile 变量的模式,并强调了几种不适合使用 volatile 变量的情形。锁提供了两种主要特性:

2013-07-23 14:18:02 382

转载 关于 java.util.concurrent 您不知道的 5 件事,第 2 部分

并发 Collections 提供了线程安全、经过良好调优的数据结构,简化了并发编程。然而,在一些情形下,开发人员需要更进一步,思考如何调节和/或限制线程执行。由于java.util.concurrent 的总体目标是简化多线程编程,您可能希望该包包含同步实用程序,而它确实包含。本文是 第 1 部分 的延续,将介绍几个比核心语言原语(监视器)更高级的同步结构,但它们还未包含在 Collec

2013-07-22 10:59:49 424

转载 关于 java.util.concurrent 您不知道的 5 件事,第 1 部分

Concurrent Collections 是 Java™ 5 的巨大附加产品,但是在关于注释和泛型的争执中很多 Java 开发人员忽视了它们。此外(或者更老实地说),许多开发人员避免使用这个数据包,因为他们认为它一定很复杂,就像它所要解决的问题一样。事实上,java.util.concurrent 包含许多类,能够有效解决普通的并发问题,无需复杂工序。阅读本文,了解 java.util

2013-07-22 10:57:46 430

转载 java模拟并发操作进行压力测试

http://www.qqread.com/java/2010/01/c488170.htmlimport java.io.BufferedReader;import java.io.File;import java.io.FileInputStream;import java.io.InputStreamReader;import java.io.

2013-07-22 10:04:38 2252

转载 JBOSS 7创建客户端通过JNDI调用 EJB

JBOSS 6,7调用通过JNDI查找EJB的方法和JBOSS5不一样。 JBOSS 5 Java代码  Properties props = new Properties();  props.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory")

2013-07-22 08:57:38 1401

转载 关于synchronized,对象锁的理解

要想很好的理解synchronized 必须理解好什么是对象锁。关于对象锁的理解:   刚开始真的有点难理解这个对象锁的概念,在网上搜了一大堆,感觉还是不怎么清晰。今天在次理解了下对象锁,突然发现这个对象锁并不难理解,关键是你要明白这个对象指的是什么?[size=medium]其实这个对象指的是拥有synchronized修饰的函数,或者是代码块的一个类的实例。当某个线程访问该

2013-07-19 11:02:36 2427

转载 Java 程序中的多线程

看一看开发和使用线程是多么容易Neel V. Kumar (neelvk@terway.com), 软件工程师, Terway.com简介: 由于在语言级提供了线程支持,在 Java 语言中使用多线程要远比在 C 或 C++ 中来得简单。本文通过简单的程序示例展现了在 Java 程序中线程编程的简单性。在学习完本文后,用户应该能够编写简单、多线程的程序。发布日期

2013-07-19 09:44:02 463

转载 Java 中的进程与线程

概述进程与线程,本质意义上说, 是操作系统的调度单位,可以看成是一种操作系统 “资源” 。Java 作为与平台无关的编程语言,必然会对底层(操作系统)提供的功能进行进一步的封装,以平台无关的编程接口供程序员使用,进程与线程作为操作系统核心概念的一部分无疑亦是如此。在 Java 语言中,对进程和线程的封装,分别提供了 Process 和 Thread 相关的一些类。本文首先简单的介绍如何使用这些

2013-07-18 09:03:34 667

转载 JbossCache使用

1 在实际工作中的应用 看了上面的说明,是不是对Jboss Cache有了一定的了解了哪?在数据库缓存的实际应用中,Jboss Cache一般用来缓存两种类型的数据,一种是频繁变化的数据,比如说证券业的行情,1秒钟更新一次,要读取N多次,放到数据库中根本不可行。一种是不太变化的数据,比说如用户,组织,权限的数据,不会经常变化,但是会经常check用户的权限,这类表也适合放入到缓存中保存

2013-07-17 15:59:42 1352 1

转载 jbosscache

JBossCache 讲解说明是什么?一个树形结构、支持集群、支持事务的缓存技术。有什么作用?JBoss Cache是针对Java应用的企业级集群解决方案,其目的是通过缓存需要频繁访问的Java对象,提高应用的可用性并大幅度提升应用的整体性能。JBoss Cache这样的分布式缓存扮演的是一个处于应用服务前端和数据库间的中间层的角色,提供对持久性数据状态在内存中的快速访

2013-07-17 11:15:56 868

转载 HTML5 基础知识,第 1 部分

亲自体验 HTML5Grace Walker, IT 顾问, Walker Automated Services简介: HTML5 代表了 Web 业务和云业务在实现方式上的里程碑式改变。本文是 4 部分系列文章的第 1 部分,该系列旨在介绍 HTML5 的演变,首先介绍 HTML5 中新增加的标记和页面结构,提供有关 Web 页面设计的高级信息、表单的创建、API 的使用和价值、

2013-07-17 08:59:19 813

转载 注释驱动的 Spring cache 缓存介绍

概述Spring 3.1 引入了激动人心的基于注释(annotation)的缓存(cache)技术,它本质上不是一个具体的缓存实现方案(例如 EHCache 或者 OSCache),而是一个对缓存使用的抽象,通过在既有代码中添加少量它定义的各种 annotation,即能够达到缓存方法的返回对象的效果。Spring 的缓存技术还具备相当的灵活性,不仅能够使用 SpEL(Spring Exp

2013-07-16 09:33:23 836

转载 EhCache 缓存系统简介

EhCache 是一个纯 Java 的进程内缓存框架,具有快速、精干等特点,是 Hibernate 中默认的 CacheProvider。下图是 EhCache 在应用程序中的位置:图 1. EhCache 应用架构图EhCache 的主要特性有:快速;简单;多种缓存策略;缓存数据有两级:内存和磁盘,因此无需担心容量问题;缓存数据会在虚拟机重启的过程中写入磁盘;可以通过

2013-07-16 09:21:28 432

转载 使用缓存构建更快的 Web 应用程序

使用 Java 缓存系统缓存频繁查看的数据Kellen F. Bombardier, 软件工程师, IBM简介: 使用 Java™ 技术的 Web 开发人员可以使用缓存实用程序快速提升他们的应用程序的性能。Java 缓存系统(Java Caching System,JCS)是一个用于 Java 应用程序的强大分布式缓存系统,它是拥有简单 API 的高度可配置的工具。本文将概述

2013-07-16 09:09:51 472

转载 TUSCANY SCA JAVA (五) 用其他脚本语言实现组件服务

TUSCANY SCA JAVA (五) 用其他脚本语言实现组件服务分类: Java tuscany sca java2012-07-26 22:08 435人阅读 评论(0)收藏 举报java脚本语言n2interfaceserver先来看看整个项目的代码架构com.ajun.tuscany.server包主要是加减乘除法的java

2013-07-15 17:38:45 720

转载 JAVA处理Excel的三种实现方式(二)

awm96 2012-05-15 13:49createExcel(excel6);//modifyExcel(excel2);}static void readExcel(String filePath) throws Exception{//HSSFWorkbook(用于处理xls)和XSSFWorkbook(用于处理xlsx)都实现了Workbook接口,所以可以直接

2013-07-15 14:57:29 17092

转载 改善Hibernate性能――Hibernate的精细化使用总结

Hibernate使用不好就很容易出现性能问题。在这里总结一些方法以供参考。1.按需加载多对一的情况下一方的加载,一对多的情况多方的加载,默认都是延迟加载,为避免产生多条语句而导致多次DB往返,可以改变抓取策略,让Hibernate采用表连接来一次获取。例如,Item和History是一对多。使用Hsql Java代码  From Item item j

2013-07-09 17:17:29 627

转载 hibernate批量操作优化

Hibernate批量更新和批量删除批量添加 1(转)(2012-06-12 19:29:22)转载▼通常,在一个Session对象的缓存中只存放数量有限的持久化对象,等到Session对象处理事务完毕,还要关闭Session对象,从而及时释放Session的缓存占用的内存。批量处理数据是指在一个事务中处理大量数据。以下程序在一个事务中批量更新CUSTOMERS表中年龄

2013-07-09 17:09:27 706

转载 java_sca

[ 来源:Java| 作者:Java | 时间:2007-7-20 |去论坛]     SCA基础       什么是应用程序?一种结论认为它是由一组在一起协同工作的软件组件集合构成。所有的这些软件组件可以用相同的技术当然也可以由不同的技术创建。它们可以运行在同一机器的同一进程中也可以在不同的进程中,当然也可以跨越多个机器。然而应用程序要正常工作,需要两样东西:一、有一

2013-07-09 16:00:29 772

转载 maven

简介Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。目前,绝大多数开发人员都把 Ant 当作 Java 编程项目的标准构建工具。遗憾的是,Ant 的项目管理工具(作为 make的替代工具)不能满足绝大多数开发人员的需要。通过检查 Ant 构建文件,很难发现项目的相关性信息和其它元信息(如开发人员/拥有者、版本或站点主页)。M

2013-07-09 15:08:37 390

空空如也

空空如也

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

TA关注的人

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