技术交流
PrayFor丶Zx
这个作者很懒,什么都没留下…
展开
-
过滤器和拦截器的区别
1、拦截器是基于java的反射机制的,而过滤器是基于函数回调 2、过滤器依赖与servlet容器,而拦截器不依赖与servlet容器 3、拦截器只能对action请求起作用,而过滤器则可以对几乎所有的请求起作用 4、拦截器可以访问action上下文、值栈里的对象,而过滤器不能 5、在action的生命周期中,拦截器可以多次被调用,而过滤器只能在容器初始化时被调用一次 拦截器 :转载 2015-10-23 15:44:00 · 205 阅读 · 0 评论 -
java排序算法之哪一种好
欢迎讨论 回复 哪个算法+原因 即可package Sort;public class Sort { /** * 算法A */ public static void sortA() { int a[] = { 10, 2, 3, 6, 5, 4, 9, 7, 1, 8 }; for (int i = 0; i <=原创 2017-02-27 18:33:57 · 306 阅读 · 1 评论 -
java虚拟机的基本结构
一 :java虚拟机的基本结构1: 类加载子系统(负责从文件系统或者网络中加载class信息,加载的类信息存放于一块成为方法区的内存空间。除了类信息外,方法区中可能还存放运行时常量池信息,包括字符串字面量和数字常量(这部分常量信息是class文件常量池部分的内存映射))2:java栈(java方法的调用,保存着局部变量,方法参数,同时和java方法的调用、返回密切相关)3:方法区(原创 2017-02-15 23:12:28 · 523 阅读 · 0 评论 -
java虚拟机之垃圾回收概念与算法
一:垃圾回收概念 GC中的垃圾:指的是,存在于内存中的不会再被使用的对象。 为什么要进行垃圾回收:如果不及时对内存中的垃圾进行清理,那么,这些垃圾对象所占用的内存空间会一直保留到应用程序结束,被保留的空间无法被其他对象使用。如果大量不会被使用的对象一直占用内存空间不放,需要内存空间时,就无法使用这些被垃圾对象占用的内存,从而有可能导致内存溢出。因此,堆内存空间的管理来说,识别和清理垃圾对象是至关原创 2017-02-18 23:16:33 · 376 阅读 · 0 评论 -
一道有意思的面试题
昨天去一家公司面试,遇到了一个有意思的笔试题,之前在csdn上看见过,没记录下来,现在copy下,有兴趣的小伙伴,猜猜执行结果,加深理解。 答案 1 a 2 b 2原因 static代码块随着类的加载而加载,在构造器之前,而且只加载一次。如果一个类中有多个static的话,按顺序加载static的代码块。如果程序改成这样子 小伙伴们猜下结果答案 1 3 a c 5 2 e b 5 2原创 2017-02-21 08:16:36 · 254 阅读 · 0 评论 -
java虚拟机之什么才是真正的垃圾
谁才是真正的垃圾:判断可触及性 垃圾回收的基本思想是考察每一个对象的可触及性,即 从跟节点开始是否可以访问到这个对象,如果可以,则说明当前对象正在被使用,如果所有的根节点都无法访问到某个对象,说明对象已经不再使用了,一般来说,这个对象需要被回收。但事实上,一个无法触及的对象有可能在某一条件下复活自己,如果这样,那么对它的回收就是不合理的,为此需要给出一个对象可触及性的状态的定原创 2017-02-21 08:50:46 · 451 阅读 · 0 评论 -
java虚拟机之引用和可触及性的强度
在java中提供了四个级别的引用:强引用,软引用,弱引用和虚引用。 强引用:只要引用存在,垃圾回收器永远不会回收Object obj = new Object(); //可直接通过obj取得对应的对象 如obj.equels(new Object()); 而这样 obj对象对后面new Object的一个强引用,只有当obj这个引用被释放之后,对象才会被释放掉,这也是我们经常所用原创 2017-02-21 22:57:18 · 425 阅读 · 0 评论 -
springAOP实现之动态代理
Spring的动态代理有两种:一是JDK的动态代理;另一个是cglib动态代理(通过修改字节码来实现代理)。今天主要讨论JDK动态代理的方式。 1 AOP各种的实现AOP就是面向切面编程,我们可以从几个层面来实现AOP。 在编译器修改源代码,在运行期字节码加载前修改字节码或字节码加载后动态创建代理类的字节码,以下是各种实现机制的比较。 2 AOP的实现机制 本章节将详细介绍AOP原创 2017-02-21 23:20:34 · 232 阅读 · 0 评论 -
java之记录面试题
error和exception的 区别?Error(错误) 表示系统级的错误和程序不必处理的异常,是.net运行环境中的内部错误或者硬件问题, 比如,内存资源不足等,对于这种错误,程序基本无能为力,除了退出运行外别无选择。Exception(异常) 表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵 而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的。编写一个线原创 2017-02-22 20:03:14 · 250 阅读 · 0 评论 -
数据结构与算法分析之线性表
最近面试了不少公司,发现多数公司要提问数据结构与算法分析,所以这段期间又简单回顾了下数据结构与算法。列表内容简单来说呢 程序 = 数据结构 + 算法 只不过是实现的语言不同而已,有人说,学习数据结构没一点用,工作中一点用也没有,的确是,现在的大部分公司是业务为王,业务理解透了,能干就干,干不了滚蛋,反正到现在我也没见哪个公司注重培养员工的,可能博主我去的公司太lou 回归到正题,数据结构与算原创 2017-03-02 23:25:00 · 679 阅读 · 0 评论 -
数据结构与算法分析之栈
最近看了不少关于上海交大的关于数据结构与算法分析的视频,再次要感谢浩哥@zhangdaiscott http://blog.csdn.net/zhangdaiscott 栈是个“先进后出的数据结构”,last in first out 简称lifo,jvm的栈跟数据结构的栈还不太一样,但都是lifo的,想看jvm的栈的去http://blog.csdn.net/qq_1701136原创 2017-03-05 19:11:54 · 389 阅读 · 0 评论 -
java 之 super this 的区别,继承与实现的差异
例 A类是父类 ,里面有个方法test,B类是一个接口,定义一个方法test,C类继承A经试验得知,this 在继承父类的时候,首先在子类中寻找方法test,如果找到就不去父类中再找了.如果找不到,就会去父类中找,当然如果都找不到就会报错了,而super,只是在父类中寻找方法test,不会去子类中寻找方法test例 A类是父类 ,里面有个方法test,B类是一个接口,定义一个方原创 2016-06-16 10:27:45 · 369 阅读 · 0 评论 -
拦截器,监听器,过滤器 区别
这篇文章写得不错,copy下来,以留纪念 感谢http://www.cnblogs.com/shangxiaofei/p/5328377.html由于最近两个月工作比较清闲,个人也比较“上进”,利用工作空余时间,也继续学习了一下,某天突然想起struts2和struts1的区别的时 候,发现为什么struts1要用servlet,而struts2要用filter呢?一时又发转载 2017-05-08 17:24:11 · 408 阅读 · 0 评论 -
java 三大框架原理及优点
Hibernate工作原理及为什么要用?原理: 1.读取并解析配置文件 2.读取并解析映射信息,创建SessionFactory 3.打开Sesssion 4.创建事务Transation 5.持久化操作 6.提交事务 7.关闭Session 8.关闭SesstionFactory 为什么要用:转载 2017-05-08 17:27:00 · 604 阅读 · 0 评论 -
java 堆栈知识
java 基本类型是存放在栈中,String的方式有两种1:String a= new String("zhaoxiao"); 这种方式 a存放在 堆中2:String b="zhaoxiao" 这种方式 b存放在常量池中System.out.println(a==b); 答案为false 因为存储空间不同String str1="abc";String原创 2016-11-06 20:18:40 · 270 阅读 · 0 评论 -
java 之 23种设计模式
设计模式(Design Patterns) ——可复用面向对象软件的基础设计模式(Design pattern)是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真转载 2016-06-16 11:23:48 · 268 阅读 · 0 评论 -
MyBatis参数传入集合之foreach动态sql
foreach的主要用在构建in条件中,它可以在SQL语句中进行迭代一个集合。foreach元素的属性主要有item,index,collection,open,separator,close。item表示集合中每一个元素进行迭代时的别名,index指定一个名字,用于表示在迭代过程中,每次迭代到的位置,open表示该语句以什么开始,separator表示在每次进行迭代之间以什么符号作为分隔符,cl转载 2015-10-23 16:48:09 · 222 阅读 · 0 评论 -
Struts2 OGNL使用详解(转)
OGNLOGNL ( Object Graph Navigation Language ),对象图导航语言。这是一种强大的表达式语言,通过它可以非常方便的来操作对象属性。 在 Struts2 中,OGNL 需要和 Struts2 标签库配套来使用。OGNL context |转载 2015-10-23 16:02:18 · 193 阅读 · 0 评论 -
MyBatis之传入参数
在MyBatis的select、insert、update、delete这些元素中都提到了parameterType这个属性。MyBatis现在可以使用的parameterType有基本数据类型和JAVA复杂数据类型基本数据类型:包含int,String,Date等。基本数据类型作为传参,只能传入一个。通过#{参数名} 即可获取传入的值复杂数据类型:包含JAVA实体类、Map。通过#{属性转载 2015-10-23 16:49:05 · 193 阅读 · 0 评论 -
struts2的json-default和struts-default的区别
struts2的json plugin可以实现struts2和json的完美结合,由于本篇主要是介绍整合过程中遇到的问题,所以编程实现的方法这里就不重复了,具体可以参看struts2的官方文档:http://struts.apache.org/2.2.1.1/docs/json-plugin.html。我在struts.xml中有如下action定义:action name="prod转载 2015-10-23 15:49:27 · 221 阅读 · 0 评论 -
springMVC对于controller处理方法返回值的可选类型
对于springMVC处理方法支持支持一系列的返回方式: ModelAndView Model ModelMap Map View String Void 具体介绍 详细介绍每一个返回类型的各个特点; ModelAndView ?123456@RequestMapping(method=RequestM转载 2015-10-23 16:52:04 · 376 阅读 · 0 评论 -
hibernate的缓存配置
一级缓存 Hibernate的一级缓存是由Session提供的,因此它只存在于Session的生命周期中,当程序调用save(),update(),saveorupdate()等方法 及调用查询接口list,filter,iterate时,如session缓存中还不存在相应的对象,Hibernate会把该对象加入到一级缓存中,当Session关闭的时候该Session所管理的一级缓存也转载 2015-10-23 14:59:14 · 248 阅读 · 0 评论 -
Maven3路程(三)用Maven创建第一个web项目(1)
Maven3路程(三)用Maven创建第一个web项目(1)一.创建项目1.Eclipse中用Maven创建项目上图中Next 2.继续Next 3.选maven-archetype-webapp后,next 4.填写相应的信息,Packaged是默认创建一个包,不写也可以 5.创建好项目后,目录如下:至此,项目已经创建完毕,转载 2015-10-23 16:07:08 · 278 阅读 · 0 评论 -
hibernate
JAVA Hibernate工作原理及为什么要用hibernate 简介:hibernate是一个开源框架,它是对象关联关系映射的框架,它对JDBC做了轻量级的封装,而我们java程序员可以使用面向对象的思想来操纵数据库。hibernate核心接口session:负责被持久化对象CRUD操作sessionFactory:负责初始化hibernate,创建session对象转载 2015-10-23 15:01:30 · 213 阅读 · 0 评论 -
使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境
http://www.linuxidc.com/Linux/2015-02/114265p2.htm纯属抄袭 留着备用转载 2016-02-18 09:51:50 · 523 阅读 · 0 评论 -
web.xml 中的listener、 filter、servlet 加载顺序及其详解
在项目中总会遇到一些关于加载的优先级问题,刚刚就遇到了一个问题,由于项目中使用了quartz任务调度,quartz在web.xml中是使用listener进行监听的,使得在tomcat启动的时候能马上检查数据库查看那些任务未被按时执行,而数据库的配置信息在是在web.xml中使用servlet配置的,导致tomcat启动后在执行quartz任务时报空指针,原因就是servlet中的数据库连接信息未转载 2016-02-19 08:58:51 · 249 阅读 · 0 评论 -
基于MAVEN的spring的task 和qz 两种方式
pom.xml xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 SpringTest Spring 0.0.1-SNAPSHOT jar Spri原创 2016-03-28 17:07:05 · 2816 阅读 · 0 评论 -
数据库的事物隔离级别
数据库的事物隔离级别转载 2016-05-09 10:48:35 · 263 阅读 · 0 评论 -
微信浏览器打开支付宝支付页面
最近遇到了一点小难题微信浏览器 默认把支付宝正式网关屏蔽了,怎么才能在微信浏览器内打开正式的支付宝支付页面呢,答案很简单,用实现frame. 主要做法 把发送给支付宝的url镶嵌在frame的src上,就完全可以了原创 2016-06-16 10:48:45 · 10318 阅读 · 1 评论 -
微信支付遇到的坑
微信支付步骤1.商家网站的的url授权填写,其实就是那个oAuth2.0页面授权2.商家支付页面的支付授权目录, 注意精确到至少二级目录,一级目录经试验是不行的.3.redirect的问题,说白了讲就是二次跳转的时候orderCode失效的问题,可以记录到缓存里面或者session里面4.多次请求token的问题,商户网站拿到一次token后,就不能再次请求了原创 2016-06-16 11:21:59 · 267 阅读 · 0 评论 -
多线程学习(一)
最近,学习了下多线程,虽然工作中用不上,但还是多了解点为好,技多不压身。什么是线程:先了解什么是进程,进程想必大家都知道,一个exe 打开后,在任务管理器里面有这个文件的进程,一个进程肯定有多个服务协同工作组成,这个服务就是类似于线程的概念,首先呢:多线程是为了解决一类问题,而产生了多线程,例如:在某个场景下,一个业务操作多个数据库,并且各个数据不相互影响,执行时间大致是2分钟,这么长时间原创 2017-09-28 17:11:25 · 245 阅读 · 0 评论