
JAVA
文章平均质量分 69
不知不觉已变淡
这个作者很懒,什么都没留下…
展开
-
Java中Iterator迭代器设计原理
我们知道迭代器(Iterator)是一种对象,它能够用来遍历标准模板库容器中的部分或全部元素。那么Iterator迭代器的设计原理是什么呢?迭代器问什么定义了一个借口,而不是一个类呢? 我们假设迭代器迭代数据的功能定义为了一个类,那么,会有这样的问题。不同的集合,由于数据结构不一样,所以他们的存储方式也是不一样的。也就是说,迭代器获取的时候,获取的方式是变化的,也就是不固定的。所原创 2016-02-14 18:15:12 · 3233 阅读 · 13 评论 -
HQL连接查询
Hibernate进行多表查询与SQL其实是很相似的,但是HQL会在原来SQL分类的基础上又多出来一些操作。HQL的多表连接查询的分类如下: 其实这些连接查询语法大致都是一致的,都是HQL查询的是对象而SQL查询的是表。那么我们来比较一下SQL和HQL的连接查询。SQL连接查询:HQL连接查询: 在HQL中,我们不用写关联原创 2016-11-18 23:30:36 · 4576 阅读 · 5 评论 -
mybatis的Dao的开发
小编今天来介绍一下mybatis的Dao的开发方式,熟悉mybatis的人都知道它Dao的开发有两种方式,一种是传统的Dao方式,还有一种就是采用Mapper代理的方式,可以说在一些老项目中传统Dao的方式比较常见,而现在我们更倾向于喜欢采用Mapper代理的方式来进行开发。下面就简单介绍一下这两种方式。 首先是传统Dao开发,此种方法需要接口+实现类完成。需要dao实现类继承SQ原创 2016-11-20 22:38:39 · 908 阅读 · 3 评论 -
java中遍历类中的属性和属性值
有些时候我们需要一个类中的所有属性信息,在类属性少的情况下我们可以一个一个的通过get和set获得,但是如果多了的话就比较麻烦了,在这里我们可以通过反射来遍历。public void getAlixIntegrity(ApplyCust applyCust) throws NoSuchMethodException, Exception{ // 获取实体类的所有属性,返回Field数原创 2017-02-17 13:41:20 · 7964 阅读 · 3 评论 -
@RequestBody, @ResponseBody 注解详解
引言:接上一篇文章讲述处理@RequestMapping的方法参数绑定之后,详细介绍下@RequestBody、@ResponseBody的具体用法和使用时机;同时对曾经看的一篇文章中讲述的某些部分进行澄清 (文章地址:http://www.byywee.com/page/M0/S702/702424.html)。简介:@RequestBody转载 2017-02-09 18:23:59 · 603 阅读 · 2 评论 -
解决web.xml和jar包发布不到tomcat问题
从maven导出web项目的时候,有时候会发现发布到tomcat时,web.xml和jar包会出现发布不上去的问题,这样的话对几个文件稍加修改一下就可以正常发布了。 首先在eclipse中打开navigator视图,打开项目的 settings 文件夹,在里面会看到这些文件。 修改上图中带有红色下划线的文件,我把修改后的截图贴在下面,对照着修改就行了。原创 2017-03-02 16:22:48 · 3083 阅读 · 4 评论 -
子类能否重写父类的静态方法
今天突然讨论到了子类继承父类的静态方法问题,有人坚持说能写,有人说不能重写,那到底能不能冲写呢?这个问题很简单,测试一下就完了。 先是父类代码:public class Fu { public static void show() { System.out.println("父类的静态方法"); } public void method() { System.out.原创 2016-07-27 00:28:24 · 24574 阅读 · 26 评论 -
java开发中简单定时器的实现
今天分享的是由spring注解实现的定时调度任务,非常简单,快速上手,只需两步。 第一步,在spring配置文件命名空间中加入:xmlns:task="http://www.springframework.org/schema/task"在xsi:schemaLocation 中加入http://www.springframework.org/schema/task h原创 2017-11-09 16:59:29 · 1455 阅读 · 1 评论 -
Java进阶之Hibernate主键生成策略详解
1.increment 由Hibernate从数据库中去除主键的最大值(每个session只取一次),以该值为基础,每次增量为1,在内存中生成主键,不依赖于底层的数据库,因此可以跨数据库。 Hibernate调用org.hibernate.id.IncrementGenerator类里面的generate()方法,使用select max(idColumnName原创 2016-10-07 22:36:09 · 1405 阅读 · 2 评论 -
Java进阶之hibernate中cascade与inverse
我们都知道的是cascade强调的是操作关联对象,inverse强调的是外键的维护权。在我们设置了级联操作后,在保存的时候就会级联保存另外的级联对象,而设置了inverse之后,如果两个对象之间有双向维护关系,就会在设置的一方放弃外键维护权,那它们两个共同使用的时候会产生什么结果呢? 我们可以通过一个简单的案例测试一下,就能得到结果,案例中customer与linkman为一对多关原创 2016-10-02 00:31:54 · 1816 阅读 · 3 评论 -
自定义注解
Java的Annotation是在5.0版本之后引入的,可以用于创建文档,跟踪代码中的依赖性,并且可以执行编译时期检查。注解就是给虚拟机看的,代表程序的一些特殊的功能。JDK中提供了@Override,@SuppressWarning,@Deprecated三种注解,当让还有元注解,@Target,@Retention,@Documented,@Inherited,元注解的作用负责注解其它注解。原创 2016-09-11 13:23:23 · 1186 阅读 · 4 评论 -
Java进阶之类加载器
当JVM启动时,会形成由三个类加载器组成的初始类加载器层次结构,引导类加载器(bootstrap classloader),扩展类加载器(extension classloader),应用类加载器(system classloader)。三者的关系:bootstrap classloader是extension classloader的parent,extension classloade原创 2016-10-09 23:28:05 · 1338 阅读 · 4 评论 -
Java进阶之FileUpload完成上传
FileUpload是Apache commons下面的一个子项目,用来实现Java项目下的文件上传功能,常见的文件上传还有SmartUpload,Servlet3.0,Struts2。 在这里我用的是commons- fileupload-1.2.1,下面就是一个简单实例,解析过程都写到代码中的注释上了,注释很详细//创建磁盘文件项工厂 DiskFileItemFactor原创 2016-09-25 22:14:14 · 3715 阅读 · 5 评论 -
进阶Java之Struts中的值栈
什么是值栈? 值栈:ValueStack,类似于域对象,值栈应用在Struts2的action里面,在值栈中可以存值和取值。其贯穿整个 Action 的生命周期(每个 Action 类的对象实例都拥有一个 ValueStack 对象). 相当于一个数据的中转站,我们知道,每次访问action时候,都会创建action对象,那么,在每个action对象里面就都存在一个值栈对象。值栈的使原创 2016-10-11 22:50:58 · 2317 阅读 · 3 评论 -
Struts2之文件上传
之前写过一篇上传文件的文章,用是FileUpload组件,今天就介绍一下Struts2中的文件上传吧,其实它底层采用的就是FileUpload,只是进行了简单的封装,用起来更加方便了。下面就详细介绍一下。 首先,在Action中定义上传文件和上传文件名,生成get和set,那么当表单提交到action的时候,就会把上传文件封装进来,这里封装的具体操作是通过默认的拦截器实现的,以下是摘取的原创 2016-10-23 21:04:55 · 1350 阅读 · 3 评论 -
万能的BaseDao设计
BaseDao设计的初衷是为了方便我们的使用,不用写很多的重复的代码,今天就说说它的设计思路。我们就是要用反射加泛型加面向接口编程来实现,从网上找了一个UML图,我们就用下图大体简单设计一下。 大体按图中的内容写吧,首先定义一个interface BaseDao,原创 2016-10-23 22:08:55 · 22161 阅读 · 6 评论 -
Java进阶之动态代理
首先先解释一下什么是代理模式,代理模式的作用就是为其它对象提供一种代理用来控制对这个对象的访问。那么,代理模式会有哪些角色呢?代理模式涉及到的角色有: 1、抽象角色,声明真实对象和代理对象的共同接口/ 2、代理角色,代理对象角色内部含有真是对象的引用,从而可以操作真实对象,同时代理对象提供与真是对象相同的接口以便在任意时刻都能代理真是对象。同时,代理对象可以在执行真实对象操作时原创 2016-09-11 23:53:02 · 1428 阅读 · 6 评论 -
Spring的基于AspectJ的AOP开发
在软件业,AOP为Aspect Oriented Progranmming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效原创 2016-10-14 23:21:49 · 1604 阅读 · 2 评论 -
JVM调优之分代垃圾回收
我们知道java虚拟机对对象的存储划分为三个代,年轻代(Young Generation)、年老点(Old Generation)和持久代(Permanent Generation)。其中持久代主要存放的是Java类的类信息,与垃圾收集要收集的Java对象关系不大。年轻代和年老代的划分是对垃圾收集影响比较大的。分代垃圾回收策略针对不同对象的生命周期不同,采取不同的收集方式,以达到更高的回收效率。原创 2018-03-16 10:22:03 · 372 阅读 · 2 评论