`
文章列表
关于hibernate中出现a different object with the same identifier value was already associated with the session的错误。出现原因和解决方式: 出现该问题的原因:    说到这里,我想我也应该重新认识下hibernate了,在hibernate中,对象状态分为三种:瞬时态(transient)、持久态(persistent)和游离态(detached)。其中瞬时态:就是用户自己定义的,通俗点说就是自己new出来的对象,还没有与session相关联,此时的对象为瞬时态;持久态:已经被持久化,与sessio ...
这些题目为找工作前准备,但是面试的时候基本上没用上。   1.Java多态表现:重写 2.多线程共享数据:多线程共享数据时,可以将需要共享的数据封装成一个对象,将每个线程对该数据对象的操作分别定义类(该类实现Runnable接口,并提供参数为共享数据对象的构造方法),然后再调用是直接使用new Thread(实现Runnable接口类的实例) 小知识点:多个内部内如何共享数据?可以将Runnable设置成内部类,1. 数据设置成外部类的成员变量(代码如下图)2.  将共享的数据封装起来,然后逐个传递给Runnable对象。3. 共享数据设置成外部类的成员变量,Runnable写成内部 ...
      有段时间没有发表博客了,今天先说下maven的学习情况吧,昨天刚刚入门,今天上午进行了复习,下午对咖啡兔的Activiti的Demo进行调整,总算是可以跑通了,期间有知道了一个可以在内存中的数据库H2,同时简单了解了下 ...
首先,单例模式是指在程序运行的过程中,保证该类的实例只有一个可以被外界访问(可用于读取配置文件,以保证没有对外部资源的并发操作)。 单例模式分为饱汉模式和饥汉模式。饱汉模式,也是我们说熟知的单例模式,为类在初始化的时候就进行了类的实例化,getInstance方法只需要自动获取就可以了;饥汉模式为类在初始化时并为进行类的实例化,而是在getInstance方法中,先对对象进行判断,如果为null,就进行实例化,再返回,如果不为空,则直接返回该实例对象。 代码模拟: 1.饱汉模式: public class Singleton{     // 1.私有构造器     private ...
关于double和float的精度问题,在进行数值运算时,如果有float或者double类型的浮点数参与计算时,偶尔会出现结果不准确的情况。 比如: /**  * 解决Float与Double类型进度不准确的问题  * @author XiaoYun 2013-08-17  */ public class PrecisionOfFloatAndDouble { public static void main(String[] args) { testUnPrecision(); }   /**  * 不准确问题示例  */ private static ...
spring3.1.1的各个jar作用 org.springframework.aop-3.1.1.RELEASE.jar ---- ----spring 的面向切面编程,提供AOP(面向切面编程)实现。 org.springframework.asm-3.1.1.RELEASE.jar ---- ----spring 独立的asm 程序,相比2.5版本,需要额外的asm.jar包。  org.springframework.aspects-3.1.1.RELEASE.jar ---- ----spring 提供对 AspectJ 框架的整合。  org.springframework ...
    昨天和今天学习了XML和JSON型在struts2中的用法,当然,这需要与ajax结合起来使用,在项目中可以用到用户注册验证用户唯一性、无需刷新页面即可刷新部分数据等操作。     虽然就目前来说,JSON要比XML流行,但是可以预见的是,未来一段时间内,还是会有不少的企业依然会用到XML文件,故这里同时讲解了XML文件的生成和在JS中的解析。     我想熟悉Web的人大多数应该都会使用AJAX来与服务器进行异步的交互数据而不影响前台用户的使用,改善了用户体验。     关于用于生成XML和JSON格式数据的原理,我没有详细研究,后面随着学习的深入,我想我会进一步进行研究学习的 ...
     这几天忙着找房子的事儿,学习了Struts2文件上传,也没来得及发表。下面开始将讲解Struts2的文件上传功能,使用Struts2实现文件上传比起使用Servlet进行上传,简单了很多,具体表现在使用Struts2进行文件上传时,不需要在写代码来解析request来得到List<FileItem>,而是直接在Action中定义对应的名字java.io.File类型的成员变量(存放的是临时文件),String类型的 表单名字ContentType(用来接收上传的文件类型),String类型的 表单名字FileName(用来接收上传文件的名字),关于Struts2中是如何 ...
     使用Servlet做文件上传,当然,底层的工作还是有开源的框架,即便如此,也着实耗费了我一些功夫。下面开始进行讲解,文件上传功能是Java在Web应用中常用的功能之一,也是程序员必回的一项技能。     首先,我要使用到apache的一个开源jar包,为file-upload.jar,这个jar包封装了对用户上传的文件的操作,同时该jar包需要依赖common-io.jar,commons-io.jar封装了一些对文件底层的操作,具体原理我也没有研究,有兴趣的自己去apache官方下载研究。     再说下文件上传需要的java类,主要使用到了org.apache.common ...
    junit是非常优秀的单元测试框架,其中最经典的要素junit3.8和junit4.x了。其中junit3.8是基于反射来实现的,具体步骤是:        1. 获取Class的类型cls -> 2. 获取Class类中的method方法(cls.getMethods())->3. 迭代cls中的Method数组,根据method名字.startsWith方法来判断是否以test开头,如果已test开头,就执行method.invoke()     关于junit4.x,同样也是使用反射,但是用到了注解,执行的流程为:        1. 获取Class的类型 - ...
    今天稍稍学习了下注解,关于注解,我想大家都不陌生,目前可能在hibernate配置中可能会用的多一点,在JPA中也会用到。我想说的是学习注解可以帮助我们更好的理解注解在框架中(比如hibernate和Spirng等)的应用。     A ...
    下面对反射和动态代理做下总结:       对于反射,反射是用来发现类的属性、方法、构造器并进行动态调用和修改的一种工具,这是可以把java看作动态语言的重要原因。      关于动态代理,毫无疑问,动态代理的实现是在反射的基础之上进行实现的,目前不少的框架比如spring的面向切面编程底层的实现原理就是动态代理。      关于动态代理,我想多说一点,因为感觉自己理解的还是不够扎实,动态代理主要涉及到了java.lang.reflect.InvocationHandler接口的学习,java.lang.reflect.Proxy中的newProxyInstance(ClassL ...
    昨天调试了半下午也没有调出的SpringMVC,今天下午继续调试,终于跑通了。SpringMVC具有很多Struts2不具备的有点,目前来说我知道的地方就是非侵入式,低耦合。     与struts2相比,Spring将对象细分成了更多不同的角色。控制器( Controller)、可选的命令对象(Command Object)或表单对象(Form Object), 以及传递到视图的模型(Model),而且粒度更细,为方法级,而struts2为类级,在Struts2中,后面接受的参数均为成员边栏,也就是说除了execute方法外,类中的其他方法也可以对该变量进行调用,这其实是不合理的,而在 ...
   公司不忙,没事可做,springMVC没有调试成功,很郁闷。只好沿着没有学习完毕的反射继续学习,本以为使用反射获取到类的方法后,直接使用invoke方法调用就可以了,没想到中间也出现了一个小插曲。    关于JDK的反射涉及到的包和类在前面两篇博客上已经写了,这里就不再叙述。下面进入学习,在复习下通过反射调用特定Class的方法的流程:    1. 获取Class类型Class cls = 类名.class    2. 根据方法名和形参类型来获取相应的方法,Method method = cls.getDeclaredMethod(methodName, new Class[]{}),以此 ...
   昨天下午终于签好了合同。今天下午午觉醒来,便开始了JDK动态代理模拟原理的学习和研究。    首先,我们应该明白何为代理,所谓代理,按照我的理解,用户只需要知道接口中的方法名,不需要了解方法中的具体实现, ...
Global site tag (gtag.js) - Google Analytics