`
文章列表
Webpack  VS  requireJS 两者都是前端自动化构建工具,模块化工具和资源管理工具,都支持AMD和CMD的加载方式,配置起来也非常简单,requireJS应有的功能,Webpack  全都有,而且Webpack 弥补了requireJS的所有缺陷。 (1)webpack在管理模块的时候不需要再封装一层像requireJS如下的东西 define(['jquery'], function(jquery){})  (2)它实现了前端代码模块化,提高了代码的复用性,从而提供公共模块的缓存功能。webpack通过打包,不同页面单独加载自己的模块的javascript 和 com ...
1.var与let的区别(scope区别) (1)块级别的声明     传统的var声明在代码函数块中,实质是全局的变量,而用ES6的let声明则是真正区域在块中   function getValue(condition) { if (condition) { var value = "blue"; // other code return value; } else { // value exists here with a value of undefined ...
在面向对象的Javascript编程中,希望代码优雅有高效是非常重要的。javascript中不存在类的概念,只有对象。要想把Javascript代码写的像java 或者C++一样优雅,就得考虑如何去实现,同时也要考虑性能和高效。定义javascript对象的方式有很多,继承的方式也很多。通过不断地实践,推荐如下的方法: 1.Javascript对象的定义采用混合方式【构造函数 +原型方式(prototype)】 (1)通过构造函数方式定义对象的所有非函数属性 (2)用原型方式定义对象的函数属性   采用这种方式,所有的属性都是单一对象私有的,而方法则是所有对象公有的,对象之间的 ...
在实际的项目进行中,很多地方可能由于历史原因不得不去使用iframe,包括目前正火热的应用开发也是如此。 随之而来的就是在实际使用iframe中,会遇到iframe高度的问题,由于被嵌套的页面长度不固定而显示出来的滚动条,不 ...
1. 重叠构造器模式的缺点: 当有许多参数时,客户端代码很难编写,并且难以阅读。 2. JavaBeans模式的缺点: 1) 构造过程被分到几个调用中,在构造过程中JavaBeans可能处于不一致的状态;类无法仅仅通过检验构造器参数的有效性来保证一致性。 2) JavaBeans模式阻止了把类做成不可变的可能,需要程序员付出额外的努力来确保线程安全。 3. Builder模式: 不直接生成想要的对象,而是让客户端利用所有必要的参数调用构造器(或者静态工厂),得到一个builder对象。然后客户端在builder对象上调用类似于setter的方法,来设置每个相关的可选参数。 ...
Effective Java 中提出实现单例的3中方法,详细内容如下: 1.将公有静态成员变量做成final域 package com.jason.effectivejava.rule3.one; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; public class Elvis { public static final Elvis INSTANCE = new Elvis(); private Elvis() { ...
Java的serialization提供了一种持久化对象实例的机制。当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。 transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。注意static变量也是可以串行化的。 import java.io.FileInputStream; import ...
  在了解cache的过程中,难免会涉及多线程的问题,涉及到多线程问题,自然会涉及互斥问题。在啥地方加锁,如何加锁才能提高效率。于是,本篇文章针对互斥问题,做一下深入的研究。   在java中,采用关键字synchronized进行同步互斥,而synchronized的同步是互斥锁,有同步方法和同步代码块,下面就synchronized做一下详细的总结。   1、同步方法 synchronized aMethod(){ }方法   (1) 在一个类中可能会包含一个或多个synchronized 的方法,其作用域范围有实例对象内的,也有类范围的。   对于实例对象范围的同步方法 ...
问题的提出   Java 的一个重要优点就是通过垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使 有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄露,但它的表现与C++不同。   随着越来越多的服务器程序采用Java技术,例如JSP,Servlet, EJB等,服务器程序往往长期运行。另外,在很多嵌入式系统中,内存的总量非常有限。内存泄露问题也就变得十分关键,即使每次运行少量泄漏,长期运行之后,系统也是面临崩溃 ...
我这里说的cache不是指CPU和RAM之间的缓存,而是java应用中间常用的缓存。最常使用的场合就是访问数据库的时候为了提高效率而使用的 cache。一般的用法就是把数据从数据库读到内存,然后之后的数据访问都从内存来读,从而减 ...
       java中对equals()和hashCode()方法是这样规定的:如果两个对象相同,它们的hashCode一定相同,但hashCode相同的两个对象,不一定相同。hashCode有点像引用地址的味道,属于底层的东西。         对于基本类型的包装类型,它们覆盖了equal()方法。比如Boolean、Character、Byte、Shot、Integer、Long、Float、Double等的引用变量,==是比较地址的,而equals是比较内容的。  
概述          要深入了解cache的问题,首先要明确和了解java的引用。java虽然有垃圾回收机制,但java也有内存泄露的时候。什么引起java内存泄露呢?要理解这个问题,需要明确java的引用。java不像C++,在java中没有指针,只 ...
大数据高并发的瓶颈一般都是数据库层面的,机械硬盘承载不起非常快速的读写操作,cpu承载不起大量的逻辑运算,所以最基本的解决思路就是:1.换固态硬盘加快硬盘的读写效率。2.建立缓存中间件降低对硬盘的读写次数,缓存不用多说了,最最最基本和重要的优化策略。3.将硬盘的读写或者数据的计算分摊到多台机器上,也就是集群。hadoop就是基于这个层面的。4.良好的查询算法,降低读的次数,分表,分库,索引等都是基于这层面的。理论上来讲,在带宽充裕的情况下,只要遵循上面的4个思路进行延伸就可以解决大部分的高并发问题。

Web监听器

      监听器的主要作用就是监听,当目标发生变化的时候就会触发一定的方法,这也就是所谓的事件触发机制。在这种机制中要有三个要素,也就是事件,事件源,处理事件的方法。这三要素之间是相互制约的。一旦事件 ...
程序中的国际化问题也是一个非常重要的部分,好多的软件都支持国际化,不同的版本对应不同的语言。在进行国际化时,依照程序开发习惯,我们一般选择在页面层或者控制层做国际化处理,业务层和DAO层不要去国际化,在业务层或者DAo层只需设定国际化的key值即可,当然,key值尽量具有意义。 目前,spring提供了好多国际化的方式,例如AcceptHeaderLocaleResolver,session及cookie的国际化,这里仅介绍最实用,最普遍,笔者认为最实用最合理的国际化。 1、标签国际化 标签国际化我们可以用jstl的fmt方式进行国际化,也可以采用spring自己提供的标签<spr ...
Global site tag (gtag.js) - Google Analytics