java
文章平均质量分 75
天蓝Skyline
这个作者很懒,什么都没留下…
展开
-
HttpServletRequestWrapper和HttpServletResponseWrapper详解
Servlet规范中的filter引入了一个功能强大的拦截模式。Filter能在request到达servlet的服务方法之前拦截HttpServletRequest对象,而在服务方法转移控制后又能拦截HttpServletResponse对象。但是HttpServletRequest中的参数是无法改变的,若是手动执行修改request中的参数,则会抛出异常。且无法获取到HttpServlet原创 2015-05-14 15:13:13 · 16793 阅读 · 1 评论 -
HTTP的POST提交的四种常见消息主体格式
HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS、GET、HEAD、POST、PUT、DELETE、TRACE、CONNECT 这几种。其中 POST 一般用来向服务端提交数据,本文主要讨论 POST 提交数据的几种方式。我们知道,HTTP 协议是以 ASCII 码传输,建立在 TCP/IP 协议之上的应用层规范。规范把 HTTP 请求分为三个部分:状态行、请求头、消息主转载 2016-05-09 18:00:12 · 27896 阅读 · 0 评论 -
java 动态代理
1.java 动态代理实例:package com.xp.dsp.dynamicProxy;/** * Created by Skyline on 2016/6/16. */public interface Subject { void doSomeThing();}package com.xp.dsp.dynamicProxy;/** * Cre原创 2016-06-17 11:52:45 · 325 阅读 · 0 评论 -
关于java中Double类型运算精度问题
问题的提出:如果我们编译运行下面这个程序会看到什么?public class Test{ public static void main(String args[]){ System.out.println(0.05+0.01); System.out.println(1.0-0.42); System.out.println转载 2016-12-16 12:53:59 · 610 阅读 · 0 评论 -
java 强制类型转化
在Java中强制类型转换分为基本数据类型和引用数据类型两种,这里我们讨论的后者,也就是引用数据类型的强制类型转换。 在Java中由于继承和向上转型,子类可以非常自然地转换成父类,但是父类转换成子类则需要强制转换。因为子类拥有比父类更多的属性、更强的功能,所以父类转换为子类需要强制。那么,是不是只要是父类转换为子类就会成功呢?其实不然,他们之间的强制类型转换是有条件的。转载 2016-12-22 10:49:45 · 601 阅读 · 0 评论 -
java 构造函数浅谈
使用构造器时需要记住:1.构造器必须与类同名(如果一个源文件中有多个类,那么构造器必须与公共类同名)2.每个类可以有一个以上的构造器3.构造器可以有0个、1个或1个以上的参数4.构造器没有返回值5.构造器总是伴随着new操作一起调用示例:A.javaJava代码 public class A{ public A(){转载 2016-12-28 16:31:51 · 791 阅读 · 0 评论 -
session 的创建和保存
参考:http://www.cnblogs.com/sharpxiajun/p/3395607.htmlhttp://lavasoft.blog.51cto.com/62575/275589/sessionid是一个会话的key,浏览器第一次访问服务器会在服务器端生成一个session,有一个sessionid和它对应。tomcat生成的sessionid叫做jsessionid。转载 2017-01-13 17:21:19 · 5771 阅读 · 0 评论 -
JPA学习笔记1——JPA基础
JPA学习笔记1——JPA基础 1.JPA简介:Java持久化规范,是从EJB2.x以前的实体Bean(Entity bean)分离出来的,EJB3以后不再有实体bean,而是将实体bean放到JPA中实现。JPA是sun提出的一个对象持久化规范,各JavaEE应用服务器自主选择具体实现,JPA的设计者是hibernate框架的作者,因此Hibernate作为Jboss服务器中转载 2017-01-10 13:29:28 · 406 阅读 · 0 评论 -
JPA学习笔记2——JPA高级
JPA学习笔记2——JPA高级 1.JPA的实体生命周期:JPA的实体有以下4中生命周期状态:(1).New:瞬时对象,尚未有id,还未和Persistence Context建立关联的对象。(2).Managed:持久化受管对象,有id值,已经和Persistence Context建立了关联的对象。(3).Datached:游离态离线对象,有id值,但没有和Pe转载 2017-01-10 13:39:41 · 494 阅读 · 0 评论 -
Spring Data JPA: 为所有Repository添加自定义方法
Spring Data JPA: 为所有Repository添加自定义方法Spring Data JPA中的Repository是接口,是JPA根据方法名帮我们自动生成的。但很多时候,我们需要为Repository提供一些自定义的实现。今天我们看看如何为Repository添加自定义的方法。自定义Repository接口首先我们来添加一个自定义的接口:添加Bas转载 2017-01-10 14:38:53 · 10102 阅读 · 2 评论 -
Spring Data JPA: 为单个Repository添加自定义方法
Spring Data JPA: 为单个Repository添加自定义方法我们在Spring Data JPA: 为所有Repository添加自定义方法中学习了通过JpaRepositoryFactory来为所有Repository添加一个公共的方法以及实现。但在很多情况下,我们需要为某个单独的Repository添加一个自定义的方法,并使其拥有一个自定义的实现。我们现在就来转载 2017-01-10 14:40:05 · 10145 阅读 · 0 评论 -
spring data jpa 自定义分页插件
实例 (1)entity代码:package com.skyline.study.webdemo1.entity;import org.hibernate.annotations.GenericGenerator;import javax.persistence.*;import javax.validation.constraints.NotNull;import jav原创 2017-01-16 17:23:45 · 5082 阅读 · 0 评论 -
session机制详解
虽然session机制在web应用程序中被采用已经很长时间了,但是仍然有很多人不清楚session机制的本质,以至不能正确的应用这一技术。本文将详细讨论session的工作机制并且对在Java web application中应用session机制时常见的问题作出解答。 一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transacti转载 2017-02-17 01:08:05 · 478 阅读 · 0 评论 -
session机制详解2
Session保存在服务器端。为了获得更高的存取速度,服务器一般把Session放在内存里。每个用户都会有一个独立的Session。如果Session内容过于复杂,当大量客户访问服务器时可能会导致内存溢出。因此,Session里的信息应该尽量精简。Session在用户第一次访问服务器的时候自动创建。需要注意只有访问JSP、Servlet等程序时才会创建Session,只访问HTML、IMAGE转载 2017-02-17 01:09:54 · 479 阅读 · 0 评论 -
同步、异步、阻塞、非阻塞
近来遇到了一些常见的概念,尤其是网络编程方面的概念,如:阻塞、非阻塞、异步I/O等等,对于这些概念自己也没有太清晰的认识,只是很模糊的概念,说了解吧也了解,但是要让自己准确的描述概念方面的具体细节,却说的不那么准确,这也是自己在这几个方面也没有细细考究过的原因吧。经过看了些这几个概念的资料,发现同步、异步、阻塞、非阻塞的概念其实也并不难以理解,在此写下此文,欢迎拍砖,希望多多交流。1 同步与异步#...转载 2018-05-12 11:21:40 · 242 阅读 · 0 评论 -
Java 堆、栈、常量池详解
Java堆、栈和常量池以及相关String的详细讲解(经典中的经典) 博客分类: Java综合 一:在JAVA中,有六个不同的地方可以存储数据: 1. 寄存器(register)。 这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。转载 2016-04-25 17:24:53 · 535 阅读 · 0 评论 -
Java 堆、栈、内存分析
在 JAVA 中,有六个不同的地方可以存储数据: 1. 寄存器( register )。这是最快的存储区,因为它位于不同于其他存储区的地方——处理器内部。但是寄存器的数量极其有限,所以寄存器由编译器根据需求进行分配。你不能直接控制,也不能在程序中感觉到寄存器存在的任何迹象。 2. 栈( stack )。位于通用 RAM 中,但通过它的“栈指针”可以从处理器获得支持。堆栈指针若向下移动,则分转载 2016-04-25 16:30:55 · 356 阅读 · 0 评论 -
httpClient容易忽略的细节-关闭连接
ava代码 HttpClient client = new HttpClient(); HttpMethod method = new GetMethod("http://www.apache.org"); try { client.executeMethod(method); byte[] responseBody = null;转载 2015-05-20 20:42:38 · 9507 阅读 · 0 评论 -
使用Java VisualVM监控JVM
我们经常需要对我们的开发的软件做各种测试, 软件对系统资源的使用情况更是不可少, 目前有多个监控工具, 相比JProfiler对系统资源尤其是内存的消耗是非常庞大,JDK1.6开始自带的VisualVM就是不错的监控工具.这个工具就在JAVA_HOME\bin\目录下的jvisualvm.exe, 双击这个文件就能看到一个比较直观的界面 从左边Applications树中可转载 2015-05-21 10:41:10 · 1337 阅读 · 0 评论 -
自定义jdbc连接池
1.连接池ConnectionPoolpackage com.xpspeed.common.util;import org.slf4j.LoggerFactory;import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;import java.util.Linked原创 2015-05-21 15:59:28 · 408 阅读 · 0 评论 -
HttpClient 中的三个超时详解
1.HttpClient内部三个超时时间的区别HttpClient内部有三个超时时间设置:连接池获取可用连接超时,连接超时,读取数据超时先看以下HttpClient的初始化代码:RequestConfig requestConfig = RequestConfig.custom() .setConnectionRequestTimeout(con原创 2015-06-03 17:31:45 · 67489 阅读 · 2 评论 -
HttpClient工具类
以下是HttpClient工具类HttpClientUtil.javapackage com.xpspeed.common.util;import org.apache.commons.io.IOUtils;import org.apache.http.Header;import org.apache.http.HttpEntity;import org.apache.http.Ht原创 2015-05-20 20:05:36 · 1170 阅读 · 0 评论 -
jar 用法详解
1.理论知识jar 命令详解 jar 是随 JDK 安装的,在 JDK 安装目录下的 bin 目录中,Windows 下文件名为 jar.exe,Linux 下文件名为 jar。它的运行需要用到 JDK 安装目录下 lib 目录中的 tools.jar 文件。不过我们除了安装 JDK 什么也不需要做,因为 SUM 已经帮我们做好了。我们甚至不需要将 tools.jar 放到 CLA原创 2015-06-10 22:18:41 · 5077 阅读 · 0 评论 -
java 异常类型及处理机制
在Java中,异常分为受检查的异常与运行时异常。下面的图展示了Java异常类的继承关系.粉红色的是受检查的异常(checked exceptions)。这类异常必须在方法内部被 try{}catch语句块所捕获,或者在方法签名里通过throws将该异常向外抛给调用者(外部调用者再通过try{}catch语句块捕获处理或者再通过throws继续向外抛出。)。绿色的异常是运行时原创 2015-07-05 14:03:54 · 534 阅读 · 0 评论 -
HashSet的实现原理
1. HashSet概述 HashSet实现Set接口,由哈希表(实际上是一个HashMap实例)支持。它不保证set 的迭代顺序;特别是它不保证该顺序恒久不变。此类允许使用null元素。2. HashSet的实现 如果不等,则添加到该数组索引对应的链表中。---------------------------------------------------转载 2015-07-15 23:05:12 · 281 阅读 · 0 评论 -
HashMap的实现原理
1. HashMap的数据结构数据结构中有数组和链表来实现对数据的存储,但这两者基本上是两个极端。 数组数组存储区间是连续的,占用内存严重,故空间复杂的很大。但数组的二分查找时间复杂度小,为O(1);数组的特点是:寻址容易,插入和删除困难;链表链表存储区间离散,占用内存比较宽松,故空间复杂度很小,但时间复杂度很大,达O(N)。链表的特点是:寻址困难,插入和删除容易。哈希转载 2015-07-15 22:42:52 · 362 阅读 · 0 评论 -
LinkedHashMap实现原理
1. LinkedHashMap概述: LinkedHashMap是Map接口的哈希表和链接列表实现,具有可预知的迭代顺序。此实现提供所有可选的映射操作,并允许使用null值和null键。此类不保证映射的顺序,特别是它不保证该顺序恒久不变。 LinkedHashMap实现与HashMap的不同之处在于,后者维护着一个运行于所有条目的双重链接列表。此链接列表定义了迭代顺序转载 2015-07-16 10:56:02 · 268 阅读 · 0 评论 -
jdk,jre与jvm的区别与联系
关于jdk和jre 大家肯定在安装JDK的时候会有选择是否安装单独的jre,一般都会一起安装,我也建议大家这样做。因为这样更能帮助大家弄清楚它们的区别: Jre 是java runtime environment, 是java程序的运行环境。既然是运行,当然要包含jvm,也就是大家熟悉的虚拟机啦,还有所有java类库的class文件,都在lib目录下打包成了jar。大家可以自己验证转载 2015-09-06 21:54:49 · 461 阅读 · 0 评论 -
jconsole监控tomcat运行状态
一、搭建jconsole监控远程tomcat运行状态步骤1.tomcat所在设备的jdk开放访问的账号和密码:(1)在tomcat目录下新建文件夹jmx_conf。(2)拷贝$JAVA_HOME/jre/lib/managent/目录下的文件jmxremote.access和jmxremote.password.template到文件夹jmx_conf。(3)添加访问账号和权限:修原创 2015-09-28 17:37:56 · 1637 阅读 · 0 评论 -
为什么要使用SLF4J而不是Log4J
每一个Java程序员都知道日志对于任何一个Java应用程序,尤其是服务端程序是至关重要的,而很多程序员也已经熟悉各种不同的日志库如java.util.logging、Apache log4j、logback。但如果你还不知道SLF4J(Simple logging facade for Java)的话,那么是时候去在你项目中学习使用SLF4J了。在这篇文章中,我们将学习为什么使用SLF4J比l转载 2016-01-20 15:30:12 · 338 阅读 · 0 评论 -
Java 异常分类及处理机制
深入理解java异常处理机制目录(?)[-] 1 引子 2JAVA异常 4处理异常机制1 捕获异常trycatch 和 finallytry-catch语句trycatch-finally语句try-catch-finally 规则异常处理语句的语法规则trycatchfinally语句块的执行顺序2 抛出异常throws抛出异常转载 2016-04-01 14:42:29 · 3291 阅读 · 0 评论 -
HttpClient-v4.5官方文档翻译
HttpClient 4.5.2前言超文本传输协议(HTTP)可能是当今互联网上使用的最重要的协议。 网络服务,支持网络的设备以及网络计算的发展继续扩大了HTTP协议在用户驱动的Web浏览器之外的作用,同时增加了需要HTTP支持的应用程序的数量。尽管java.net包提供了通过HTTP访问资源的基本功能,但它并不能提供许多应用程序所需的全部灵活性或功能。 HttpClient试图通...转载 2018-11-14 17:34:33 · 7176 阅读 · 2 评论