HTTP协议的8种请求类型介绍
摘要:HTTP协议中共定义了八种方法或者叫“动作”来表明对Request-URI指定的资源的不同操作方式,具体介绍如下: OPTIONS:返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送'*'的请求来测试服务器的功能性。 HEAD:向服务器索要与GET请求相一致的响应,只不过响
阅读全文
posted @
2018-04-30 17:04
@ 小浩
阅读(581)
推荐(0) 编辑
Java常用的线程池
摘要:Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newS
阅读全文
posted @
2018-04-30 16:21
@ 小浩
阅读(247)
推荐(0) 编辑
Java的Start和Runnable方法的区别
摘要:两种方法的区别 1) start:用法:start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码。通过调用Thread类的start()方法来启动一个线程,这时此线程处于就绪(可运行)状态,并没有运行,一旦得到cpu时间片,就开始执行run()方法
阅读全文
posted @
2018-04-30 15:42
@ 小浩
阅读(361)
推荐(0) 编辑
Spring MVC 原理图
摘要:SpringMVC的工作原理图: SpringMVC流程 1、 用户发送请求至前端控制器DispatcherServlet。 2、 DispatcherServlet收到请求调用HandlerMapping处理器映射器。 3、 处理器映射器找到具体的处理器(可以根据xml配置、注解进行查找),生成处
阅读全文
posted @
2018-04-30 15:03
@ 小浩
阅读(449)
推荐(0) 编辑
对象生命周期中至少被GC一次后存活
摘要:Finalize调用流程:GC时,当对象变成(GC Roots)不可达时,若该对象覆盖(重写)了finalize方法并且未执行过finalze方法,则将其放入F-Queue队列,由一低优先级线程执行该队列中对象的finalize方法;否则直接将其回收。执行finalize方法完毕后,GC会再次判断该
阅读全文
posted @
2018-04-30 13:31
@ 小浩
阅读(266)
推荐(0) 编辑
JVM内存调优
摘要:JVM性能调优有很多设置,这个参考JVM参数即可. 主要调优的目的: 控制GC的行为.GC是一个后台处理,但是它也是会消耗系统性能的,因此经常会根据系统运行的程序的特性来更改GC行为 控制JVM堆栈大小.一般来说,JVM在内存分配上不需要你修改,(举例)但是当你的程序新生代对象在某个时间段产生的比较
阅读全文
posted @
2018-04-30 12:49
@ 小浩
阅读(361)
推荐(0) 编辑
JVM学习之GC常用算法
摘要:GC策略解决了哪些问题? 既然是要进行自动GC,那必然会有相应的策略,而这些策略解决了哪些问题呢,粗略的来说,主要有以下几点。 1、哪些对象可以被回收。 2、何时回收这些对象。 3、采用什么样的方式回收。 GC策略采用的何种算法 有关上面所提到的三个问题,其实最主要的一个问题就是第一个,也就是哪些对
阅读全文
posted @
2018-04-25 14:09
@ 小浩
阅读(667)
推荐(0) 编辑
scheduler定时器相关
摘要:定时器官网: http://www.quartz-scheduler.org/
阅读全文
posted @
2018-04-23 16:02
@ 小浩
阅读(174)
推荐(0) 编辑
Java基础:IO流之字节流和字符流
摘要:1. 流的概念 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等。 一个流,必有源端和目的端,它们可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL。 流的
阅读全文
posted @
2018-04-21 19:43
@ 小浩
阅读(498)
推荐(0) 编辑
Hash算法原理的简单分析
摘要:散列表,它是基于高速存取的角度设计的,也是一种典型的“空间换时间”的做法。顾名思义,该数据结构能够理解为一个线性表,可是当中的元素不是紧密排列的,而是可能存在空隙。 散列表(Hash table,也叫哈希表),是依据关键码值(Key value)而直接进行訪问的数据结构。也就是说,它通过把关键码值映
阅读全文
posted @
2018-04-19 20:15
@ 小浩
阅读(1252)
推荐(0) 编辑
Spring+MyBatis实现数据库读写分离方案
摘要:推荐第四种:https://github.com/shawntime/shawn-rwdb 方案1 通过MyBatis配置文件创建读写分离两个DataSource,每个SqlSessionFactoryBean对象的mapperLocations属性制定两个读写数据源的配置文件。将所有读的操作配置在
阅读全文
posted @
2018-04-17 11:28
@ 小浩
阅读(457)
推荐(0) 编辑
Java的几种常见引用(强引用、软引用、弱引用和虚引用)
摘要:强引用:无论内存是否足够,不会回收。 软引用:内存不足时,回收该引用关联的对象。 弱引用:垃圾回收时,无论内存是否足够,都会回收。 虚引用:任何时候都可能被垃圾回收器回收。 在Java中,虽然不需要程序员手动去管理对象的生命周期,但是如果希望某些对象具备一定的生命周期的话(比如内存不足时JVM就会自
阅读全文
posted @
2018-04-17 07:55
@ 小浩
阅读(1086)
推荐(0) 编辑
HttpURLConnection连接超时问题
摘要:1、问题描述 这几天测试重构后的下载框架,发现在下载过程中如果网络中断或网络较差,个别应用的下载就会阻塞卡住,一直卡在 “正在下载 xx%”。 2、问题排查和定位 思考:网络差不应该报网络异常的错误或者直接抛timeout异常吗?所以马上去检查Http请求的地方:发现在DownloadThread中
阅读全文
posted @
2018-04-16 09:42
@ 小浩
阅读(20443)
推荐(0) 编辑
Java5,Java 6,Java 7,Java 8新特性
摘要:Java5: 1、泛型 Generics: 引用泛型之后,允许指定集合里元素的类型,免去了强制类型转换,并且能在编译时刻进行类型检查的好处。 Parameterized Type作为参数和返回值,Generic是vararg、annotation、enumeration、collection的基石。
阅读全文
posted @
2018-04-16 07:25
@ 小浩
阅读(314)
推荐(0) 编辑
反射中Class.forName()和ClassLoader.loadClass()的区别
摘要:一 Java类装载过程 装载:通过累的全限定名获取二进制字节流,将二进制字节流转换成方法区中的运行时数据结构,在内存中生成Java.lang.class对象; 链接:执行下面的校验、准备和解析步骤,其中解析步骤是可以选择的; 校验:检查导入类或接口的二进制数据的正确性;(文件格式验证,元数据验证,字
阅读全文
posted @
2018-04-16 07:02
@ 小浩
阅读(9091)
推荐(0) 编辑
Java的clone():深复制与浅复制
摘要:Java的clone():深复制与浅复制 Java中要想自定义类的对象可以被复制,自定义类就必须实现Cloneable中的clone()方法,如下: 1 public class Student implements Cloneable { 2 3 private String name; 4 5
阅读全文
posted @
2018-04-15 17:34
@ 小浩
阅读(406)
推荐(0) 编辑
Memcache和Redis区别
摘要:Memcache和Redis区别: 共同点:Memcache,Redis 都是内存数据库 区别: Memcache Memcache可以利用多核优势,单实例吞吐量极高,可以达到几十万QPS,适用于最大程度扛量 只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。 无法进行持
阅读全文
posted @
2018-04-12 07:56
@ 小浩
阅读(253)
推荐(0) 编辑