建议首先阅读Java 8 函数式接口归纳 流式编程作为Java 8的亮点之一,是继Java 5之后对集合的再一次升级,可以说Java 8几大特性中,Streams API 是作为Java 函数式的主角来设计的,夸张的说,有了Streams … 继续阅读 Java 8 Streams API 详解
Java 8 函数式接口归纳
Java 8 函数式接口 用JDK 8 也有一段时间了,这个过程中也不免用到一些函数式接口,这里简单做个总结。 函数式接口:为了支持将lambda表达式作为参数传入接口中,Java 8 定义了函数式接口的概念,函数式接口一般只有一个抽象的方 … 继续阅读 Java 8 函数式接口归纳
java.lang.String 为什么是final 的?
java.lang.String 为什么是final 的? 之前只是模模糊糊的知道原因,今天在看另外一篇文章的时候,作者简单的说了下String类为什么是final的,但是他的理由说服不了我,这里我简单总结下为什么java.lang.Str … 继续阅读 java.lang.String 为什么是final 的?
设计模式之装饰者模式
【情景模式】 说实话,在第一次遇到Java IO的时候,我是拒绝的,为了读写一个文件,需要一大堆代码,还有很多很多类,在不了解这些类的功能的情况下,很容器犯迷糊。之后在系统学习了IO之后明白了其实这就是装饰者模式 那么,之前一直抵制这么多类 … 继续阅读 设计模式之装饰者模式
聊聊字节序
前面在了解字符编码的时候,遇到了为什么UTF-8没有字节序的问题,这个字节序是什么?为什么UTF-16会有字节序的问题呢? 字节序是什么 首先,需要明白的是,由于各种历史原因,不同的CPU存储的处理一个多字节数据的方式是不一样的: 大端字节 … 继续阅读 聊聊字节序
Java 编码那些事(二) 实战解决IDEA+Tomcat+Servlet 乱码问题
建议阅读:Java 编码那些事(一)什么是编码 现在说说编码在Java中的实际运用。在使用tomcat的时候,绝大部分同学都会遇到乱码的问题,查查文档,google一下解决方案啥的,都是设置这里,设置那里,或者在代码中添加编码方式,虽然最终 … 继续阅读 Java 编码那些事(二) 实战解决IDEA+Tomcat+Servlet 乱码问题
Tomcat 源码剖析(七)Response.getOutputStream() 是如何缓存数据流的?
【问题】 在Tomcat 8以后,默认都是使用的NIO,并且内部有一定的缓存,那么 Tomcat是如何缓存Request和Response的输入输出流的? 【思路】 这个感觉比较简单,NIO的输入单位是ByteBuffer,那么直接在Res … 继续阅读 Tomcat 源码剖析(七)Response.getOutputStream() 是如何缓存数据流的?
设计模式之观察者模式
【情景模式】 目前需要开发一个大型系统,这个大型系统订了一个生命周期,比如初始化-启动-运行-关闭-销毁,由于此系统比较大,因此在每个生命周期都需要做一定的准备工作,并且后期维护可能会修改这些准备工作。 【代码】 伪代码如下: public … 继续阅读 设计模式之观察者模式
Tomcat 源码剖析(六)Tomcat如何读取web.xml并生成ServletConfig对象
【问题】 Tomcat是如何读取web.xml并生成ServletConfig对象的 【猜想】 这个没什么思路,要是按照常规的来,结合Tomcat读取server.xml的方式来看,应该同样是是通过Degister通过规则配置生成相应的属性 … 继续阅读 Tomcat 源码剖析(六)Tomcat如何读取web.xml并生成ServletConfig对象
Tomcat源码剖析(五)Tomcat如何管理Servlet生命周期
【问题】 Servlet规范中规定Servlet生命周期只调用一次init()和distory()方法,每次请求来只调用service()方法,那么Tomcat是如何管理Servlet生命周期的? 高并发请求中,如果保证只初始化一个Serv … 继续阅读 Tomcat源码剖析(五)Tomcat如何管理Servlet生命周期