09 2017 档案

摘要:一、Java内存泄漏引起的原因: 内存泄漏是指无用对象(不再使用的对象)持续占有内存或无用对象的内存得不到及时释放,从而造成内存空间的浪费称为内存泄漏。 二、内存泄露的方式 1、静态集合类引起内存泄漏 像HashMap、Vector等的使用最容易出现内存泄露,这些静态变量的生命周期和应用程序一致,他 阅读全文
posted @ 2017-09-27 08:40 茅坤mk 阅读(490) 评论(0) 推荐(0)
摘要:一、gc两大基本算法 1、引用计数法 2、根搜索法 二、gc改进收集算法 1、标记-清除算法 2、复制算法 3、标记-整理算法 分代收集算法 三、gc的类型 串行垃圾回收器(Serial Garbage Collector) 并行垃圾回收器(Parallel Garbage Collector) P 阅读全文
posted @ 2017-09-26 13:12 茅坤mk 阅读(182) 评论(0) 推荐(0)
摘要:一、使用的技术 HashMap ConcurrentHashMap Lock ReadWriteLock synchronized 二、一百万并发下的组合 ConcurrentLockMap /* * To change this license header, choose License Hea 阅读全文
posted @ 2017-09-26 00:07 茅坤mk 阅读(282) 评论(0) 推荐(0)
摘要:一、Servlet简介 Servlet(Server Applet)是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。 狭义的Servlet是指Java语言实现的一个接口,广义的Servlet是指任何实 阅读全文
posted @ 2017-09-24 11:16 茅坤mk 阅读(144) 评论(0) 推荐(0)
摘要:一、网络API InetAddress 用于标识网络上的硬件资源,主要是IP地址 URL 统一资源定位符,通过URL可以直接读取或写入网络上的数据 Sockets 使用TCP协议实现的网络通信Socket相关的类 Datagram 使用UDP协议,将数据保存在用户数据报中,通过网络进行通信。 二、地 阅读全文
posted @ 2017-09-24 10:18 茅坤mk 阅读(302) 评论(0) 推荐(0)
摘要:一、代理 为其他对象提供一种代理以便控制对这个对象的访问。 (1)静态代理 (2)动态代理 1)JDK自带的动态代理 2)javaassist字节码操作库实现 3)CGLIB 4) ASM(底层使用指令,可维护性较差) 二、静态代理 静态代理模式一般会有三个角色: 抽象角色:指代理角色和真实角色对外 阅读全文
posted @ 2017-09-23 23:20 茅坤mk 阅读(171) 评论(0) 推荐(0)
摘要:一、注解定义 注解早在J2SE1.5就被引入到Java中,主要提供一种机制,这种机制允许程序员在编写代码的同时可以直接编写元数据。 二、元注解 Target 说明了被修饰的注解的应用范围,也就是被修饰的注解可以用来注解哪些程序元素 Retention 表示一个注解类型会被保留到什么时候 Inheri 阅读全文
posted @ 2017-09-22 23:24 茅坤mk 阅读(152) 评论(0) 推荐(0)
摘要:一、反射的定义 程序可以访问,检测和修改它本身状态或行为的一种能力,并能根据自身行为的状态和结果,调整或修改应用所描述行为的状态和相关的语义。 二、反射的类 1)反射类 java.lang.Class java.lang.reflect.Constructor java.lang.reflect.F 阅读全文
posted @ 2017-09-19 10:54 茅坤mk 阅读(515) 评论(0) 推荐(0)
摘要:一、类加载过程 装载 链接 验证 准备 解析 初始化 验证 准备 解析 二、类初始化情况 1)创建类的实例,也就是new一个对象 2)访问某个类或接口的静态变量,或者对该静态变量赋值 3)调用类的静态方法 4)反射(Class.forName("xx")) 5)初始化一个类的子类(会首先初始化子类的 阅读全文
posted @ 2017-09-18 23:20 茅坤mk 阅读(195) 评论(0) 推荐(0)
摘要:一、synchronized (1)synchronized方法 (2)synchronized块 二、Lock 注意:及时释放Lock锁,否则会出现死锁,通常在finally代码释放锁 (1)ReentrantLock 实现Lock接口,提供lock(),tryLock()和unLock()方法。 阅读全文
posted @ 2017-09-18 17:09 茅坤mk 阅读(159) 评论(0) 推荐(0)
摘要:一、多线程实现方式 (1)继承Thread类,覆盖run方法 (2)实现Runnable接口,覆盖run方法,将对象传人Thread对象中 实现Runnable接口比继承Thread类所具有的优势: 1)适合多个相同的程序代码的线程去处理同一个资源 2)可以避免java中的单继承的限制 3)增加程序 阅读全文
posted @ 2017-09-18 13:08 茅坤mk 阅读(182) 评论(0) 推荐(0)
摘要:一、集合 (1)集合接口 Collection -List -Queue -Set Map (2)Collections工具类 binarySearch sort reverse max min shuffle fill copy synchronizedXXX 二、List (1)ArrayLis 阅读全文
posted @ 2017-09-17 22:42 茅坤mk 阅读(208) 评论(0) 推荐(0)
摘要:一、NIO NIO是new IO,也是非阻塞IO。有Channel、Selector、Buffer、Pipe、FileLock等类。 Buffer在java.nio包 Channel、Selector、Pipe、FileLock等在java.nio.channels包 二、Channel通道 设置非 阅读全文
posted @ 2017-09-17 10:17 茅坤mk 阅读(198) 评论(0) 推荐(0)
摘要:一、IO的类型 面向字节的流,面向字符的流 二、面向字节的流 (1)InputStream FileInputStream FilterInputStream -BufferedInputStream -DataInputStream -PushbackInputStream 回退流 unread( 阅读全文
posted @ 2017-09-17 09:44 茅坤mk 阅读(139) 评论(0) 推荐(0)
摘要:一、Tomcat的组成 (1)Server服务器元素代表整个catalina servlet容器。是单例模式。 (2)ServiceService是这样一个集合:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获得的客户请求。 (3)Connector 阅读全文
posted @ 2017-09-11 10:29 茅坤mk 阅读(390) 评论(0) 推荐(0)
摘要:一、host配置Context 在tomcat中的conf目录中,在server.xml中的,<host/>节点中添加: 二、webapps目录 将web项目WebRoot目录或项目war包拷贝到webapps 目录中。 三、在 Catalina服务器的localhost主机配置Context 很灵 阅读全文
posted @ 2017-09-10 21:46 茅坤mk 阅读(188) 评论(0) 推荐(0)
摘要:一、服务器资源 服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响。Tomcat性能可以通过提升服务器的性能来进行调优,但一般公司不会选择这种调优方式,而使用优化配置参数来调优。 二、配置参数调优 1. JVM参数调优,即Tomcat堆虚拟内存 2、禁用DNS查询,打开压缩 3、调整线程数 阅读全文
posted @ 2017-09-10 20:54 茅坤mk 阅读(196) 评论(0) 推荐(0)
摘要:一、端口占用 先查看tomcat下的logs日志文件,如果现实地址已被占用,则需重新修改端口。 tomcat默认启动的是8080,如果你想修改为80,则需要修改server.xml文件: vim $CATALINA_HOME/conf/server.xml #如果没有配置$CATALINA_HOME 阅读全文
posted @ 2017-09-10 12:48 茅坤mk 阅读(795) 评论(0) 推荐(0)
摘要:一、配置/etc/rc.local rc.local是linux启动init之后执行的脚本。 sudo vi /etc/rc.local 添加如下一行 /home/myuser/software/apache-tomcat-7.0.29/bin/startup.sh(脚本绝对路径) 二、sysv-r 阅读全文
posted @ 2017-09-10 12:37 茅坤mk 阅读(478) 评论(0) 推荐(0)
摘要:一、linux 安装软件的步骤 (1)下载软件的压缩包 (2)解压到指定的目录 (3)配置环境变量 ,配置PATH(在任意目录启动,这PATH可以省略,若不配置只有安装目录才能启动) (4)启动 二、Tomcat安装 A、按照传统的安装模式 (1)下载Tomcat 地址:http://tomcat. 阅读全文
posted @ 2017-09-10 10:50 茅坤mk 阅读(154) 评论(0) 推荐(0)
摘要:一、中文乱码原因 Tomcat默认是按ISO-8859-1进行URL解码,ISO-8859-1并未包括中文字符,中文字符不能被正确解析了。 二、配置编码 在tomcat的conf/server.xml下的connetor属性中增加URIEncoding或者useBodyEncodingForURI属 阅读全文
posted @ 2017-09-09 21:24 茅坤mk 阅读(301) 评论(0) 推荐(0)
摘要:一、BigDecimal介绍 java.math.BigDecimal 不可变的immutable、任意精度的有符号十进制数。BigDecimal 由任意精度的整数非标度值和32位的整数标度(scale)组成。 标度(scale)如果为零或正数,则标度是小数点后的位数。如果为负数,则将该数的非标度值 阅读全文
posted @ 2017-09-08 16:10 茅坤mk 阅读(926) 评论(1) 推荐(2)
摘要:一、Tomcat启动参数 JAVA_OPTS参数说明 -server 启用jdk 的 server 版; -Xms java 虚拟机初始化时的堆最小内存; -Xmx java 虚拟机可使用堆的最大内存; -XX: PermSize 非堆内存永久保留区域 -XX:MaxPermSize 非堆内存最大永 阅读全文
posted @ 2017-09-07 23:10 茅坤mk 阅读(2433) 评论(0) 推荐(0)
摘要:一、索引的意义 表中创建索引,以便更加快速高效地查询数据。 用户无法看到索引,它们只能被用来加速搜索/查询。 注释:更新一个包含索引的表需要比更新一个没有索引的表花费更多的时间,这是由于索引本身也需要更新。因此,理想的做法是仅仅在常常被搜索的列(以及表)上面创建索引。 二、索引创建与删除、查看 (1 阅读全文
posted @ 2017-09-07 14:58 茅坤mk 阅读(121) 评论(0) 推荐(0)
摘要:一、Enumeration接口 Enumeration接口中定义了一些方法,通过这些方法可以枚举(一次获得一个)对象集合中的元素。 这种传统接口已被迭代器取代,虽然Enumeration 还未被遗弃,但在现在代码中已经被很少使用了。尽管如此,它还是使用在诸如Vector和Properties这些传统 阅读全文
posted @ 2017-09-07 14:02 茅坤mk 阅读(186) 评论(0) 推荐(0)
摘要:一、hash算法 哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值,这个小的二进制值称为哈希值。哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的,所以数据的哈希 阅读全文
posted @ 2017-09-05 22:16 茅坤mk 阅读(1406) 评论(0) 推荐(0)
摘要:一、change指令 chattr chgrp chmod chown chfn chsh chroot 二、ch指令详细介绍 (1)chattr 全名:change attribute 作用:chattr命令用于改变文件属性 语法:chattr [-RV][-v<版本编号>][+/-/=<属性>] 阅读全文
posted @ 2017-09-04 21:24 茅坤mk 阅读(4441) 评论(0) 推荐(0)
摘要:一、基数排序 (1)基数排序的简介 基数排序不同于其他的排序算法,它不是基于比较的算法。基数排序是一种借助多关键字排序的思想对单逻辑关键字进行排序的方法。它是一种稳定的排序算法。 通常用于对数的排序选择的是最低位优先法,即先对最次位关键字进行排序,再对高一位的关键字进行排序,以此类推。 (2)基数排 阅读全文
posted @ 2017-09-02 20:39 茅坤mk 阅读(296) 评论(0) 推荐(0)