自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

拈花的专栏

左手拈花,右手舞剑

  • 博客(62)
  • 资源 (7)
  • 收藏
  • 关注

转载 密码学中的“盐值 Salt”

为什么要在密码里加点“盐”盐(Salt)在密码学中,是指通过在密码任意固定位置插入特定的字符串,让散列后的结果和使用原始密码的散列结果不相符,这种过程称之为“加盐”。以上这句话是维基百科上对于 Salt 的定义,但是仅凭这句话还是很难理解什么叫 Salt,以及它究竟起到什么作用。第一代密码早期的软件系统或者互联网应用,数据库中设计用户表的时候,大致是这样的结构: mysql> desc User; +----------+-------------.

2020-11-26 23:52:17 4182

转载 如何快速成长为技术大牛?阿里资深技术专家的经验告诉你

阿里妹导读:你是否有类似这样的问题——“天天写业务代码的程序员,怎么成为技术大牛,开始写技术代码?”今天,阿里资深无线开发专家李运华,系统梳理了自己的思考和理解,希望帮助更多同学少走一些弯路。写在前面不管是开发、测试、运维,每个技术人员心里多多少少都有一个成为技术大牛的梦,毕竟“梦想总是要有的,万一实现了呢”!正是对技术梦的追求,促使我们不断地努力和提升自己。然而“梦想是美好的,现实却是残...

2020-03-24 00:40:29 406

原创 ES termQuery和matchQuery区别浅析

看官方提供的例子:1.PUT my_index { "mappings": { "my_type": { "properties": { "full_text": { "type": "string" }, "exact_value": { ...

2020-03-15 21:09:36 5415 1

原创 Wireshark验证TCP三次握手四次挥手

本文介绍如何通过Wireshark抓包工具验证TCP的三次握手四次挥手过程。首先本地起了一个tomcat服务器,跑了一个简单的基于SpringMVC的rest服务。打开Wireshark,捕获指定网卡的包,这里就是napcap loopback adapter。显示过滤器里输入http,只展示http请求包。这会还没有http的数据包。postman里进行一下调用。...

2020-03-10 23:19:29 559

转载 Wireshark抓包工具使用

Wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。使用Wireshark的人必须了解网络协议,否则就看不懂Wireshark了。为了安全考虑,Wireshark只能查看封包,而不能修改封包的内容,或者发送封包。Wireshark能获取HTTP,也能获取HTTPS,但是不能解密HTTPS,所以Wireshark看不懂HTTPS中的内容...

2020-03-08 21:25:42 788 1

转载 九种设计模式在Spring中的应用

Spring中涉及的设计模式总结1.简单工厂(非23种设计模式中的一种)实现方式:BeanFactory。Spring中的BeanFactory就是简单工厂模式的体现,根据传入一个唯一的标识来获得Bean对象,但是否是在传入参数后创建还是传入参数前创建这个要根据具体情况来定。实质:由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类。实现原理:bean容器的启动阶段...

2020-02-27 12:31:52 984

原创 Java线程池的使用

什么是线程池及其作用JDK的ThreadPoolExecutor提供了线程池功能,合理利用线程池能够带来三个好处:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 提高响应速度。当任务到达时,任务可以不需要的等到线程创建就能立即执行。 提高线程的可管理性。线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池可以进行统一的分配,调优和...

2019-11-24 22:04:32 252

原创 Spring之ApplicationContextAware接口详解

在Spring中,当一个bean实现了ApplicationContextAware接口,这个bean便可以获取到ApplicationContext对象,进而获取应用上下文中的bean。代码实例package com.huawei.nlz.springplayground.applicationcontextaware;import org.springframework.bean...

2019-10-31 00:06:15 806

原创 排列组合的一些公式及推导

部分内容转自:https://www.cnblogs.com/1024th/p/10623541.html。加法原理、乘法原理分类计数原理:做一件事,有n类办法,在第1类办法中有m1种不同的方法,在第2类办法中有m2种不同的方法,…,在第n类办法中有mn种不同的方法,那么完成这件事共有N=m1+m2+…+mn种不同的方法。分步计数原理:完成一件事,需要分成n个步骤,做第1步有m1...

2019-09-02 01:14:02 17116

原创 Spring Bean的实例化时机与ApplicationContext中单例bean的延迟初始化

Spring Bean的实例化时机Spring什么时候实例化bean,分两种情况:如果使用BeanFactory做为bean容器,则所有bean都是在第一次使用时才实例化;如果使用的是ApplicationContext,则:如果bean的scope是singleton的,并且lazy-init为false(默认是false,所以可以不用设置),则 ApplicationConte...

2019-08-26 00:56:02 1062

原创 Spring Bean的生命周期

转自:https://www.cnblogs.com/zrtqsk/p/3735273.html。本文代码归档地址:https://github.com/nju-Nicko/spring-playground/tree/master/src/main/java/com/huawei/nlz/springplayground/lifecycle。Spring Bean生命周期流程图Spr...

2019-08-25 16:58:12 261

原创 Java泛型详解

什么是泛型程序设计泛型程序设计是指编写的代码可以被很多不同类型的对象重用。比如,不需要给存储String的集合和存储File的集合分别设计不同的类。类型参数的好处在没有泛型类型之前,Java泛型程序设计是利用继承实现的。比如一个ArrayList,它内部维护一个Object数组,get出来的也是Object类型的对象,add进去的也是Object类型的对象,这样会导致get值出来的时候...

2019-08-24 01:35:30 289

原创 Java静态代理和动态代理

什么是代理代理是指在不改变目标对象代码的情况下,可以控制对目标对象的访问,可以在其前后增加自己的业务处理代码,甚至阻止对目标对象的方法的访问。Java中代理的实现主要包括静态代理和动态代理,其中,动态代理又主要有JDK动态代理和cglib动态代理两种方式。静态代理静态代理就是使用代理设计模式,代理类由程序员自己编写,在编译期就已经确定好了。代理模式类图如下:举个例子,...

2019-08-15 03:05:29 283

原创 密码学基础知识

公司现在对产品的安全性抓得很严,各种敏感数据都要求加密存储,通信协议全部要求是安全的通信协议。乘这个机会,学习一些密码学的基础知识。一些术语首先是密码学的一些术语梳理:明文:原始消息 密文:加密后的消息 加密:从明文到密文的变换过程 解密:从密文到明文的变换过程 密钥:用来完成加解密等过程的秘密信息 密码算法:也叫密码,是用于加密和解密的数学函数(通常情况下,有两个相关的函数...

2019-08-12 01:30:50 777

原创 Java阻塞队列之ArrayBlockingQueue源码解析

阻塞队列概要阻塞队列(java.util.concurrent.BlockingQueue),顾名思义,是一种特殊的队列,它的特性在于支持阻塞的添加和删除元素操作。在JDK中其接口定义如下:public interface BlockingQueue<E> extends Queue<E> { // 将指定元素插入此队列中(如果立即可行且不会违反容...

2019-04-05 15:15:44 394

原创 Java volatile关键字详解

1.关于volatilevolatile是Java语言中的关键字,用来修饰会被多线程访问的共享变量,是JVM提供的轻量级的同步机制,相比同步代码块或者重入锁有更好的性能。它主要有两重语义,一是保证多个线程对共享变量访问的可见性,二防止指令重排序。2.语义一:内存可见性2.1 一个例子public class TestVolatile { public static vo...

2019-03-07 01:56:42 299

转载 Java线程的6种状态及切换

Java中线程的状态分为6种。1. 初始(NEW):新创建了一个线程对象,但还没有调用start()方法。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的称为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取CPU的使用权,此时处于就绪状...

2019-01-24 22:24:45 456

转载 Servlet的url-pattern匹配规则

转自:https://www.cnblogs.com/canger/p/6084846.html。首先需要明确几个容易混淆的规则:servlet容器中的匹配规则既不是简单的通配,也不是正则表达式,而是特定的规则。所以不要用通配符或者正则表达式的匹配规则来看待servlet的url-pattern。 Servlet 2.5开始,一个servlet可以使用多个url-pattern规则,&l...

2018-12-07 02:35:10 771

原创 Spring Resource和ResourceLoader源码解析

Spring用Resource接口抽象所有的底层资源,包括File、ClassPath、URL等。ResourceLoader接口是Resource的加载器,根据资源的路径/路径模式获取Resource实例。Resource接口定义Resource接口的定义如下:public interface Resource extends InputStreamSource { boo...

2018-12-05 23:54:53 1101

原创 Spring Boot快速上手

Spring Boot简介Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。有了它,你可以更加敏捷地开发Spring应用程序,专注于应用程序的功能,而不用在Spring的配置上多花功夫,甚至完全不用配置。Spring Boot提供了四个核心功能:自动配置:针对很多Spring应用程序的常见的应用功能,Spring ...

2018-11-03 12:58:45 7903 3

原创 Java开发人员常用网站收录

1. Java API Doc说明:Java API官方文档。2. Spring说明:Spring官网,当前微服务架构下常用的Spring项目有:Spring Framework、Spring Boot、Spring Cloud。3. Redis说明:Redis官网,你可以在此了解到Redis的产品文档、各语言下的客户端SDK以及Redis CLI的命令等。4. MyBat...

2018-11-01 22:01:46 434

原创 Java CAS无锁技术深度解析

在看AQS代码的时候,看到它很多地方调用了unsafe.compareAndSwapInt这类方法,百度了一下得知这叫CAS无锁技术。CAS原理深度分析转自:https://blog.csdn.net/Hsuxu/article/details/9467651?utm_source=blogxgwz1。CAS: Compare and Swap,翻译成比较并交换。java.uti...

2018-10-17 23:22:49 1751

原创 Java并发编程之ReentrantLock和ReentrantReadWriteLock

在Java多线程编程中,除了可以使用synchronized关键字实现线程同步外,从JDK1.5开始,新增了ReentrantLock、ReentrantReadWriteLock等类,同样能实现同步效果,而且在使用上更加方便。ReentrantLockReentrantLock是可重入互斥锁,调用它的lock()方法获取锁,unlock()方法释放锁。lock()和unlock()的...

2018-10-02 01:41:02 682

原创 Spring按类型自动装配注入数组、集合、Map

Spring按类型自动装配注入数组、集合、Map时,是把应用上下文中对应类型的bean装配进集合,而不是直接查找一个对应类型的集合然后注入。以下面这段代码为例:import org.springframework.beans.factory.annotation.Autowired;import org.springframework.stereotype.Component;impo...

2018-09-08 12:53:23 15822 3

原创 @PostConstruct、@PreDestroy注解介绍及Spring中@PostConstruct、constructor、@Autowired的顺序

@PostConstruct和@PreDestroy@PostConstruct和@PreDestroy注解是Common Annotations中的注解,Common Annotations原本是Java EE 5.0(JSR 244)规范的一部分,现在SUN把它的一部分放到了Java SE 6.0中。JDK文档中对这两个注解的描述如下:PostConstruct 注释用于在依赖关...

2018-09-04 01:03:18 1153

转载 Java各版本特性简介

一个比较流行的问题是,“Java下一个版本会有什么特性呢?” 。这是否是个好问题却有待商榷。在下面的内容里,我总结了至今为止的Java主要发行版中各自引入的新特性,这样做的目的是为了突出各个新特性是在哪个发行版中引入的。除了列出的特性外,每个发行版还做了很多优化和修复BUG的工作。Java9请参考:http://www.techug.com/post/java-9-features-wit...

2018-09-02 13:10:32 382

转载 系统架构演化历程图解

当今技术的发展日新月异,系统架构也跟随技术的发展不断升级和改进,从传统的单一架构演变为如今的微服务分布式架构,我们来看看技术架构的演变过程。NO.1 初期网站架构网站建设初期,访问人数有限,数据量不大,只需要一台服务器足矣,这时应用程序、文件、数据库等所有资源全部集中在这台服务器上,网站架构请看下图:  NO.2 应用和数据分离随着网站业务的不断发展,一台服务器已经不能满足...

2018-07-11 01:00:29 6108

原创 结合Java详谈字符编码和字符集

字符编码和字符集是两个基础性的概念,很多开发人员对其都并不陌生,但是很少有人能将其讲得很准确。当应用出现乱码时,如何分析和定位原因,很多人仍是一头雾水。这篇文章,将从字符编码和字符集的相关概念开始讲解,然后结合Java进行实例分析。字符编码和字符集的概念字符集(character set)是一个系统支持的所有抽象字符的集合。字符(character)就是各种文字和符号,包括国家文字、标点符...

2018-07-07 14:04:45 29600 1

转载 Java反射详解

什么是反射?反射(Reflection)能够让运行于 JVM 中的程序检测和修改运行时的行为。Class 类在程序运行期间,Java运行时系统始终为所有的对象维护一个被称为运行时的类型标识。虚拟机利用运行时信息选择相应的方法执行。可以通过专门的Java类访问这些信息,保存这些信息的类被称为Class。将Class类中的forName和newInstance配合使用,可以根据存储在字...

2018-07-04 01:41:44 444

原创 Spring概览

Spring可以做很多事情,它为企业级开发提供了丰富的功能,这些功能的底层实现都依赖于它的两个核心特性--依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)。Spring在诞生之初,主要目的是为了替代更加重量级的企业级Java技术,比如EJB等等。相对于EJB来说,Spring提供了更加轻量级和简单的编...

2018-06-24 17:22:55 345

原创 guava官方教程

原文链接译文链接引言Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] 、缓存 [caching] 、原生类型支持 [primitives support] 、并发库 [concurrency libraries] 、通用注解 [common annotations] 、字符串处理 [string processing] 、I...

2018-06-09 13:34:09 1036

转载 深入理解Java类加载器(ClassLoader)

类加载的机制的层次结构每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令,当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class对象,将class文件加载到虚拟机的内存,这个过程称为类加载,这里我们需要了解一下类加载...

2018-05-15 00:52:34 431

原创 Java线程局部变量ThreadLocal

ThreadLocal基础ThreadLocal类可以让每个线程绑定自己的值,它就像一个全局存放数据的盒子,盒子中可以存放每个线程的私有数据。ThreadLocal类只有一个无参的构造函数,因此实例化ThreadLocal的方法为: new ThreadLocal&lt;T&gt;();threadLocal.get()方法,取当前线程存放在ThreadLocal里的数据;thre...

2018-04-22 16:14:58 2276

原创 Java thread.join

thread.join()的作用是让当前线程等待线程thread终止。当前线程在join的过程中,如果被interrupt了,则join()方法抛出InterruptedException。当调用join()方法,当前线程进入无限期的阻塞,join所属的线程正常执行它的target上的任务,等其销毁后,当前线程继续往后执行。join具有使线程排队运行的作用,有些类似于同步运行的效果。joi...

2018-04-22 01:56:29 471

原创 Java线程通信之等待/通知

等待/通知机制Object类的wait()方法可以使当前线程在该对象上等待。该方法将当前线程置入“预执行队列”中,并且在wait()所在的代码行处停止运行,直到接到通知或被中断为止。在调用wait()前,线程必须获得该对象的对象级别锁,即只能在同步方法或同步代码块中调用wait()方法。在调用wait()之后,当前线程释放锁,在从wait()返回前,线程和其他线程竞争重新获得锁。如果调用w...

2018-04-20 23:54:56 345

转载 Java内存模型详解

前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚...

2018-04-19 00:07:55 5529 1

原创 synchronized关键字实现同步

synchronized关键字的使用Java语言提供了synchronized关键字,可以给方法或代码块进行加锁,从而实现同步。synchronized关键字取的锁都是对象锁,而不是把代码块或方法当做锁。主要有以下几种场景:同步化类的非静态方法,取的调用该方法的对象上的对象锁; 同步化类的静态方法,取的是类的Class对象上的对象锁; 同步化代码块,synchronized(obj...

2018-04-16 00:15:43 4528 1

原创 停止线程

停止线程是多线程开发时很重要的技术点,掌握此技术可以对线程的停止进行有效的处理。停止一个线程意味着在线程处理完它的任务之前停掉它所在做的工作。在Java里,有三种方法可以终止正在运行的线程:(1) 使用退出标志,使线程正常退出,也就是run方法完成后线程终止。(2) 使用thread.stop()方法强制终止线程,但是该方法已被废弃,使用它有可能造成不可预期的结果。(3) 使用th...

2018-04-15 13:01:23 342

原创 Java线程类核心方法

1. Thread.currentThread()返回当前正在执行的线程对象。示例:2. thread.isAlive()判断当前线程是否处于活动状态。活动状态是指线程已经启动且尚未终止。线程处在正在运行或准备开始运行的状态,就认为线程是存活的。3. Thread.sleep(long millis)/Thread.sleep(long millis, int nanos)...

2018-04-15 12:04:20 313

原创 通过document.domain实现跨域访问

由于JavaScript同源策略的限制,脚本只能读取和所属文档来源相同的窗口和文档的属性。对于已经有成熟产品体系的公司来说,不同的页面可能放在不同的服务器上,这些服务器域名不同,但是拥有相同的上级域名,比如id.qq.com、www.qq.com、user.qzone.qq.com,它们都有公共的上级域名qq.com。这些服务器上的页面之间的跨域访问可以通过document.domain来进行...

2018-03-10 12:40:47 45962 6

方法调用序列追踪工具

我的毕业设计,一个基于符号执行的方法调用序列追踪工具。

2016-09-04

eclipse ast开发库

Eclipse JDT插件中的AST库,可以用于构建java程序的抽象语法树

2016-09-04

java api 1.7

java api

2016-08-08

window-builder插件

eclipse的插件,使GUI开发可视化

2013-12-26

教务系统示例

自己做的一个教务系统,可以参考一下

2013-12-23

C FREE 5.0

简便易用的C语言和C++语言的开发工具,集成开发环境,内附ASCII表

2012-10-27

visualstudio2005

很好用的集成开发环境~~可以编辑多种语言

2012-10-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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