jijianshuai的专栏

资深码农

Servlet 是线程安全的吗?

概要Servlet 默认是单例模式,在web 容器中只创建一个实例,所以多个线程同时访问servlet的时候,Servlet是线程不安全的。 那么 web 容器能为每个请求创建一个Servlet的实例吗?当然是可以的,只要Servlet实现SingleThreadModel接口,就可以了。Sin...

2017-09-07 11:00:14

阅读数 11715

评论数 0

Tomcat Filter 自己动手实现

Filter 简介Filter也称之为过滤器,它是Servlet技术中最实用的技术,Web开发人员通过Filter技术,对web服务器管理的所有web资源:例如Jsp, Servlet, 静态图片文件或静态 html 文件等进行拦截,从而实现一些特殊的功能。例如实现URL级别的权限访问控制、过滤敏...

2017-09-07 10:59:26

阅读数 1779

评论数 0

使用DelayQueue 和 FutureTask 实现java中的缓存

使用DelayQueue、ConcurrentHashMap、FutureTask实现的缓存工具类。DelayQueue 简介DelayQueue是一个支持延时获取元素的无界阻塞队列。DelayQueue内部队列使用PriorityQueue来实现。队列中的元素必须实现Delayed接口,在创建元...

2017-08-01 18:11:44

阅读数 2224

评论数 0

局部变量和常量的性能分析

前两天群里有人问,下面的代码1 比代码2运行时间上慢了100ms,这是问什么? 请看下面的两个代码片段:代码1for(int i=0; i<Integer.MAX_VALUE; i++){ sum+=i; }代码2for(int i=0, len=Integer.MAX_VALUE...

2017-07-20 10:24:05

阅读数 1665

评论数 0

多线程并发下的单例模式

定义:单例模式是设计模式中最简单的形式之一。这一模式的目的是使得类的一个对象成为系统中的唯一实例。下面通过代码分析下java中,各种单例模式写法的优缺点。1、饿汉模式示例1.1public class Singleton { private Singleton() {} priva...

2017-06-26 14:55:36

阅读数 1536

评论数 0

深入分析JVM逃逸分析对性能的影响

逃逸分析(Escape Analysis)逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可能被外部方法所引用,称为方法逃逸。甚至还有可能被外部线程访问到,譬如赋值给类变量或可以在其他线程中访问的实例变量,称为线程逃逸。方法逃逸的几种方式如下:public class Es...

2017-06-26 14:53:44

阅读数 4542

评论数 4

Trie Tree 实现中文分词器

前言 继上一篇HashMap实现中文分词器后,对Trie Tree的好奇,又使用Trie Tree实现了下中文分词器。效率比HashMap实现的分词器更高。 Trie Tree 简介 Trie Tree,又称单词字典树、查找树,是一种树形结构,是一种哈希树的变种。典型应用是用于统计和排序...

2017-05-17 23:58:20

阅读数 3862

评论数 2

java内存模型

前言    在学习java多线程并发编程前,必须要了解java内存模型,只有了解java内存模型,才能知道为什么多线程并发时会出现数据不一致,什么时候需要加锁同步等各种问题。下面只是简单阐述下java内存模型及其相关的概念。内存模型简介    java的并发采用的是共享内存模型(而非消息传递模型)...

2017-04-28 23:07:09

阅读数 1520

评论数 0

JVM 内存模型

内存划分java虚拟机按照运行时内存使用区域划分如图: 区域 是否线程共享 是否会内存溢出 程序计数器 否 不会 java虚拟机栈 否 会 本地方法栈 否 会 堆 是 会 方法区 是 会 一、程序计数器(Program Coun...

2017-04-20 23:26:46

阅读数 1439

评论数 0

java 成神之路

感觉自己技术不错的小伙伴们,看看有没有自己欠缺知识点,赶快补起来吧。 java成神之路 一、基础篇 JVM JVM内存结构 堆、栈、方法区、直接内存、堆和栈区别 Java内存模型 内存可见性、重排序、顺序一致性、volatile、锁、final 垃圾回收 内存...

2018-07-02 13:37:03

阅读数 529

评论数 0

获取当前执行代码的类、方法、行数信息

package cn.com.infcn.tool.utils; /** * Class工具类 * * @author jijs * @version 1.0 */ public class ClassUtils { /** * 获取调用的类名 * ...

2018-07-02 13:35:54

阅读数 2133

评论数 0

MTU 和 MSS 区别

MTU: Maximum Transmit Unit,最大传输单元,即物理接口(数据链路层)提供给其上层(通常是IP层)最大一次传输数据的大小;以普遍使用的以太网接口为例,缺省MTU=1500 Byte,这是以太网接口对IP层的约束,如果IP层有&amp;lt;=1500 byte 需...

2018-07-02 13:33:59

阅读数 1515

评论数 0

TCP 请求头

TCP 请求头结构 Source Port(源端口):源端口号 (占用16位),发送端程序端口 Destination Port(目的端口):目的端口号(占用16位),接收端程序端口 Sequence Number(发送数据序号):用来标识从TCP发端向TCP收端发送的数据字节流,它表示...

2018-07-02 13:32:44

阅读数 845

评论数 0

TCP 三次握手 和 四次挥手

概述 我们都知道 TCP 是 可靠的数据传输协议,UDP是不可靠传输,那么TCP它是怎么保证可靠传输的呢?那我们就不得不提 TCP 的三次握手和四次挥手。 三次握手 下图为三次握手的流程图 下面通过我们 wireshark 抓包工具来分析三次握手 第一次握手 建立连接。...

2018-07-02 13:30:54

阅读数 387

评论数 0

路由器 和 交换机 傻傻分不清楚

概述 交换机一般用在局域网,负责局域网中,根据 Mac 地址进行数据交换转发。 路由器用在城域网、广域网,根据 IP 地址进行不同网段的数据交换转发。 交换机 交换机有二层、三层、四层的,一般我们说的交换机都是二层交换机。 因为交换机(二层交换机)只能识别Mac地址,所以他不带路...

2018-07-02 13:29:53

阅读数 420

评论数 0

NIO 之 FileChannel

概述 文件通道总是阻塞式的,因此不能被置于非阻塞模式。现代操作系统都有复杂的缓存和预取机制,使得本地磁盘 I/O 操作延迟很少。网络文件系统一般而言延迟会多些,不过却也因该优化而受益。 面向流的 I/O 的非阻塞范例对于面向文件的操作并无多大意义,这是由文件 I/O 本质上的不同性质造成的。对于...

2018-06-05 15:40:51

阅读数 1142

评论数 0

mysql 启动出错问题排查

概述 由于服务器不正常关机导致了 mysql 服务启动不了,提示: 错误 1067:进程意外终止。 具体错误提示如下: 看到这个错误,大家的第一反映就是去网上查询 mysql 1067 相关的问题。结果查出来好多解决方案,尝试了多种解决方案,结果都不可用。 解决思路 由于出现 1...

2018-06-05 15:38:30

阅读数 1387

评论数 0

常见黑客渗透测试工具

一、Nessus 是扫描UNIX漏洞的主力工具,随后栖身Windows。主要功能包括本地和远程安全审查,支持client/server结构,具有GTK图形界面,并支持脚本语言编写插件。属免费开源。 二、Wireshark 说起Wireshark,不得不提Ethereal,Et...

2018-06-05 15:37:50

阅读数 2519

评论数 0

凯撒加密算法(最简单的对称加密)

凯撒算法 概述 凯撒密码是罗马扩张时期朱利斯• 凯撒(Julius Caesar)创造的,用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。例如如果向右移动 2 位,则 字母 A 将变为 C,字母 B 将变为 D,…,字母 X 变成 Z,字母 Y 则变为 A,字母 Z 变...

2018-06-05 15:36:27

阅读数 2932

评论数 0

RSA 非对称加密原理(小白也能看懂哦~)

RSA 加密原理 步骤 说明 描述 备注 1 找出质数 P 、Q - 2 计算公共模数 N = P * Q - 3 欧拉函数 φ(N) = (P-1)(Q-1) - 4 计算公钥E 1 &...

2018-06-05 15:35:09

阅读数 12314

评论数 6

提示
确定要删除当前文章?
取消 删除
关闭
关闭