- 博客(1233)
- 资源 (61)
- 收藏
- 关注
原创 SpringMVC 的 DispatcherServlet 的初始化
基于 SpringMVC 5.0.6.RELEASEprotected void initStrategies(ApplicationContext context) { initMultipartResolver(context);// 初始化文件上传解析器 initLocaleResolver(context);// 初始化区域解析器(解决国际化问题) initTh...
2018-05-19 15:43:36 459
原创 当 CharacterEncodingFilter 遇到 HttpMessageConverter
先解释下几个相关的接口:/** * 表示 HTTP 请求消息和响应消息的基本接口 * 可以通过 getHeaders() 获取相应的 HttpHeaders */public interface HttpMessage { /** * 返回消息头(请求头/响应头) */ HttpHeaders getHeaders();}/** * 对 ...
2018-05-18 10:54:03 957
原创 Mac使用记录
环境变量配置显示隐藏文件命令行方式:显示隐藏文件: defaults write com.apple.Finder AppleShowAllFiles YES;KillAll Finder不显示隐藏文件: defaults write com.apple.Finder AppleShowAllFiles NO;KillAll Finder快捷键方式: command+s...
2018-05-15 10:57:11 3911
原创 一窥 HotSpot 方法表
作为 Java 多态实现的详细介绍 的补充。现阶段对 OOP 的审视:OOP 是什么? 面向对象编程。本质上就是对数据还有与之关联的行为进行编程。面向对象的三大基本特征:①封装;②继承;③多态。封装:数据和行为的打包继承:优点为了实现多态缺点又是增加了耦合度。多态:接口和实现的解耦解耦,解耦,解耦,还是TMD解耦。设计模式的三个准则: 1)中意于组合而不是继...
2018-05-08 15:51:53 644
原创 JAVA构造时成员初始化的陷阱
class Base { Base() { preProcess(); } void preProcess() { System.out.println("Base::preProcess"); }}class Derived extends Base { public String whenAmISet = "set...
2018-05-06 22:30:38 508
原创 在 Tomcat 中 Servlet 是如何工作的
基于Tomcat 8.5.30解析 ServletWeb 应用的初始化工作是在 org.apache.catalina.startup.ContextConfig 的 configureStart() 方法中实现的,应用的初始化主要是要解析web.xml 文件,这个文件描述了一个 Web 应用的关键信息,也是一个 Web 应用的入口。 web.xml 中的配置会被解析为一个org.a...
2018-05-05 22:49:55 2487
原创 什么是Servlet容器?
Web 服务器Web 服务器使用 HTTP 协议来传输数据。最简单的一种情况是,用户在浏览器中输入一个URL(如,www.example.com/index.html),然后就能获取网页进行阅读。 因此,Web服务器完成的工作就是发送网页至客户端。传输过程遵循 HTTP 协议,它指明了请求(request)消息和响应(response)消息的格式。 用户/客户端只能向 Web 服务器请求静...
2018-05-05 20:16:02 1318
原创 Java 命令学习
在 JDK 的 bin 目彔下,包含了java的相关命令及其他实用工具。 jps:查看本机的Java中进程信息。 jstack:打印线程的栈信息,制作线程Dump。 jmap:打印内存映射,制作堆Dump。 jstat:性能监控工具。 jhat:内存分析工具。 jconsole:简易的可视化控制台。 jvisualvm:功能强大的控制台。什么是Java Dump? Jav...
2018-04-26 09:41:24 278
原创 为什么存储密码字符数组比字符串更合适?
记得这是 《java核心技术》这本书中的一句话,当时读到时也是各种疑惑。 String 的存在在很大程度上就是取代字符数组char[] ,为何又推荐密码使用字符数组保存?我们知道,字符数组和字符串都可以用于存储文本数据。 任何与字符串相关的问题一定可以从字符串的属性里面找到线索,比如不可变性。对于String password1 = "1q2w3e";,String实例(本...
2018-04-25 22:31:44 2172
原创 Thread.join 解析
/** * Waits at most {@code millis} milliseconds for this thread to * die. A timeout of {...
2018-04-24 20:54:18 485
原创 小议 Java final 关键字
昨日面试美团,被问到 final 关键字,总觉得可以再进行总结一下了。 因为你所掌握的现有知识又会再次颠覆你原来的理解。final 用于属性语义:被初始化后不能被更改class Main { private final int x;}以上代码会报错:x 没有被初始化。 而对没有 final 关键字修饰的属性是会执行默认初始化的。 解决办法:cla...
2018-04-20 10:41:41 557 2
原创 我眼中的 HTTP
HTTP 在我眼中有两个很重要的特点:基于 请求(request) 和 响应(response)无状态这种简单性是其优点,同时也是其缺点。基于请求和响应一次请求对应一次响应,没有请求就没有响应。 可以看到:通信只能由客户端发起。服务器被动响应。 为了实现服务器主动向客户端推送信息 出现了 WebSocket。 WebSocket是一种在单个TCP连接上进行全双...
2018-04-18 10:11:07 392
原创 浅谈 Java 中的 SPI 机制
面向接口编程面向接口编程就是先把客户的业务逻辑先提取出来,作为接口,业务具体实现通过该接口的实现类来完成。 当客户需求变化时,只需编写该业务逻辑的新的实现类,不需要改写现有代码,减少对系统的影响。 其遵循的思想是:对扩展开放,对修改关闭。在使用面向接口的编程过程中,将具体逻辑与实现分开,减少了各个类之间的相互依赖。 面向接口编程的优点:降低程序的耦合性易于程序的扩展有利于程序的...
2018-04-15 22:43:52 1007 4
原创 Servlet 源码解析
Servlet 继承层次Servlet 工作原理Web Client(如nginx)向 Servlet 容器(如Tomcat)发出Http请求;Servlet 容器接收 Web Client 的请求;Servlet 容器创建一个 HttpRequest 对象,将 Web Client 请求的信息封装到这个对象中;(对于Tomcat实现:org.apache.coyote....
2018-04-14 16:17:34 1425
原创 IntelliJ如何与Tomcat完成项目部署
CATALINA_BASE 与 CATALINA_HOME 的区别:CATALINA_HOME 是 Tomcat 的安装目录,CATALINA_BASE 是 Tomcat 的工作目录。 如果我们想要运行多个 Tomcat 实例,但是不想安装多个 Tomcat 软件副本。那么我们可以配置多个工作目录,每个运行实例独占一个工作目录,但是共享同一个安装目录。Tomcat 每个运行实例需要使用自...
2018-04-12 12:44:59 433
原创 Object.java 简介
Class Object is the root of the class hierarchy. Every class has Object as a superclass. All objects, including arrays, implement the methods of this class.类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。...
2018-04-09 19:43:26 519
原创 Java 中的锁
Java 中对象的锁其实主要就是通过对象头的Mark Word进行表示的。 对于 HotSpot 虚拟机就是 \hotspot\src\share\vm\oops\markOop.hpp Mark Word 不是一个对象,只是一个字长的数据。在32为机器上,Mark Word 为32位,在64位上为64位。 Mark Word 中不同的位区域存储着不同的信息,但是需要注意的一点是,Ma...
2018-04-02 18:48:26 551
原创 Java 中创建线程的方式
继承 Thread 类定义 Thread 类的子类,并重写该类的run()方法,该run()方法的方法体就代表了该线程要完成的任务。因此把run()方法称为执行体。本质上讲,run() 就是我们自定义的回调函数,既然是回调函数,我们直接调用它就没有任何意义了~ 然后创建 Thread 子类的实例,即创建了线程对象。调用线程对象的start()方法来启动该线程。class MyThre...
2018-04-01 15:32:59 296
原创 一次完整的 HTTP 请求过程
HTTP 的两个最重要的点:基于请求/响应无状态HTTP请求的整个流程:DNS域名解析 (域名–>IP地址)在浏览器 DNS 缓存中搜索 对于 Chrome 浏览器: chrome://net-internals/#dns 在操作系统 DNS 缓存中搜索读取系统 hosts 文件,查找其中是否有对应的 ip我觉得系统 DNS 缓存本身就是 h...
2018-03-31 22:25:57 2053
原创 Java VM 内存模型
基于java -versionjava version "1.8.0_151"Java(TM) SE Runtime Environment (build 1.8.0_151-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)Java VM 内存模型分为线程私有和共享数据区两大类。 线程私有的...
2018-03-31 13:21:29 1195 1
原创 Java 单例模式
饿汉模式public class Singleton { private Singleton() { // 必须是私有构造方法 } private static Singleton instance = new Singleton(); public static Singleton getInstance() { ret...
2018-03-30 22:52:47 747
原创 求1+2+3+...+n
题目描述 求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。思路1:(1 + n) * n / 2;–>不满足 思路2:循环–>不满足 思路3:递归对于递归,我们必须得设计出来不依赖与条件判断的退出语句。public static int plus(int sum, int...
2018-03-30 16:57:39 231
原创 Java 线程的状态
Java 中的线程有 6 种状态// java.lang.Threadpublic enum State { NEW, RUNNABLE, BLOCKED, WAITING, TIMED_WAITING, TERMINATED;}//这些状态是虚拟机状态,它不反映任何操作系统的线程状态。新建(NEW)新创建了一个线程...
2018-03-29 20:57:20 320
原创 今日头条面试经验
今日头条面试经验今日头条面试经验一共四轮面试 前三轮是技术面试,最后一轮是hr面试。(我选的python语言)第一轮:问了简历上的两个项目,简单的介绍了一下项目,问了一些项目里的技术问题。然后直接开始出题,在一张A4纸上写代码。(一个半小时)第一题:给函数传递一个正整数的列表alist和一个正整数T,假装它等于[1,3,6,4,2,7],给出alist里所有相加等于T的元素的l...
2018-03-29 12:38:28 30923 3
原创 LeetCode 根据题目ID跳转
// ==UserScript==// @name LeetCode// @namespace http://tampermonkey.net/// @version 0.1// @description LeetCode// @author N3verL4nd// @match *://leetcode.com/prob...
2018-03-28 11:29:56 621
原创 LeetCode-147. Insertion Sort List
Sort a linked list using insertion sort.言简意赅,使用插入排序对链表排序。 与顺序表不同的是,针对链表的插入排序需要考虑到表头和表尾的插入。(每次在表尾插入都需要遍历到末尾链表吗?) 为提高效率可以分别设置指向表头和表尾的指针。也就是考察头插法和尾插法。 在中间位置插入就是简单的指针移动了。package solutions._147;...
2018-03-26 20:24:57 146
原创 LeetCode-62. Unique Paths
A robot is located at the top-left corner of a m x n grid (marked ‘Start’ in the diagram below).The robot can only move either down or right at any point in time. The robot is trying to reach the bo...
2018-03-25 19:30:03 324
原创 LeetCode-8. String to Integer (atoi)
Implement atoi to convert a string to an integer.Hint: Carefully consider all possible input cases. If you want a challenge, please do not see below and ask yourself what are the possible input case...
2018-03-25 12:50:53 397
原创 深入理解 Java 垃圾回收机制
首先需要明白的是:Java 垃圾回收器回收的是什么?内存。而比如文件句柄、数据库连接这些资源则需要我们手工释放。可以使用 JDK 7 中的 try-with-resources 完成资源的释放。 一般的回收的大部分是我们在堆中创建的类实例和数组。这里的类实例也包括Class类产生的类实例,在JDK7以后类实例也保存在堆中。以前HotSpot实现这个类实例保存在在永久代。而GC主要回收的内存也...
2018-03-23 21:54:15 299
原创 LeetCode-260. Single Number III
Given an array of numbers nums, in which exactly two elements appear only once and all the other elements appear exactly twice. Find the two elements that appear only once.For example:Given nums =...
2018-03-22 09:20:25 266
原创 LeetCode-113. Path Sum II
Given a binary tree and a sum, find all root-to-leaf paths where each path’s sum equals the given sum.For example: Given the below binary tree and sum = 22, 5 / \ ...
2018-03-20 19:17:04 212
原创 LeetCode- 层次遍历
637. Average of Levels in Binary TreeGiven a non-empty binary tree, return the average value of the nodes on each level in the form of an array. Example 1:Input: 3 / \ 9 20 / \ ...
2018-03-20 14:39:03 310
原创 LeetCode-Depth of Binary Tree
104. Maximum Depth of Binary TreeGiven a binary tree, find its maximum depth.The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.For...
2018-03-20 12:13:20 239
原创 二叉树的建立与遍历(Java版本)
前序遍历:若二叉树为空,则算法结束,否则:访问根结点;前序遍历根结点的左子树;前序遍历根结点的右子树。中序遍历:若二叉树为空,则算法结束;否则:中序遍历根结点的左子树;访问根结点;中序遍历根结点的右子树。后序遍历:若二叉树为空,则算法结束,否则:后序遍历根结点的左子树;后序遍历根结点的右子树;访问根结点。层次遍历广度优先遍历二叉树(层序...
2018-03-20 10:37:22 1430
原创 LeetCode-169. Majority Element
Given an array of size n, find the majority element. The majority element is the element that appears more than ⌊ n/2 ⌋ times.You may assume that the array is non-empty and the majority element alwa...
2018-03-19 19:20:55 216
原创 LeetCode-4. Median of Two Sorted Arrays
There are two sorted arrays nums1 and nums2 of size m and n respectively.Find the median of the two sorted arrays. The overall run time complexity should be O(log (m+n)).Example 1:nums1 = [1, ...
2018-03-18 14:42:52 240
原创 LeetCode-2. Add Two Numbers
You are given two non-empty linked lists representing two non-negative integers. The digits are stored in reverse order and each of their nodes contain a single digit. Add the two numbers and return i...
2018-03-18 09:28:58 237
原创 Java中的四种引用类型
Java中的一共有四种引用类型:强引用、软引用(java.lang.ref.SoftReference)、弱引用(java.lang.ref.WeakReference)、虚引用(java.lang.ref.PhantomReference)。这四种引用强度依次减弱。 一个对象可以同时拥有多种引用, 并且可以通过Reference.get()方法获取。强引用强引用是 Java...
2018-03-16 20:32:28 466
原创 Java容器学习--Map
(01) Map 是映射接口,Map中存储的内容是键值对(key-value)。 (02) AbstractMap 是继承于Map的抽象类,它实现了Map中的大部分API。其它Map的实现类可以通过继承AbstractMap来减少重复编码。 (03) SortedMap 是继承于Map的接口。SortedMap中的内容是排序的键值对,排序的方法是通过比较器(Comparato...
2018-03-14 16:31:57 214
lua-cjson-2.1.0-已编译
2018-04-16
mybatis plugin 3.21破解补丁
2017-11-13
QQWry-源码
2017-11-13
Privacy in Location-Based Applications
2017-10-17
BJUT数字图像处理作业
2017-01-10
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人