- 博客(40)
- 收藏
- 关注
原创 深入解析Java对象的hashCode和hashCode在HashMap的底层数据结构的应用
一、java对象的比较 等号(==):对比对象实例的内存地址(也即对象实例的ID),来判断是否是同一对象实例;又可以说是判断对象实例是否物理相等; equals():对比两个对象实例是否相等。当对象所属的类没有重写根类Object的equals()方法时,equals()判断的是对象实例的ID(内存地址),是否是同一对象实例;该方法就是使用的等号(==)的判断结果。...
2016-01-02 19:45:01
163
原创 正则表达式
句点:句点匹配所有字符,包含空格、TAB甚至是换行符。方括号:句点的优点是通用,缺点也是通用。为解决句点符号匹配范围过于广泛这一问题,你可以在方括号(“[]”)里面指定看来有意义的字符。此时,只有方括号里面指定的字符才参与匹配。也就是说,正则表达式“t[aeio]n”只匹配“tan”、“Ten”、“tin”和“ton”。但“Toon”不匹配,因为在方括号之内你只能匹配单个字符 .方括号...
2012-01-29 21:01:09
175
原创 java反射机制
问题:在运行时,对一个JAVA类,能否知道属性和方法;能否调用它的任意方法?答案是可以的,JAVA提供一种反射机制可以实现。 目录什么是JAVA的反射机制JDK中提供的Reflection APIJAVA反射机制提供了什么功能获取类的Class对象获取类的Fields获取类的Method获取类的Constructor新建类的实例 ...
2011-12-12 23:44:17
137
原创 JAVA内部类的作用、方法、使用
引用:JAVA内部类的作用、方法、使用今天,因为在程序中使用内部类[事件],但要将外部类传递到调用类里面。在内部类如何调用外部类,通过网络搜索,找到了方法:outclass.this,可以在内部类里引用外部类对象。当然,还有其他的一些设计与说明,非常的好! 内部类:一个内部类的定义是定义在另一个内部的类。原因是:1.一个内部类的对象能够访问创建它...
2011-11-16 22:40:07
114
原创 java虚拟机
1 JVM简介JVM是我们Javaer的最基本功底了,刚开始学Java的时候,一般都是从“Hello World”开始的,然后会写个复杂点class,然后再找一些开源框架,比如Spring,Hibernate等等,再然后就开发企业级的应用,比如网站、企业内部应用、实时交易系统等等,直到某一天突然发现做的系统咋就这么慢呢,而且时不时还来个内存溢出什么的,今天是交易系统报了Stack...
2011-08-23 22:50:23
136
原创 jvm参数配置说明
Java虚拟机(JVM)参数配置说明 在Java、J2EE大型应用中,JVM非标准参数的配置直接关系到整个系统的性能。JVM非标准参数指的是JVM底层的一些配置参数,这些参数在一般开发中默认即可,不需要任何配置。但是在生产环境中,为了提高性能,往往需要调整这些参数,以求系统达到最佳新能。另外这些参数的配置也是影响系统稳定性的一个重要因素,相信大多数Java开发人员都见过“Out...
2011-08-23 22:45:02
114
原创 泛型简介
在Java SE 1.5之前,没有泛型的情况的下,通过对类型Object的引用来实现参数的“任意化”,“任意化”带来的缺点是要做显式的强制类型转换,而这种转换是要求开发者对实际参数类型可以预知的情况下进行的。对于强制类型转换错误的情况,编译器可能不提示错误,在运行的时候才出现异常,这是一个安全隐患。 泛型的好处是在编译的时候检查类型安全,并且所有的强制转换都是自动和隐式的,提高代码的重用率。 一...
2011-08-22 23:13:03
96
原创 java与模式笔记
1, 模式:人们在自己的环境中不断发现问题和寻找问题的解决方案的时候,发现有些问题以及解决方案不断变换面孔重复 出现,但是在不同的面孔后面有着共同的本质,这个本质就是模式。 2, UML:统一建模语言。 UML语言有以下重要功能: (1)可视化功能,可以帮助人理解 (2)说明功能 ...
2011-02-23 23:36:34
98
原创 struts2表单级验证
struts2表单级验证,以最简单的登陆页面的用户名密码为例。(1)新建login.jsp<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%><%@ taglib uri="/struts-tags" prefix="s"
2010-11-08 23:26:37
121
原创 struts2第一个实例
struts2框架第一个实例 (1)新建web项目,在项目中添加struts2的核心类库。 commons-logging-1.0.4.jar freemarker-2.3.13.jar ognl-2.6.11.jar struts2-core-2.1.6.jar xwork-2.1.2 commons-fileuploa...
2010-11-07 23:54:19
122
原创 java工程转化为web工程
Eclipse下新建java工程后,将工程手工改造为web工程: 修改工程目录下的.project文件 普通工程下的该文件内容是:<?xml version="1.0" encoding="UTF-8"?><projectDescription> <name>xxx</name> <comment&
2010-11-07 21:03:43
110
原创 Oracle数据库添加、删除用户、更改用户密码、查看用户
添加用户(随着用户的创建,自动产生与用户同名的schema)CREATE USER "TESTER" PROFILE "DEFAULT" IDENTIFIED BY "TESTER" DEFAULT TABLESPACE "TESTDATA" TEMPORARY TABLESPACE "TESTTEMP" ACCOUNT UNLOCK; 赋权(说实话,这些权限是开发中使用的权限,如果用户...
2010-08-02 16:16:09
144
原创 sql21自学通笔记(一)
一、sql 简介 sql 最初被称作“结构化查询语言”,是一种非过程语言。sql的最大优势在于他是一种真正的跨平台的交互式语言,是由于他被程序员在第四代的编程语言中调用,第四代编程语言能用少量的代码做大量的工作。 二、集合运算1,union和union all (数据合并) union 返回两个查询并去除充分的数据。 union all 和union一样是对两...
2010-07-26 16:58:59
214
原创 Hibernate自动生成表
以下代码可以实现生成表:package test; import java.io.File; import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; imp...
2010-07-20 17:37:16
106
原创 本地计算机上的OracleOraDb10g_home1TNSListener 服务启动又停止了
一、问题 本地计算机上的OracleOraDb10g_home1TNSListener 服务启动又停止了 二、问题描述Oracle:本地计算机上的OracleOraDb10g_home1TNSListener服务启动后又停止了。一些服务自动停止,如果它们没有什么可做的,例如 \”性能日志和警报 \”服务。 三、问题原因出现情况:原来正常,IP地址变了后就不能启动四、解决方法 ...
2010-07-19 11:26:16
113
原创 缓存(Cache)介绍
Cache简介:缓存(Cache )是计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝,应用程序在运行时直接读写缓存中的数据,只在某些特定时刻按照缓存中的数据来同步更新数据存储源。缓存的物理介质通常是内存,而永久性数据存储源的物理介质通...
2010-07-13 11:36:43
575
原创 数据库中的悲观锁
为了能得到较好的性能,一般数据库都有并发机制。不过同时带来了数据访问的冲突问题。为了解决数据访问的冲突,大多数数据库采用了数据的锁定。 数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。 悲观锁:顾名思义就是对数据之间的冲突采用取一种悲观的态度,认为数据之间的冲突肯定会发生。所以在数据进行读取的时候就对数据进行了锁定,其他用户是不能读取和修改的。 ...
2010-07-12 17:48:21
119
原创 数据库事务的隔离级别
事务(Transaction)是并发控制的基本单位。所谓的事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。例如,银行转账工作:从一个账号扣款并使另一个账号增款,这两个操作要么都执行,要么都不执行。所以,应该把它们看成一个事务。事务是数据库维护数据一致性的单位,在每个事务结束时,都能保持数据一致性。 针对上面的描述可以看出,事务的提出主要是...
2010-07-08 20:38:07
96
原创 持久化对象的几个状态
持久化对象有以下三种状态: (1)瞬时对象(transient Objects) 使用new操作符初始化的对象不是立刻就持久化的,他的状态是瞬时的,也就是说他们没有任何跟数据库表相关联的行为,只要应用不在引用这个对象(不再被任何其他对象所引用),他们的状态就会丢失,并由垃圾回收机制回收。 (2)持久化对象(Persist Objects) 持久实例是任何具有数...
2010-07-07 16:19:33
157
原创 JUNIT应用
Junit测试是程序员测试,即所谓白盒测试,因为程序员知道被测试的软件如何(How)完成功能和完成什么样(What)的功能。 Junit本质上是一套框架,即开发者制定了一套条条框框,遵循这此条条框框要求编写测试代码,如继承某个类,实现某个接口,就可以用Junit进行自动测试了。 下面讲一个简单的应用: (1)在项目的lib目录下加入junit的jar包。 (2)在web项目中n...
2010-07-07 15:55:51
152
原创 Bad version number in .class file问题
项目启动时碰到了这样一个问题提示"java.lang.UnsupportedClassVersionError: Bad version number in .class file ”,它说在类文件中发现了错误的版本,导致项目启动不起来。通过网上查询资料,终于发现问题所在。 这是因为中有些类或接口继承的jar是在jdk6.0的版本下编写的,如果在Eclipse中使用的jdk5.0的话...
2010-07-03 18:23:09
172
原创 Hibernate数据关联关系:一对多
数据关联关系中的一对多举例:用户和住址(一个用户可能有一个或多个住址)1.创建用户表和住址表---用户表----create table person( pid varchar2(32) primary key, pname varchar2(32) not null)----住址表----create table address( aid varch...
2010-07-01 15:52:07
104
原创 数据关联关系:一对一
要实现Hibernate中一对一的数据关联关系有两种方式: 1, 主键关联,即两个表共享一个主键 2,唯一外键关联,即在一个表中记录一个外键字段,参照另一张表的主键 一、主键关联 1. 首先创建用户表(person) 和身份证表(idcard),二者是一对一的关系----用户表----create table Person( id varchar2(32) p...
2010-07-01 15:37:07
188
原创 实体粒度划分
实体粒度划分顾名思义就是将一个比较大的对象进行拆分,划分为几个小的对象。但是这种粒度的划分只是针对类对象,而不是针对数据表。 实体的细粒度划分优点:1,通过细粒度划分使系统逻辑更加清晰2,性能方面,能提高系统的能耗比(性能/资源消耗) 举例如下:1,新建表personcreate table Person( id number(20) primary key...
2010-07-01 11:52:47
445
原创 hibernate复合主键
如果要实现复合主键,首先要在主键类实现Serializable接口并且复写equals和hashcode。equals和hashCode的复写可以使用第三方工具commons-lang-1.0.1.jar。举例:(1)创建一个person表,主键为name和phone create table person( name varchar2(30) not null,...
2010-07-01 11:29:34
99
原创 Criteria 接口
Criteria Query通过面向对象化的设计,将数据查询条件封装为一个对象。简单来讲,Criteria Query可以看作是传统SQL的对象化表示,如: Java代码 Criteria criteria = session.createCriteria(User.class); criteria.add(Expression.eq("name","Erica")); crite...
2010-07-01 11:02:50
91
原创 Hibernate自增主键
Hibernate自增主键(oracle数据库)可以通过序列来实现。(1)创建表person和序列person_sequence -----建表-------create table person( id number(10) primary key, name varchar2(10) not null, age number(3) )-----建序列-...
2010-07-01 10:51:51
474
原创 hibernate框架的搭建
Hibernate作为一个轻量级的框架,其搭建也不是十分的繁琐。以Eclipse为例,手工搭建一个Hibernate工程。 (1)Eclipse中新建一个web工程,将Hibernate的核心jar包加入到WEB-INF下的lib文件夹中。 (2)将数据库的驱动程序包加入到WEB-INF下,比如Oracle的驱动程序jar包ojdbc14。 ...
2010-07-01 10:16:00
73
原创 hibernate框架的优缺点
Hibernate 的优点:(1) ORM (对象关系映射). 它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想。(2)透明持久化(Persistent) 带有持久化状态的、具有业务功能的单线程对象,此对象生存期很短。这些对象可能是普通的JavaBeans/POJO,这个对象没有实现第三方框架或者接口,唯一特殊的是他们正与(仅仅一个)...
2010-06-30 16:56:30
172
原创 几个小名词
1、集团: 现代企业的高级组织形式,《公司法》中并没有“集团”一说,只有有限责任公司和股份有限责任公司的提法。但是在现实中,我们常常看到某某集团公司的名头,其实这不过是多个公司在业务、流通、生产等等方面联系紧密,从而聚集在一起形成的公司(或者企业)联盟罢了。另外有的公司进行多元化经营战略,在多个领域均成立了相应的子公司,这样,母子公司之间也会因为这种“血缘”关系组成一个企业集团,颇类似于军...
2010-06-29 16:02:11
106
原创 Eclipse中xml文件编写无提示
如果你在Eclipse或是MyEclipse中编写xml文件时,不能出现提示信息,而且你又对xml文件中标签有哪些属性不是很熟悉,那么编写xml文件将变得非常麻烦。 以下是解决方法 : 1.选择MyEclipse6.X菜单栏中的Window->preferences; 2.选择General->keys; 3.在右侧中间的窗体中点击word completi...
2010-06-29 09:38:51
179
原创 增强Eclipse ,MyEclipse 的代码自动提示功能
本文转载优快云 elifefly,在此表示感谢! 一般默认情况下,Eclipse ,MyEclipse 的代码提示功能是比Microsoft Visual Studio的差很多的,主要是Eclipse ,MyEclipse本身有很多选项是默认关闭的,要开发者自己去手动配置。如果开发者不清楚的话,就不知道Eclipse ,MyEclipse的代码提示功能一样能像Microsoft Visua...
2010-06-25 17:44:08
98
原创 I18N struts国际化配置和实现
struts是基于Java的,因此其国际化依赖于Java的国际化。Java在其核心库中提供了支持I18N的类和接口:Locale类用于实现本地化,ResourcesBundle类用于进行资源绑定。 Locale对象的使用和获得一般采用构造函数的方式: Locale locale = new Locale("en","US"); Struts对国际化的支持:...
2010-06-24 15:22:13
121
原创 log4j配置使用
将Log4J应用于struts框架中: (1) 首先将Log4J的jar包加入到项目中 (2)通过property文件来配置。 I、新建一个log4j.properties文件,将此文件放到classpath下。 II、文件中log4j.rootLogger=DEBUG,console,file(Logger的语法是 [...
2010-06-23 14:59:50
112
原创 Log4j日志级别
× Debug × Info × Warn × Error × Fatal一个等级比一个高,但是在具体开发中,关于应该如何选择适应的等级,却没有找到好的文章进行说明。记录一下自己的一些看法,以便日后使用吧。=== Debug ===这个级别最低的东东,一般的来说,在系统实际运行过程中,一般都是不输出的。因此这个级别的信息,可以随意的使用,任何觉得有利于在调试时更详细...
2010-06-23 14:38:32
217
原创 log4j
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。...
2010-06-23 14:34:27
105
原创 四个有用的Java过滤器
一、使浏览器不缓存页面的过滤器 import javax.servlet.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; public class ForceNoCacheFilter implements Filter { public void doF...
2010-06-19 16:31:45
86
原创 Oracle数据库实例,表空间,用户的创建
一、数据库名 数据库名就是一个数据库的表示,好比人的身份证。他用参数DB_NAME表示,如果一台机器上装了多个数据库,每个数据库有一个唯一的数据库名。 在创建数据库是就应该考虑好数据库名称,一般在数据库创建完后,数据库名称是不宜做修改的,即使去修改也会是相当麻烦。 二、数据库实例 数据库实例名是用于和操作系统进行联系的标识,就是说数据库和操作系统交互...
2010-06-09 11:07:10
151
原创 oracle数据库导入导出数据
(一) 如果是用plsql工具来做导入导出,步骤为: tool - export tables 选中要导出的表点击第一个选项卡 oracle export 选择文件保存的路径,确认下导出所用的exp.exe应用程序和要导出的数据库的版本是一致的,才能正确导出,否则会报版本不一致的错误,默认导出文件的后缀是dmp. 同理,导入dmp文件: tool - ...
2010-06-02 17:39:04
112
原创 Oracle的schema、方案、模式、用户
[size=small][size=small][size=x-small] 从定义中我们可以看出schema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables, views, sequences, stored pr...
2010-06-02 11:29:59
144
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人