`
文章列表
    在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(下文称OOM)异常的可能,本节将通过若干实例来验证异常发生的场景,并且会初步介绍几个与内存相关的最基本的虚拟机参数。     本节内容的目的有两个 :第一,通过代码验证Java虚拟机规范中描述的各个运行时区域储存的内容;第二,希望读者在工作中遇到实际的内存溢出异常时,能根据异常的信息快速判断是哪个区域的内存溢出,以及出现这些异常后该如何处理。     1、java堆溢出     java堆用于储存对象实例,我们只要不断地创建对象,并且保证GC Roots到对象之间有可达 ...
解决JSP中文乱码问题 大家在JSP的开发过程中,经常出现中文乱码的问题,可能一至困扰着大家,现把JSP开发中遇到的中文乱码的问题及解决办法写出来供大家参考。首先了解一下Java中文问题的由来: Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的保存方式是基于字节流的,如果Java和JSP编译成class文件过程中,使用的编码方式与源 ...
1、意图     动态地给一个对象添加一些额外的职责。就增加功能来说,Decorator模式相比生成子类更加灵活。 2、别名     包装器Wrapper 3、动机     有时我们希望给某个对象而不是整个类添加一些功能。例如,一个图形用户界面工具箱允许你对任意一个用户界面组件添加一些特性,例如边框,或是一些行为,例如窗口滚动。     使用继承机制是添加功能的一种有效途径,从其他类继承过来的边框特性可以被多个子类的实例所使用。但这种方式不够灵活,因为边框的选择是静态的,用户不能控制对组件加边框的方式和时机。     一种较为灵活的方式是将组件嵌入另一个对象中,由这个对象添加边框。我们称这个嵌入 ...
Java在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途、创建和销毁的时间,有一些是随虚拟机的启动而创建,随虚拟机的退出而销毁,有些则是与线程一一对应,随线程的开始和结束而创建和销毁。 Java虚拟机所管理的内存将会包括以下几个运行时数据区域 程序计数器(Program Counter Register) 它是一块较小的内存空间,它的作用可以看做是当先线程所执行的字节码的信号指示器。 每一条JVM线程都有自己的PC寄存器,各条线程之间互不影响,独立存储,这类内存区域被称为“线程私有”内存 在任意时刻,一条JVM线程只会执行一个方法的 ...
1、意图     将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得用户对单个对象和组合对象的使用具有一致性。 2、动机     在绘图编辑器和图形捕捉系统这样的图形应用系统中,用户可以使用简单的组件创 ...
1、意图     定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使一个类的实例化延迟到子类。 2、别名     虚拟构造(Virtual Constructor) 3、动机     框架使用抽象类定义和维护对象之间的关系。这些对象的创建通常也由框架负责。     考虑这样一个框架,它可以向用户展示多个文档。在这个框架中,两个主要的抽象是类Application和Document。这两个类都是抽象的,客户必须通过它们的子类来做与具体应用相关的实现。例如,为创建一个绘图应用,我们定义DrawingApplication和DrawingDocument。Applic ...
    设计模式在功能上分为三大类:创建型模式,结构型模式和功能性模式。下面根据这三大类模式来展开设计模式的实现目的和实现方式。 1、创建型模式     创建型模式抽象了实例化过程。它们帮助一个系统如何创建、组 ...

文件上传

    博客分类:
  • java
要处理文件上传,首先要判断是否使用sprng框架,第一种方式为使用spring框架来上传,处理步骤: 1、在spring中配置文件上传的Resolver <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" p:defaultEncoding="utf-8" /> 2、在Controller层添加处理文件上传的方法,并使用MultipartFile来接受文件 @Reque ...
1、意图     定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。TemplateMethod使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。 2、动机     考虑一个提供Application和Document类的应用框架。Application ...

vi命令大全

linux下vi命令大全 进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第 ...
1、意图     将一个类的接口转化成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。 2、别名     包装类  Wrapper 3、动机    有时,为复用而设计的工具类不能被复用的原因仅仅是因为它的接口与专业应用领域所需要的接口不匹配。 4、适用性   以下情况使用Adapter模式     你想使用一个已经存在的类,而它的接口不符合你的需求     你想创建一个可以复用的类,该类可以与其它不相关的类或不可预见的类(即那些接口可能不一定兼容的类)协同工作    (仅适用于对象Adapter)你想使用一些已经存在的子类,但是不可能对每一个都 ...
新立得的安装和使用,主要是以下两个命令:、 安装: 调出:sudo  apt-get update && apt-get install synaptic 调出:gksu synaptic,回车,新立得出现。
1、意图     将抽象部分与它的实现部分分离,使它们都可以独立地变化,通常被认为是双重抽象。 2、别名     Handle/Body 3、动机     当一个抽象类可能有多个实现时,通常用继承来协调它们。抽象类定义对该抽象的接口,而 ...
一般来说Ubuntu是将移动硬盘挂载在根目录下的media目录下的一个文件夹里面,这个文件夹的名字一般是你的用户名,之所以出现无法挂载的原因,一是可能这个文件夹不存在,二是你对这个文件夹没有权限。所以一般提示出错的信息是:Adding read ACL for uid 1000 to `/media/yelbosh' failed: Operation not supported‘ 解决办法就是先建立它所说的这个文件夹,然后再把这个文件夹的权限改为你所有。 如下命令可解决问题: sudo mkdir -p /media/USER_NAME(这是你的用户名) sudo chown USER ...
从 Shard 到 Sharding “Shard” 这个词英文的意思是”碎片”,而作为数据库相关的技术用语,似乎最早见于大型多人在线角色扮演游戏(MMORPG)中。”Sharding” 姑且称之为”分片”。 Sharding 不是一门新技术,而是一个相对简朴的软件 ...
Global site tag (gtag.js) - Google Analytics