摘要: Volley提供了优美的框架,使得Android应用程序网络访问更容易和更快。Volley抽象实现了底层的HTTP Client库,让你不关注HTTP Client细节,专注于写出更加漂亮、干净的RESTful HTTP请求。另外,Volley请求会异步执行,不阻挡主线程。Volley提供的功能简单... 阅读全文
posted @ 2014-06-29 23:00 Fooving 阅读(2693) 评论(3) 推荐(0) 编辑
摘要: 通常,多线程之间需要协调工作。例如,浏览器的一个显示图片的线程 displayThread 想要执行显示图片的任务,必须等待下载线程 downloadThread 将该图片下载完毕。如果图片还没有下载完,displayThread可以暂停,当downloadThread完成了任务后,再通知 displayThread “图片准备完毕,可以显示了”,这时,displayThread 继续执行。以上逻辑简单的说就是:如果条件不满足,则等待。当条件满足时,等待该条件的线程将被唤醒。在Java中,这个机制的实现依赖于wait/notify。等待机制与锁机制是密切关联的。例如:synchronize.. 阅读全文
posted @ 2013-03-26 00:57 Fooving 阅读(768) 评论(0) 推荐(0) 编辑
摘要: 框架使得我们开发应用的速度更快、质量更高、成本更低,这些好处是不言而喻的。框架源于应用,却又高于应用。设计一个框架最好的方法就是从一个具体的应用开始,以提供同一类型应用的通用解决方案为目标,不断地从具体应用中提炼、萃取框架!然后在应用中使用这个框架,并在使用的过程中不断地修正和完善。一个好的框架设计应当采用了一个非常恰当的权衡决策,以使框架在为我们应用提供强大支持的同时,而又对我们的应用作更少的限制。权衡,从来就不是一件简单的事情,但是有很多框架设计的经验可以供我们参考。(1)框架不要为应用做过多的假设 关于框架为应用做过多的假设,一个非常具体的现象就是,框架越俎代庖,把本来是应用要做的... 阅读全文
posted @ 2013-03-23 19:32 Fooving 阅读(4167) 评论(0) 推荐(1) 编辑
摘要: 一级缓存和二级缓存缓存概念 缓存是介于应用程序和物理数据源之间,其作用是为了降低应用程序对物理数据源访问的频次,从而提高了应用的运行性能。缓存内的数据是对物理数据源中的数据的复制,应用程序在运行时从缓存读写数据,在特定的时刻或事件会同步缓存和物理数据源的数据。 Hibernate的缓存包括Session的缓存和SessionFactory的缓存,其中SessionFactory缓存又可以分为两类:内置缓存和外置缓存。Session缓存是内置的,不能被卸载,也被称为Hibernate的第一级缓存。SessionFactory 的内置缓存和Session的缓存在实现方式上比较相似,前者是Ses.. 阅读全文
posted @ 2013-01-29 09:18 Fooving 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 数据库隔离级别1、Read Uncommited(未提交读):没有提交就可以读取到数据(发出了Insert,但没有commit就可以读取到。)很少用2、Read Commited(提交读):只有提交后才可以读,常用3、Repeatable Read(可重复读):mysql默认级别, 必需提交才能见到,读取数据时数据被锁住4、Serialiazble(序列化读):最高隔离级别,串型的,你操作完了,我才可以操作,并发性特别不好脏读:没有提交就可以读取到数据称为脏读不可重复读:再重复读一次,数据与你上的不一样。称不可重复读幻读:在查询某一条件的数据,开始查询的后,别人又加入或删除些数据,再读取时与原 阅读全文
posted @ 2013-01-28 00:39 Fooving 阅读(665) 评论(0) 推荐(0) 编辑
摘要: 程序绑定的概念: 绑定指的是一个方法的调用与方法所在的类(方法主体)关联起来。对java来说,绑定分为静态绑定和动态绑定;或者叫做前期绑定和后期绑定 静态绑定(早绑定 编译器绑定): 在程序执行前方法已经被绑定,此时由编译器或其它连接程序实现。例如:C 。针对java可以理解为程序编译期的绑定;特别说明一点,java当中的方法只有final,static,private和构造方法是前期绑定 动态绑定(迟绑定 运行期绑定): 后期绑定:在运行时根据具体对象的类型进行绑定。 若一种语言实现了后期绑定,同时必须提供一些机制在运行期间判断对象的类型,并分别调用适当的方法。也就是说编译器此时依... 阅读全文
posted @ 2013-01-26 00:22 Fooving 阅读(2406) 评论(0) 推荐(0) 编辑
摘要: Action基础Action是什么 在Struts2中,一个Action类代表一次请求或调用,每个请求的动作都对应于一个相应的Action类,一个Action类是一个独立的工作单元。也就是,用户的每次请求,都会转到一个相应的Action类里面,由这个Action类来进行处理,因此一个Action类代表了用户的一次请求或调用。简单来说,Action就是用来处理一次用户请求的对象。Action能干什么public class HelloWorldAction implements Action { private String account; private... 阅读全文
posted @ 2013-01-25 16:16 Fooving 阅读(9340) 评论(0) 推荐(1) 编辑
摘要: 1、MVC模式基础1.1、MVC模式简介 MVC是一种架构型模式,它本身并不引入新的功能,只是用来指导我们改善应用程序的架构,使得应用的模型和视图相分离,从而达到更好的开发和维护效率。在MVC模式中,应用程序被划分成模型(Model)、视图(View)和控制器(Controller)三个部分。其中,模型部分包含了应用程序的业务逻辑和业务数据;视图部分封装了应用程序的输出形式(页面、界面);而控制器部分负责协调模型和视图,根据用户请求来选择要调用哪个模型来处理业务,以及最终由哪个视图为用户做出应答。MVC模式的这三个部分的职责非常明确,而且相互分离,每个部分都可以独立的改变而不影响其他部分,大. 阅读全文
posted @ 2013-01-24 23:21 Fooving 阅读(21371) 评论(0) 推荐(12) 编辑
摘要: 1、Struts2类型转换的作用 在Web应用中,页面提交请求的参数都是字符串类型的。但是在学习中,我们都是直接在Action中按照需要来定义属性的类型,比如private int age,也没有出错,还能正确运行,这是怎么回事呢?这是由Struts2的类型转换框架默默的帮助我们完成的功能,只要用户输入的数据能合理的转换为需要的属性的类型,Struts2的类型转换框架就会在execute方法执行之前,替我们将参数转换为合适的类型。2、Struts2自定义类型转换器1、概述 虽然内建类型转换器能满足绝大多数的需求,但有的时候还是需要使用自定义类型转换器来实现特定的需求。这个时候就需要自定义类.. 阅读全文
posted @ 2013-01-24 11:20 Fooving 阅读(1923) 评论(0) 推荐(1) 编辑
摘要: JavaBean是一种可重复使用的、跨平台的软件组件。在JSP中通过特定JSP标签访来访问JavaBean。JavaBean用来作为被Web应用中的多个Web组件共享的数据。在Web应用中,如果某种数据需要被多个Web组件共享,可以把这些共享数据放在特定的范围内。*页面(page)范围:共享数据的有效范围数用户请求访问的当前jsp网页。*请求(request)范围:共享数据的有效范围为用户请求访问的当前的Web组件,以及和当前Web组件共享一个用户请求的其他Web组件。如果用户请求访问的是jsp网页,那么该jsp网页的<%@ include>、<jsp:include> 阅读全文
posted @ 2012-11-09 17:38 Fooving 阅读(780) 评论(1) 推荐(2) 编辑