- 博客(34)
- 资源 (24)
- 收藏
- 关注
原创 JAVA中的隐藏和覆盖
隐藏指的是子类把父类的属性或者方法隐藏了,即将子类强制转换成父类后,调用的还是父类的属性和方法,而覆盖则指的是父类引用指向了子类对象,调用的时候会调用子类的具体方法。(1)变量只能被隐藏(包括静态和非静态),不能被覆盖(2)可以用子类的静态变量隐藏父类的静态变量,也可以用子类的非静态变量隐藏父类的静态变量,也可以用非最终变量(final)隐藏父类中的最终变量;(3)静态方法
2010-10-23 10:27:00 748
原创 JAVA中关于异常需要注意的地方
JAVA异常处理的抛出异常的throw和throws这两个关键字的区别:throws写在定义一个方法名的后面,表示若该方法出现异常时将异常抛给调用他的地方;throw写在具体的方法内部,用来抛出异常进而可以被try...catch()语句捕获;情况一:try { new Exception(); System.out.println("ok"); } catch(Exception e) { System.out.println("exception");
2010-10-03 17:05:00 644
原创 Struts2用标签输出后台HTML文本的问题
<br />问题:Struts2 中后台属性值带有的HTML标签,前台页面取值时把HTML标签当成字符串输出了,怎么把它们当成HTML标签处理<br />解决方法:在使用struts2标签显示后台数据时加上escape=”false”<br /><s:property value="myBeanProperty" escape="false"/>
2010-10-03 16:16:00 1121
原创 使用JAVA、Hibernate连接SQLServer数据库
<br />方式一:使用jdbc-odbc桥连的方式来操作sql server数据库<br />方式二:使用jdbc驱动程序直接操作sql server数据库<br />历史:一开始,微软提供了odbc(Open DataBase Connection)供程序员操作数据库,后来,SUN公司便提供了jdbc-odbc驱动来与odbc做连接,再由odbc访问sql server数据库。但是这种方法效率不高,于是微软又向SUN提供了jdbc驱动,允许JAVA程序直接通过jdbc访问sql server数据库。(而
2010-10-03 16:12:00 4747
原创 JAVA基本数据类型转换
<br />● boolean类型不可以转换成其他的数据类型;<br />● 整形、字符型、浮点型的数据在混合运算中相互转换,转换时遵循如下规则:<br /> ■ 容量小的类型自动转换成容量大的数据类型;数据类型按容量大小排序如下: byte,short,charàintàlongàfloatàdouble<br /> 要注意的是byte,short,char之间不会相互转换,他们三者在计算时首先转换为int类型。byte的取值范围是-128~127<br />n 容量大
2010-10-03 10:57:00 1742
原创 正则表达式(RegularExpressions)-- 字符串处理利器
<br />作用:字符串匹配、字符串查找、字符串替换;<br /> 类:java.lang.String、java.util,regex.Pattern、java.util.regex.Matcher;<br /> ● 简单认识:<br /> p("abc".matches("..."));//true<br /> p("a232333a".replaceAll("//d", "-"));//将数字替换成“-”<br /> Pattern p = Patt
2010-10-03 10:10:00 610
原创 hibernate的关系映射(2)
<br /> (4) 1:n 单向关联<br /> 1:n 单向关联是指在1的那方的类里存在n那方的对象(多个)(而上述的n:1也就是指n那方的类中存在1那方的对象(1个)作为属性)<br /> 方法一:annotation<br />1那方的类不需要设置什么,只需要在n那方加入@ManyToOne的注解和说明外键的字段名(此处如果不说明则会创建3张表,其中一张为中间关系表)<br />@Entity<br />@Table(name="_group")<br />publicclass Gr
2010-10-03 00:27:00 494
原创 hibernate的关系映射(1)
<br />要注意此处的关系映射指的是对象之间的关系,并不是指数据库的关系(数据库中表与表之间只有”外键”的关系)。(1:1, 1:n, n:n)<br /> (1) 1:1关系映射<br />l 1:1单向外键关联<br />方法一:annotation<br />涉及两个注解:@OneToOne、@JoinColumn<br />以丈夫、妻子关联为例(会自动将”妻子”表的主键当成外键),例如:<br />@OneToOne<br /> @JoinColumn(name="wifeId")<b
2010-10-03 00:23:00 499
原创 hibernate中Session常见操作
<br />(1) delete(Object o):用于删除指定的一个对象。只要对象设置了Id就可以delete。<br /> 需要注意的是如果数据库没有该对象,那么调用delete方法也不会报任何错误,因此为了明确是否有删除,还是会先判断是否存在该对象,而往往会把找到的对象作为返回值。<br />(2) save(Object o):用于将一个对象o持久化。<br /> 需要注意的是直接调用该方法,如果数据库中已经存在该主键对应的对象,那么就会报错,所以为了避免出现客户端看不到的
2010-10-03 00:21:00 465
原创 hibernate核心开发接口介绍
<br />Configuration<br />(1)AnnotationConfiguration<br />(2)进行配置信息的管理<br />(3)用来产生SessionFactory<br />(4)可以在Configure方法中指定hibernate配置文件(不指定则默认为<br />”hibernate.cfg.xml”)<br />(5)只需关注一个方法即:buildSessionFactory()<br />注:不使用默认的hibernate.cfg.xml文件的情况<br />Teach
2010-10-03 00:20:00 547
原创 hibernate的ID生成策略
<br />(1)使用xml配置方法<br />l uuid ---- id字段必须是String类型(大型项目中往往使用)<br /> <id name=”id”><br /> <generator class=”uuid”></generator><br /> </id><br /> 生成的id为一个varchar(255)类型。<br /> <br />l native ---- 等同于auto_increment,则id可以为int类型<br /> <i
2010-10-03 00:19:00 545
原创 Caused by: java.lang.ClassNotFoundException: javax.persistence.Cacheable
<br />原因在于javax.persistence.Cacheable是JPA2.0规范的东西,需要添加hibernate-jpa-2.0-api-1.0.0.Final.jar<br /><br />加入了这个包后,在后面一对一的关系映射实验中又遇到了新的错误:<br />java.lang.NoSuchMethodError:javax.persistence.OneToOne.orphanRemoval()<br /> 这是因为加入的jar包里面的ejb3的jar包与JPA包冲突了因为,ej
2010-10-03 00:18:00 1348
原创 Hibernate 基本配置
<br />引入相关的包<br /> <br /> 注:实验时出现了报错信息,需要加入新的jar包<br />hibernate-jpa-2.0-api-1.0.0.Final.jar<br /> 而上述的ejb3-persistence.jar是与其重复冲突的(ejb3-persistence.jar本来就是属于实现了jpa标准的annotation的实现),故还需要把ejb3的jar包删掉。<br /> <br /> 又由于Hibernate3.5集成了anno
2010-10-03 00:15:00 901
原创 java.lang.UnsupportedClassVersionError:Bad Version number in.class file
<br />原因:编译器设置的JDK 版本错误。<br />解决方法:windows-perferences-complier。将Complier compliance level改成5.0(一开始为6.0)使得每个导入的项目都出现了类似的问题,研究了很久才百度出解决方法,网络还是挺好的)
2010-10-03 00:13:00 480
原创 设计模式 -- Iterator(迭代器)
<br />模式用途:设计能装载任意对象的容器,并要求该容器有一个遍历元素的iterator()方法,用来遍历容器中的每个元素。<br /> 设计一个容器的接口,用来定义这些”能装载任意对象的容器”的方法,从而在使用这些容器的时候可以更加灵活,更换起来只需要更改装载的容器的类型即可,其他方法都不用改变。<br />Ø 接口Collection.java<br />package com.yilong.designpattern.iterator;<br />publicinterface Colle
2010-10-03 00:09:00 470
原创 网页提交出现的中文乱码
<br />⑴解决servlet中遇到的乱码问题<br />情况一:<br />在输出的时候遇到的乱码:<br /> out.println("<html><head><title></title><body>HelloWorld!你好!</body></head></html>");//“你好“显示的是乱码。<br />解决方法:<br />resp.setContentType(“text/html;charset=GBK”);<br />情况二:<br />在web.xml里配置相关的servl
2010-10-03 00:07:00 810
原创 JAVA反射机制
<br />所谓的反射机制就是java语言在运行时拥有的一项自观的能力。通过这种能力可以彻底地了解自身的情况为下一步的动作做准备。下面介绍java的反射机制。<br /> Java的反射机制的实现要借助于4个类:Class、Constructor、Field、Method,其中Class代表的是类对象,Constructor代表类的构造器对象,Field代表类的属性对象,Method代表类的方法对象。通过这四个对象我们可以粗略看到一个类的各个组成部分。<br /> Class:<br />程序运
2010-10-03 00:03:00 563
原创 Struts2基础知识
<br />(1) 部署Struts2项目步骤<br />1.1 copy struts.xml文件到项目的src目录<br /><br />1.2 copy 所需要的jar文件<br /><br />1.3 配置web.xml文件<br /><filter><br /> <filter-name>struts2</filter-name><br /> <filter-class>org.apache.struts2.dispatch
2010-10-02 23:58:00 1749 2
原创 探讨JAVA内部类
成员内部类:定义在一个类内部的类。相当于类的非静态成员,可以用权限符来修饰,包括private、protected、public成员内部类的创建必须先创建外部类,例如:publicclass MyNewVector { public MyNewVector() { } publicstaticvoid main(String[] args) { MyNewVector mnv = new MyNewVector(); My
2010-10-02 23:55:00 588
原创 JAVA中关于数组的深入
<br /> 数组对象的类是什么?<br />既然数组是对象,那么数组究竟是什么呢?当然,不是java.util.Arrays。<br />publicclass TestArray {<br /> privateclass Dog {<br /> }<br /> publicstaticvoid main(String[] args) {<br /> int a[] = newint[10];<br /> int b[]
2010-10-02 23:53:00 703
原创 设计模式 -- 代理模式(Proxy)
<br />模式介绍:能够将系统中需要的一些横向的通用逻辑和核心业务逻辑分割开,即改变通用逻辑的时候不影响核心业务逻辑的代码。<br />首先介绍静态代理设计的思路,要实现对某个类进行代理,比如说汽车(Car),有run()和stop()的方法,要对该类中所有方法进行代理(添加同一种事务),那么该对象产生的代理就必须具有Car中所有的方法。一旦调用Car的方法,如:run(),就先调用代理的run()方法,在方法中再调用Car的run()方法,可想而知,要在前后加上逻辑就很方便了,更重要的是不会影响核心业务
2010-10-02 23:51:00 829
原创 abstract class与interface区别
<br />ü 含有abstract修饰符的class即为抽象类,abstract类不能创建实例对象,含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的,abstract定义的抽象方法必须在子类中实现,所以不能有抽象构造方法或抽象静态方法,如果子类没有实现抽象父类的所有抽象方法,那么子类也必须定义为abstract类型;<br />ü Interface可以说成是抽象类的一种特例,接口中的所有方法都必须是抽象的,接口中的方法默认定义为p
2010-10-02 23:49:00 399
原创 JAVA容器
<br />(1)Collection接口和Collections类的区别<br />Collection是个java.util下的接口,它是各种集合结构的父接口。<br />Collections是个java.util下的类,它包含有各种有关集合操作的静态方法。<br />Collection 层次结构中的根接口。Collection 表示一组对象,这些对象也称为 collection的元素。一些 collection 允许有重复的元素,而另一些则不允许。一些 collection 是有序的,而另一些则是
2010-10-02 23:42:00 350
原创 软件生命周期
<br />通常,软件生存周期包括可行性分析、需求分析、设计(概要设计和详细设计)、编码、测试和维护六个阶段。<br />(1) 需求分析:在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。需求分析阶段是一个很重要的阶段,这一阶段做得好,将为整个软件开发项目的成功打下良好的基础。"唯一不变的是变化本身。",同样需求也是在整个软件开发过程中不断变化和深入的,因此我们必须制定需求变更计划来应付这种变化,以保护整个项目的顺利进行。<br />(2)软件设计:此阶段主要根据需求分析的结果,对整个软件
2010-10-02 23:41:00 492
原创 关于Servlet需要注意的地方
<br />Servlet的生命周期是由servlet的容器来控制的。分为3个阶段:初始化阶段、运行阶段、销毁阶段。<br /> 初始化阶段(客户端的第一次请求过来的时候):<br />Ø Servlet容器加载servlet类,把它的.Class文件中的数据读到内存中;<br />Ø Servlet容器创建servletConfig对象。ServletConfig对象包含了servlet的初始化配置信息。此外servlet容器还会使得servletConfig对象与当前的web应用的servletC
2010-10-02 23:40:00 726
原创 (JAVA基础复习) IO流
<br />Ø Java.io包中定义了多个流类型(类或抽象类)来实现输入/输出功能;可以从不同<br />的角度对其进行分类:<br />l 按数据流的方向不同可以分为输入流和输出流(站在程序角度而言);<br />l 按处理数据单位不同可以分为字节流和字符流;<br />l 按功能不同可以分为节点流和处理流。<br />Ø J2SDK 所提供的所有流类型位于java.io内部都分别继承自以下四种抽象流类<br />型。<br /> <br />字节流<br />字符流<br />输入流<br
2010-10-02 23:35:00 556
原创 设计模式 – 策略模式(Strategy)
<br />实例:商店促销<br />(1)首先考虑用简单工厂模式进行设计<br /><br />Ø 客户端代码Main.java<br />package com.yilong.sell.factory;<br />publicclass Main {<br /> publicstaticvoid main(String[] args) {<br /> //SellMethod sellMethod = SellMethodFactory.create("原价");<br />
2010-10-02 23:25:00 924
原创 设计模式 – 简单工厂模式(Factory)
<br />实例:用简单工厂实现的计算器<br /><br />Ø 客户端代码 Main.java<br />package com.yilong.calculator.factory;<br /> <br />publicclass Main {<br /> publicstaticvoid main(String[] args) {<br /> Operation oper = OperationFactory.create('/');<br /> if(oper !=
2010-10-02 23:11:00 501
原创 设计模式 – 装饰模式(Decorator)
<br />问题的提出:一个人装扮,可以先穿裤子,再穿衣服,再穿鞋子;也可以先穿衣服,再是裤子,再是鞋子,由于裤子、衣服、鞋子种类很多,故搭配种类就更多了。又如制作蛋糕,鲜奶油蛋糕、草莓蛋糕或生日蛋糕其实都是蛋糕,这是装饰手法不同而已。因此,如果在程序中采用简单的各个类顺序调用的方法为其装饰,那么程序就会显得相当不灵活,其他的可维护性、可扩展性、可复用性也可想而知了。对此,我们可以采用装饰模式:<br />说明:<br />ü Component定义了一个对象接口,可以给这些对象动态地添加职责;<br /
2010-10-02 22:47:00 461
原创 设计模式 – 单例模式(Singleton)
<br />ü 核心:保证一个类仅有一个实例,并提供一个访问它的全局访问点;<br />ü 用途:想保证某个特定类的对象实例绝对只有1个的情况;<br />ü 结构图:<br /><br />ü 方法:可以把类的属性定义为static字段,再以Singleton类的对象实例进行初始化,而这个初始化的操作仅仅在加载Singleton类时进行一次,Singleton类的构造函数是private的(所有类都有构造方法,不编码则系统默认生成空的构造方法,若有显示定义的构造方法,默认的构造方法就会失效,因此写
2010-10-02 22:44:00 513
原创 设计模式 – 原型模式(Prototype)
<br /><br />ü 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象;<br />ü JAVA中可以通过实现Cloneable或者继承Cloneable类来实现对象的拷贝,然后就<br />可以调用clone()方法进行对象的复制了(直接调用会报CloneNotSupported<br />Exception)。但是此处需要注意的是clone()方法是由java.lang.Object类定义的,Object类是JAVA类层次的基类,因此所有类都会继承clone()方法,而
2010-10-02 22:32:00 461
原创 设计模式 – 桥接模式(Bridge)
<br />ü 核心:将抽象部分与它的实现部分分离,使他们都可以独立地变化;<br />ü 结构图:<br /><br />ü 用途:当系统的实现可以按多个角度(范畴)进行分类,而每一种分类都有可能变化时,那么就把这种多角度分离出来让他们独立变化,从而减少他们之间的耦合;<br />ü 实例:手机型号与手机软件的组合<br />Ø 手机软件抽象类– 文件HandSetSoft.java<br />package com.yilong.bridge.handset.software;<br />pu
2010-10-02 22:27:00 515
原创 设计模式 – 命令模式(Command)
<br />ü 核心:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作;<br />ü 优点:1、他能够容易地设计一个命令队列;2、在需要的情况下,可以较容易地将命令计入日志;3、允许接收请求的一方决定是否要否决请求;4、可以容易地实现对请求的撤销和重做;5、由于加进新的具体命令类不影响其他的类,因此增加新的具体命令类很容易;6、(最关键的)将请求一个操作的对象与知道怎么执行一个操作的对象分隔开;<br />ü 结构图:<br /><br
2010-10-02 22:16:00 457
原创 JAVA邮件开发
<br />(1)邮件服务器介绍<br />Ø 功能:<br />ü 接收用户投递的邮件;<br />ü 将用户投递进来的邮件转发给目标邮件服务器;<br />ü 接收其他邮件服务器转发来的邮件并把邮件存储到其管理的用户邮箱;<br />ü 为前来读取邮件的用户提供读取服务;<br />Ø 邮件服务器按通讯协议可以划分为两种类型:<br />ü SMTP服务器;<br />ü POP3/IMAP服务器;<br />注:SMTP服务器用于替用户发送邮件和接收外面发送给本地用户的邮件,相当于现实
2010-10-02 22:12:00 1452
网页中中文乱码问题和用户权限控制(使用fileter实现)
2010-09-04
System.arraycopy和Arrays.copyOf
2010-09-04
MiddleGen(可以把数据库表映射成.hbm.xml的工具)
2010-09-03
Struts2 + hibernate + Spring 的 jar包汇总
2010-09-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人