`
文章列表
此文未经许可禁止转载,谢谢 定义:确保某一个类只有一个实例,而且自行实例化并向系统提供这个实例。 使用场景:在一个系统中,要求一个类有且仅有一个对象,如果出现多个对象就会出现“不良反应”,可以采用单例模式。 如1.要求生成唯一序列号的环境;    2.在整个项目中需要一个共享访问点或共享数据,例如一个WEB页面上的计数器,可以不用把每次刷新都记录到数据库中,使用单例模式保持计数器的值,并确保是线程安全的;    3.创建一个对象消耗的资源过多,如要访问IO和数据库等资源;    4.需要定义大量的静态常量和静态方法的(如工具类)环境,可以采用单例模式。 注意的问题:非static单例对象如 ...
类的生命周期 在一个类编译完成之后,下一步就需要开始使用类,如果要使用一个类,肯定离不开JVM。在程序执行中JVM通过装载,链接,初始化这3个步骤完成。 类的装载是通过类加载器完成的,加载器将.class文件的二进制文件装入JVM的方法区,并且在堆区创建描述这个类的java.lang.Class对象。用来封装数据。 但是同一个类只会被类装载器装载以前 链接就是把二进制数据组装为可以运行的状态。 链接分为校验,准备,解析这3个阶段 校验一般用来确认此二进制文件是否适合当前的JVM(版本), 准备就是为静态成员分配内存空间,。并设置默认值 解析指的是转换常量池中的代码作为直接引用 ...
”==”与”===”是不同的,一个是判断值是否相等,一个是判断值及类型是否完全相等。 下面的规则用于判定===运算符比较的两个值是否相等的判断条件 •如果两个值的类型不同,它们就不相同。 •如果两个值是数字,而且值相同,那么除非其中一个或两个都是NaN(这种情况它们不是等同的),否则它们是等同的。值NaN永远不会与其他任何值等同,包括它自身(奇怪的家伙),要检测一个值是否是NaN,可以使用全局函数isNaN()。 •如果两个值都是字符串,而且在串中同一位置上的字符完全相同,那么它们就完全等同。如果字符串的长度或内容不同,它们就不是等同的。 •如果两个值都是布尔型true,或者两个值都是布尔型fa ...
首先,先来先讲讲适配器。适配就是由“源”到“目标”的适配,而当中链接两者的关系就是适配器。它负责把“源”过度到“目标”。举个简单的例子,比如有一个“源”是一个对象人,他拥有2种技能分别是说日语和说英语,而某个岗位(目标)需要你同时回说日语、英语、和法语,好了,现在我们的任务就是要将人这个“源”适配的这个岗位中,如何适配呢?显而易见地我们需要为人添加一个说法语的方法,这样才能满足目标的需要。 接着讨论如何加说法语这个方法,也许你会说,为什么不直接在“源”中直接添加方法,我的理解是,适配是为了实现某种目的而为一个源类暂时性的加上某种方法,所以不能破坏原类的结构。同时不这么做也符合Java的高 ...
javascript 是一种 prototype based programming 的语言, 而与我们通常的 class based programming 有很大 的区别,我列举重要的几点如下: 函数是first class object, 也就是说函数与对象具有相同的语言地位 没有类,只有对象 函数也是一种对象,所谓的 ...
Struts2动态方法调用 转载自:http://www.cnblogs.com/yangy608/archive/2010/11/08/1871958.html 动态方法调用 在Struts2中动态方法调用有三种方式,动态方法调用就是为了解决一个Action对应多个请求的处理,以免Action太多 第一种方式:指定method属性 这种方式我们前面已经用到过,类似下面的配置就可以实现 <action name="chainAction" class="chapter2.action.Chapter2Action" method="cha ...
1. 传值到Struts2的action方法: <input name="userName" type="text" size="15"> userName属性需要在访问的action中提供相应的属性,并有SET/GET方法。 可以不在访问的action中提供相应的属性,用request.getParameter(”userName”); 2. 页面从Struts2的action取值方法: 4种拿到值得的办法: 1)  <s:property value="username"/> ...
创建直接的实例: 这个例子创建了对象的一个新实例,并向其添加了四个属性:   var person = new Object();   person.firstName = "Bill";   person.lastName = "Gates";   person.age = "56";   person.eyeColor = "blue"; 或   var person = {firstName:"John",lastName:"Doe",age:50,eyeColor:&q ...

HTML5新增属性

HTML5的input标签新增了很多属性,也是让大家非常兴奋的一件事,用简单的一个属性搞定以前复杂的JS验证。input新增的这些属性,使得html和js的分工更明确了,使用起来十分舒畅。 新增属性一:autoconmplete autoconmplete可以赋值为 on 或者 off。当为 on的时候,浏览器能自动存储用户输入的内容。当用户返回到曾经填写过值的页面的时候,浏览器能把用户写过的值自动填写在相应的input框里。 现在很多网站都实现了这个功能,不过基本都是用php来实现的。用了这个属性,无疑可以减少很多前端和后台的交流量和工作量。 新增属性二:autofocus autofoc ...

Html常用标签

(一)字体标签       <h1>(h6)...</h1>(h6)标题字       <i>...</i>斜体字     <b>...</b>粗体字        <u>...</u>底线        <s>...</s>删除线        <em>...</em>斜体字(强调)        <var>...</var>        <del>...</del>删除线(表示删除)     ...
  在使用struts2的标签的时候,有没有因为默认产生的布局样式而抓破头呢?下面有两种方法解决这个问题,网上很多大牛说这个是struts2的优先,可能小虾涉世未深,还未能体会到,这里讲讲这两种方法吧。   第一种:   查看struts.properties或$ {struts-core2.06.jar}/org/apache/struts2/default.properties文件,其中有如下配置: struts.ui.theme=xhtml struts.ui.templateDir=template struts.ui.templateSuffix=ftl    这一段就是关于str ...
1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址。 2.type: 要求为String类型的参数,请求方式(post或get)默认为get。注意其他http请求方法,例如put和delete也可以使用,但仅部分浏览器支持。 3.timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async: 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作必须等待请求完成才 ...
拦截器的作用主要就是拦截东西,拦截什么呢?当然是'action'了,在执行'action'之前 拦截器会起作用,执行一些预先处理的代码, 接着去执行action中相关的方法,之后,流程又会回到拦截器里面,接着去执行后续的一些操作。 先看配置,这些配置都是在struts.xml里面的。配置相当简单,不过底层都是很复杂的。在这章之前,我专门看了下动态代理,感觉真的是开发者花了不少的心血, 首先先建一个包,放我们的interceptor。 过滤器和拦截器是非常相似的,public interface Filter类里面有三个方法:     init(FilterConfig filte ...
struts2接收前台传来的参数有3种方法 1、第一种:action 设置 相应的变量      在相应的action中设置与将要传进来的参数名相同的变量     eg: 前台传给后台两个参数 name=chance & age = 1,那么后台的action中 要设定这样的变量:private String name; private int age;同时,必须设置set,和 get方法   那么在访问action过程中,struts会自动的为action中的这两个变量设置前台传来的值   (深度解析:     实际上,当前台想后台的一个action发出请求的时候,str ...
Global site tag (gtag.js) - Google Analytics