`
文章列表
一,应用案例        /**如果不指定action的属性值,会如何?*/ <form action="/user/add.do" method="post"> <input type="text" name="username"> <input type="password" name="pwd"> <input type = "submit"> </form> ...
一,案例分析        config :当前路径。       ../config :当前路径的上一级。       ../../config:当前路径的上两级,更多依此类推。       /config     : 当前容器的根路径。      上述出现两个定义:当前路径和当前容器的根路径。  二,根路径的误区       根路径并不是指项目的根路径而是web容器的根目录(即webapps目录),假设在tomcat webapps下部署了aaj,bbj,ccj三个应用程序。在ccj项目中有个jsp文件里面引用的css的文件路径为/css/main.css。当前浏览器解析的 ...
一,简介        FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以中小文件(建议范 ...
一,简介        cron表达式是linux系统定时任务执行的一个标准规范。按照cron表达式语法,我们可以定制任务触发执行的时间点。 二,cron表达式语法        顺序单位:   秒     分     时     日     月     周    ...
一,软连接与硬连接区别      第一,ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化。      第 二,ln的链接又分软链接和硬链接两种,软链接就是ln –s 源文件 目标文件,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接 ln 源文件 目标文件,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变化。   二,应用举例      #建立软连接 ln -s 源路径  目标路径 (类似于windows系统的快捷方式)     ln -s  /h ...
一,简介        在JDK中,提供了以下方法来获取classpath下的资源:       public abstract class ResourceUtils { public static void main(String[] args) { test(); } /** * @param args */ public static void test() { String name = "plugins.xml"; ...
一,cookie简介         Cookie是保存在客户端中,按在客户端中的存储位置,可分为内存Cookie和硬盘Cookie。内存Cookie由浏览器维护,保存在内存中,浏览器关闭后就消失了,其存在时间是短暂的。而硬盘Cookie保存在硬盘里,有一个过期时间,除非用户手工清理或到了过期时间,硬盘Cookie不会被删除,其存在时间是长期的。所以,按存在时间,可分为非持久Cookie和持久Cookie。 二,cookie常用属性        Domain:域,表示当前cookie所属于哪个域或子域下面。只有访问该cookie所属于的域名时,才会带上该cookie信息至服务端。例 ...
一,简介        Unsafe可以用于获取成员字段在类实例中的偏移量,直接操作变量在主内存中的值等操作。       1,获取unsafe.objectFieldOffset(Field f)成员变量地址偏移量。 public class AtomicInteger extends Number implements java.io.Serializable { private static final long serialVersionUID = 6214790243416807050L; // setup to use Unsafe.compareAn ...
一,简介        该方法的作用是在jvm中增加一个关闭的钩子,当jvm关闭的时候,会执行系统中已经设置的所有通过RunTime.getRunTime().addShutdownHook(Thread hook)方法添加的钩子,当添加到jvm中的所有钩子执行完之后,jvm才会关闭,所以这些钩子可以在jvm关闭前进行资源销毁等操作。 二,应用举例         
一,简介        jdk中HashMap和HashSet的遍历是无序的,而LinkedHashMap和LinkedHashSet是两种可以预知迭代顺序的集合类。LinkedHashMap支持两种迭代顺序(插入顺序和访问顺序,其中默认是插入顺序)。而LinkedHashSet仅支持按插入顺序遍历。 二,实现原理       LinkedHashMap<K,V>继承自HashMap<K,V>,与HashMap的区别是LinkedHashMap底层还维护着一个双向循环链表(用于记录元素的插入顺序或访问顺序)。       结构图:       JDK源码: ...
一,实现原理         ThreadLocal,ThreadLocalMap(ThreadLocal的静态内部类),Thread三个类。                  1,在每个Thread实例中,都有一个threadlocals成员属性,用于存储该线程内的数据。           public class Thread implements Runnable { /* ThreadLocal values pertaining to this thread. This map is maintained * by the ThreadLocal ...
一,简介        jdk中提供了volatile关键字,用于修饰变量。提供了两层语义:           语义一:保证共享变量内存的可见性(并不能保证操作的原子性)。          语义二:禁用指令的重排序。 二,内存可见性原理分析       在Java内存模型中,内存分为主内存(堆内存)和工作内存(栈内存)两个部分,其中主内存是所有线程所共享的,而工作内存则是每个线程分配一份,各线程的工作内存彼此间独立、互不可见,在线程启动的时候,虚拟机为 每个线程分配一块工作内存,不仅包含了线程内部定义的局部变量,还包含了线程所需要使用的共享变量(非线程内构造的对象)的副本,即为 ...
一,简介        正则表达式定义了字符串的一种结构。只要满足这种规则的字符串都可以与之进行匹配。 二,正则表达式        * : 表示前面字符可以有零次或多次。举例:ab* 能匹配a、ab、abb、abbb……。       + : 表示前面字符可以有一次或多次。举例:ab+ 能匹配ab、abb、abbb……。等价于"abb*"。        ? : 表示前面字符可以有零次或一次。举例:or? 能匹配
一,简介        线程有新建,就绪,运行,阻塞,死亡5种状态。其中线程阻塞指的是暂停一个线程继续向下执行以等待某个条件发生(如某资源就绪等)。   二,状态转移模型         通常引起一个运行线程进入阻塞状态的方法有:sleep(),join(),wait()等。    1)   sleep() 方法:sleep() 允许指定以毫秒为单位的一段时间作为参数,它使得线程在指定的时间内进入阻塞状态,不能得到CPU
一,简介        在JDK1.5以上版本中,提供了CopyOnWriteArrayList,CopyOnWriteArraySet两种并发容器。采用读写分离的思想(读操作在元数据中操作,写操作则在副本中操作),降低锁冲突,提高并发性。 二,实现原理       /** *读操作(没有加锁) * {@inheritDoc} * @throws IndexOutOfBoundsException {@inheritDoc} */ public E get(int index) { return (E ...
Global site tag (gtag.js) - Google Analytics