
java
文章平均质量分 77
middlekingt
工作2年
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java单例模式的三种情况
作为对象的创建模式[GOF95], 单例模式确保某一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。这个类称为单例类。 注:本文乃阎宏博士的《Java与模式》一书的第十五章。 引言 单例模式的要点 单例单例 显然单例模式的要点有三个;一是某各类只能有一个实例;二是它必须自行创建这个事例;三是它必须自行向整个系统提供这个实例。在下面的对象图转载 2012-08-28 16:37:57 · 946 阅读 · 0 评论 -
什么是Servlet以及Servlet的优越性
Servlet是用Java编写的Server端程序,它与协议和平台无关。Servlet运行于Java-enabled Web Server中。Java Servlet可以动态地扩展Server的能力,并采用请求-响应模式提供Web服务。 最早支持Servlet技术的是JavaSoft的Java Web Server。此后,一些其它的基于Java的Web Server开始支持标准的S转载 2012-10-07 19:11:45 · 665 阅读 · 0 评论 -
论持久化的理解
什么是持久化? 持久化(Persistence),即把数据(如内存中的对象)保存到可永久保存的存储设备中(如磁盘)。持久化的主要应用是将内存中的对象存储在关系型的数据库中,当然也可以存储在磁盘文件中、XML数据文件中等等。 持久化是将程序数据在持久状态和瞬时状态间转换的机制。 JDBC就是一种持久化机制。文件IO也是一种持久化机制。 将鲜肉冷藏,吃的时候再解冻的方原创 2012-08-04 15:17:49 · 699 阅读 · 0 评论 -
理解ThreadLocal
ThreadLocal是什么 早在JDK 1.2的版本中就提供java.lang.ThreadLocal,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序。 ThreadLocal很容易让人望文生义,想当然地认为是一个“本地线程”。其实,ThreadLocal并不是一个Thread,而是Thread的局部变量,也许把它转载 2012-10-07 19:59:20 · 537 阅读 · 0 评论 -
深入研究Servlet线程安全性问题
摘 要:介绍了Servlet多线程机制,通过一个实例并结合Java 的内存模型说明引起Servlet线程不安全的原因,给出了保证Servlet线程安全的三种解决方案,并说明三种方案在实际开发中的取舍。 关键字:Servlet 线程安全 同步 Java内存模型 实例变量 Servlet/JSP技术和ASP、PHP等相比,由于其多线程运行而具有很高的执行效率。由于Serv转载 2012-10-07 20:07:10 · 647 阅读 · 0 评论 -
Java 内存解析
栈、堆、常量池等虽同属Java内存分配时操作的区域,但其适用范围和功用却大不相同。本文将深入Java核心,简单讲解Java内存分配方面的知识。 首先我们先来讲解一下内存中的各个区域。 stack(栈):存放基本类型的数据和对象的引用,即存放变量。 如果存放的事基本类型的数据(非静态变量),则直接将变量名和值存入stack中的内存中; 如果是引用类型,则将变量名存入栈,然后指转载 2012-09-02 22:49:46 · 574 阅读 · 0 评论 -
Hibernate之OID
在关系数据库表中,主键用来识别记录,并保证每天记录的唯一性。在Java语言中,通过比较两个变量所引用对象的内存地址是否相同,或者比较两百变量引用的对象之是否相同来判断两对象是否相等。Hibernate为了解决二者之间的不同,使用对象标识符(OID)来标识对象的唯一性。OID是关系数据库中主键在Java对象模型中的等价物。在运行时,hibernate根据OID来维持Java对象和数据库表中的对应关系转载 2012-09-15 21:35:40 · 1046 阅读 · 0 评论 -
JDBC连接MySQL数据库及示例
JDBC是Sun公司制定的一个可以用Java语言连接数据库的技术。 一、JDBC基础知识 JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为数据库开发人员提供了一个标准的API,据此可以构建转载 2013-03-14 12:25:30 · 1073 阅读 · 0 评论 -
Java继承关系、构造器的内存分析
由于ZangXT对这个问题提出了质疑, 所以, 在文末, 又追加了一个测试使用super绕过多态的例子, 以期证明, 构造一个对象的时候, 隐含的持有了父类的引用(或者以更合适的名词称呼: 向上代理) [java] view plaincopy package test1; /** * *转载 2012-09-15 23:06:08 · 998 阅读 · 1 评论 -
Struts2中的OGNL表达式
浅析值栈 ValueStack对象相当于一个栈,它贯穿整个Action的生命周期,每个Action类的对象实例都会拥有一个ValueStack对象 当Struts2接收到一个*.action请求后,并不是直接调用Action方法,而是先将Action类的相应属性放到ValueStack对象的顶层节点 值栈也位于内存中,它也是和parameters、request、session、applic转载 2012-09-11 21:39:28 · 939 阅读 · 0 评论 -
正则表达式工作原理
粗浅地编写正则表达式是造成性能瓶颈的主要原因,但还有很多可以改进正则表达式效率的地方。两个正则表达式匹配相同的文本并不意味着他们具有同等的速度。 许多因素影响正则表达式的效率,首先,正则表达式适配的文本千差万别,部分匹配时比完全不匹配所用的时间要长。每种浏览器的正则表达式引擎也有不同的内部优化。 为了有效地使用正则表达式,重要的是理解它们的工作原理。下面是一个正则表达式转载 2012-09-27 11:33:14 · 706 阅读 · 0 评论 -
Java线程join()方法的用处
run() 和start() 是大家都很熟悉的两个方法。把希望并行处理的代码都放在run() 中;stat() 用于自动调用run(),这是JAVA的内在机制规定的。并且run() 的访问控制符必须是public,返回值必须是void(这种说法不准确,run() 没有返回值),run()不带参数。 闲话少说,我们要讲的是join(),我们首先来看个例子:转载 2012-09-02 23:24:50 · 589 阅读 · 0 评论 -
关于runtimeException异常
Java中采用了强制异常捕捉机制,这样一方面提高了程序的可靠性,不过有时候也带来一些麻烦。比如: int i= Integer.parseInt("33"); 这个我知道它不可能会抛出异常,但是不捕捉异常的话就过不了编译这关,当然这个代码没有意义的。 Java中所有异常或者错误都继承Throwable: 1.Error:所有都继承自Error,表示致命的错误,比如内存不够,字节码不合法等。转载 2012-09-03 10:42:30 · 986 阅读 · 0 评论 -
Java中涉及byte、short和char类型的运算操作
Java中涉及byte、short和char类型的运算操作首先会把这些值转换为int类型,然后对int类型值进行运算,最后得到int类型的结果。因此,如果把两个byte类型值相加,最后会得到一个int类型的结果。如果需要得到byte类型结果,必须将这个int类型的结果显式转换为byte类型。例如,下面的代码会导致编译失败: class BadArithmetic { sta转载 2012-09-02 23:21:24 · 2507 阅读 · 0 评论 -
Java之运行时异常与编译时异常区别
Java中用2种方法处理异常: 1.在发生异常的地方直接处理; 2.将异常抛给调用者,让调用者处理。 Java异常可分为3种: (1)编译时异常:Java.lang.Exception (2)运行期异常:Java.lang.RuntimeException (3)错误:Java.lang.Error Java.lang.Except转载 2012-09-03 01:06:52 · 1076 阅读 · 0 评论 -
运算符重载
1什么是运算符重载 所谓重载,就是重新赋予新的含义。函数重载就是对一个已有的函数赋予新的含义,使之实现新功能。 运算符也可以重载。实际上,我们已经在不知不觉之中使用了运算符重载。 现在要讨论的问题是: 用户能否根据自己的需要对C++已提供的运算符进行重载,赋予它们新的含义,使之一名多用。譬如,能否用“+”号进行两个复数的相加。在C++中不能在程序中直接用运算符“+”对复数进行相加运算。用户必转载 2012-09-02 23:46:43 · 1196 阅读 · 0 评论 -
垃圾回收机制
一.谁在做Garbage Collection? 一种流行的说法:在C++里,是系统在做垃圾回收;而在Java里,是Java自身在做。 在C++里,释放内存是手动处理的,要用delete运算符来释放分配的内存。这是流行的说法。确切地说,是应用认为不需要某实体时,就需用delete 告诉系统,可以回收这块空间了。这个要求,对编码者来说,是件很麻烦、很难做到的事。随便上哪个BBS,在C/C转载 2012-09-04 00:45:11 · 726 阅读 · 0 评论 -
Spring AOP
Spring 是由多个部分组成,包括AOP、DAO、Conetxt、Web、MVC,并且他们都已IoC 容器为基础。Spring 这么多功能都是由于其IoC 容器的特性,实现了对多种框架的集成,但 AOP 是个例外,它不是对某个框架的集成,而是提供了面向方面编程的功能,你可以自由选择是否使用AOP。AOP 提供了强大的中间件解决方案,这使得IoC 容器更加完善。 我们可以把AOP 看做是转载 2012-09-04 00:47:05 · 742 阅读 · 0 评论 -
详解Spring中bean的scope
如何使用spring的作用域: 这里的scope就是用来配置spring bean的作用域,它标识bean的作用域。在spring2.0之前bean只有2种作用域即:singleton(单例)、non-singleton(也称prototype), Spring2.0以后,增加了session、request、global session三种专用于Web应用程序上下文的Bean。因此转载 2012-09-11 01:32:34 · 741 阅读 · 0 评论 -
java的一些基本知识
对象与基本类型 几乎所有Java初学者都被告知,在Java里一切都被视为对象(Object),操纵对象的表示符实际上时对象的一个引用(Reference)。例如 String str; //注意!此处创建了一个引用,而非对象 str=new String(“Hello”);//这里创建了一个String对象并与str相关联 通转载 2012-09-09 23:12:45 · 1072 阅读 · 0 评论 -
break return continue 区别
1、return 语句的作用 (1) return 从当前的方法中退出,返回到该调用的方法的语句处,继续执行 (2) return 返回一个值给调用该方法的语句,返回值的数据类型必须与方法的声明中的返回值的类型一致,可以使用强制类型转换来是数据类型一致 (3) return 当方法说明中用void声明返回类型为空时,应使用这种格式,不返回任何值转载 2013-03-14 14:42:55 · 1005 阅读 · 0 评论