
Java
Mr_Faker
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spring日志
log4j日志pattern配置c category的名称,可使用{n}限制输出的精度。例如:logger名为"a.b.c",%c{2}将输出"b.c"。C 产生log事件的java完全限定类名。可使用{n}限制输出的精度。例如:“org.apache.xyz.SomeClass”,%C{2}将输出“SomeClass”。d 时间和日期的输出格式,例如:%d{yyyy MM dd HH:mm...转载 2020-04-19 14:53:13 · 239 阅读 · 0 评论 -
SpringMVC的拦截器(Interceptor)和过滤器(Filter)的区别与联系
一 简介(1)过滤器:依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要获取的数据,比如:在过滤器中修改字符编码;在过滤器中修改HttpServletRequest的一些参数,包括:过滤低俗文字、危险字符等关于过滤器的一些用法可以参考我写过的这些文章: ...转载 2018-08-23 18:02:43 · 225 阅读 · 0 评论 -
一个tomcat配置两个端口
一、Tomcat 安装后本身提供了一个server,端口配置默认是8080,对应目录为:..\Tomcat 8.0\webapps二、Tomcat 8.0 配置多个端口,其实也就是给Tomcat增加几个server,并设置对应目录。下面以增加两个端口号为例第一步、修改server.xml[..\Tomcat 8.0\conf](1)Tomcat提供的如下:<?xml ver...转载 2018-08-17 11:34:03 · 4044 阅读 · 0 评论 -
Tomcat请求过程
1 – Tomcat Server的组成部分1.1 – ServerA Server element represents the entire Catalina servlet container. (Singleton)Server表示整个的Catalina Servlet容器。 Tomcat提供了Server接口的一个默认实现,这通常不需要用户自己去实现。在Server容器中,...转载 2018-08-18 16:45:58 · 372 阅读 · 0 评论 -
B-树,B+树,B*树详解
B-树B-树是一种多路搜索树(并不一定是二叉的)1970年,R.Bayer和E.mccreight提出了一种适用于外查找的树,它是一种平衡的多叉树,称为B树(或B-树、B_树)。一棵m阶B树(balanced tree of order m)是一棵平衡的m路搜索树。它或者是空树,或者是满足下列性质的树:1、根结点至少有两个子女;2、每个非根节点所包含的关键字个数 j 满足:┌m...转载 2018-07-05 10:48:29 · 178 阅读 · 0 评论 -
不错的集合框架(HashMap、ConcurrentHashMap、LRUCache、HashSet、ArrayList等)的文章链接
http://wiki.jikexueyuan.com/project/java-collection/concurrenthashmap.html原创 2018-08-13 10:32:57 · 414 阅读 · 0 评论 -
LinkedHashMap 与 LRUcache
LRU 缓存介绍我们平时总会有一个电话本记录所有朋友的电话,但是,如果有朋友经常联系,那些朋友的电话号码不用翻电话本我们也能记住,但是,如果长时间没有联系了,要再次联系那位朋友的时候,我们又不得不求助电话本,但是,通过电话本查找还是很费时间的。但是,我们大脑能够记住的东西是一定的,我们只能记住自己最熟悉的,而长时间不熟悉的自然就忘记了。其实,计算机也用到了同样的一个概念,我们用缓存来存放以...转载 2018-08-13 09:40:36 · 197 阅读 · 0 评论 -
断点续传下载原理实现
需求背景动态创建的文件下载的时候希望浏览器显示下载进度 动态创建的文件希望能够分段下载HTTP断点续传报文要实现HTTP断点续传必须要简单了解以下几个报文。Accept-Ranges 告诉客户端(浏览器..)服务器端支持断点续传 服务器端返回 Range 客户端告诉服务器端从指定的的位置/范围(这里值字节数)下载资源 客户端发出 Content-Range 服务器端告诉客户端响...转载 2018-08-08 11:04:13 · 520 阅读 · 0 评论 -
Java和C++区别
1.指针JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。2.多重继承c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻...转载 2018-08-07 16:08:46 · 1085 阅读 · 0 评论 -
Arrays.copyOf和System.arraycopy之间的区别
首先观察先System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)的声明:public static native void arraycopy(Object src, int srcPos,Object dest, int destPos,int length);src - 源数组。 ...转载 2018-07-31 09:24:11 · 331 阅读 · 0 评论 -
Session和Cookie的区别与联系
一. 概念理解你可能有留意到当你浏览网页时,会有一些推送消息,大多数是你最近留意过的同类东西,比如你想买桌子,上淘宝搜了一下,结果连着几天会有各种各样的桌子的链接。这是因为你浏览某个网页的时候,WEB 服务器会先送一些资料放在你的计算机上,类似于你打的文字,选的一些东西什么的,Cookie 会帮你都纪录下来。当下次你再光临同一个网站,WEB服务器会先看看有没有它上次留下的 Cookie...转载 2018-07-30 14:01:08 · 155 阅读 · 0 评论 -
自定义注解
概述在开发Java程序,尤其是Java EE应用的时候,总是免不了与各种配置文件打交道。以Java EE中典型的S(pring)S(truts)H(ibernate)架构来说,Spring、Struts和Hibernate这三个框架都有自己的XML格式的配置文件。这些配置文件需要与Java源代码保存同步,否则的话就可能出现错误。而且这些错误有可能到了运行时刻才被发现。把同一份信息保存在两个地方...转载 2018-07-30 11:36:04 · 500 阅读 · 0 评论 -
红黑树
R-B Tree简介 R-B Tree,全称是Red-Black Tree,又称为“红黑树”,它一种特殊的二叉查找树。红黑树的每个节点上都有存储位表示节点的颜色,可以是红(Red)或黑(Black)。红黑树的特性:(1)每个节点或者是黑色,或者是红色。(2)根节点是黑色。(3)每个叶子节点(NIL)是黑色。 [注意:这里叶子节点,是指为空(NIL或NULL)的叶子节点!](4)如果一...转载 2018-07-19 13:17:44 · 187 阅读 · 0 评论 -
为什么String要设计成不可变的?
这是一个老生常谈的话题(This is an old yet still popular question). 在Java中将String设计成不可变的是综合考虑到各种因素的结果,想要理解这个问题,需要综合内存,同步,数据结构以及安全等方面的考虑. 在下文中,我将为各种原因做一个小结。1. 字符串常量池的需要字符串常量池(String pool, String intern pool, S...转载 2018-07-18 17:19:30 · 190 阅读 · 0 评论 -
多态的实现原理
多态在Java技术里有很重要的地位,在面试中也会经常被问到。多态的使用大家应该都比较了解,但是多态的实现原理就有点抽象了,查了很多很多资料,连续几天断断续续的看,有时候看着看着就走神了。毕竟太抽象,哈哈~不过依然硬着头皮看下来了(也不知道看了多少遍),并且将很多资料里关于多态的知识进行了整理(添添加加删删减减了很久,也把重点根据自己的理解用红字标出),便有了这篇文章。通过这篇文章相信可以帮...转载 2018-07-23 17:00:56 · 5406 阅读 · 1 评论 -
Java抽象类与接口的区别
很多常见的面试题都会出诸如抽象类和接口有什么区别,什么情况下会使用抽象类和什么情况你会使用接口这样的问题。本文我们将仔细讨论这些话题。在讨论它们之间的不同点之前,我们先看看抽象类、接口各自的特性。抽象类抽象类是用来捕捉子类的通用特性的 。它不能被实例化,只能被用作子类的超类。抽象类是被用来创建继承层级里子类的模板。以JDK中的GenericServlet为例: 1 2...转载 2018-07-23 11:26:59 · 184 阅读 · 0 评论 -
HashMap的扩容机制---resize()
虽然在hashmap的原理里面有这段,但是这个单独拿出来讲rehash或者resize()也是极好的。什么时候扩容:当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值---即当前数组的长度乘以加载因子的值的时候,就要自动扩容啦。扩容(resize)就是重新计算容量,向HashMap对象里不停的添加元素,而HashMap对象内部的数组无法装载更多的元素时,对象就需要扩大数组的...转载 2018-06-26 19:57:59 · 193 阅读 · 0 评论 -
Java跨平台原理
1.Java编译过程与C/C++编译过程的差异C/C++编译器生成一个对象的代码时,该代码是在某一特定硬件平台下运行而生成的。因此在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。Java编译时却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由解释器在运行过程中创建内存布局,然后再通过查表...转载 2018-07-05 09:47:00 · 3036 阅读 · 0 评论 -
JDK1.8新特性
总的来说,JDK在以下方面具有新特性: 1. 速度更快 – 红黑树 2. 代码更少 – Lambda 3. 强大的Stream API – Stream 4. 便于并行 – Parallel 5. 最大化减少空指针异常 – Optional1、HashMap中的红黑树HashMap中链长度大于8时采取红黑树的结构存储。红黑树,除了添加,效率高于链表结构。2、ConcurrentHashMapJdk...转载 2018-07-01 14:24:54 · 196 阅读 · 0 评论