![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java
文章平均质量分 79
赛小文
高手和菜鸟的区别,是高手总会合理的整合利用现有的资源和规则而菜鸟总想把事情控制在自己熟知的领域。
展开
-
JavaString、StringBuilder、StringBuffer总结
背景: 最近项目中需要用到服务器模板和字符串拼接技术。服务器模板技术很多,JSP、Velocity、JDynamiTe等很多。字符串拼接技术在Java中更简单,StringBuilder、StringBuffer和重载的字符串“+”操作。但是实际开发中,发现自己平时对Java的字符串拼接的细节处理真的很差。 基础: 字符串操作主要问题在效率上,包括如下两点:原创 2015-06-01 09:02:21 · 1696 阅读 · 7 评论 -
非对称加密技术介绍
对称加密技术被称为初等加密技术,非对称加密技术即为高级数据加密技术,安全性更高,但是效率要低。特点非对称加密技术一般有两把密钥:公钥和私钥 公钥用来加密,私钥用来解密是非对称加密技术的特点;优势:安全,劣势:效率低,极端场景下比对称加密技术能慢1000倍;家族发展历史对称加密技术解决了一个信息加密技术问题,但是对称加密技术有一个很大的问题就是密钥管理问题,这是一个技术和管理手段并行才能解决的难原创 2017-04-10 14:46:01 · 2801 阅读 · 0 评论 -
信息摘要技术 - 其他信息摘要算法
信息摘要算法很多,主要的MD、MAC、SHA算法很常用,但是还有一些其他信息摘要算法,这些摘要算法JDK都没有提供。RipeMD1996年提出,在分析MD4、MD5的缺陷基础上做的改进算法,有4个标准和2个融合产物,区别是产生的摘要长度区别。RipeMD128,产生128位摘要信息;RipeMD160,产生160位摘要信息;RipeMD256,产生256位摘要信息;RipeMD320,产生3原创 2017-03-31 18:42:07 · 809 阅读 · 0 评论 -
Java Web乱码分析及解决方案(三)——响应乱码
响应乱码 请求乱码是客户端向服务器发送数据时,服务器解码错误。响应乱码则是服务器处理完请求后,输出到浏览器的数据被浏览器错误解码造成的显示乱码,这类乱码是最常见也是最直接的。造成这类乱码的情况最直接的一点就是服务器对Content-Type响应报文设置错误。页面编码: 我们的页面一般来说,可能是通过下面两种方式生成的,也就是常说的静态页面和动态页面: (1原创 2015-07-22 10:33:38 · 3682 阅读 · 2 评论 -
对称数据加密技术
对称数据加密技术是当前应用最广泛、使用频率最高的加密技术,对称加密算法是双向可逆的,加密密钥和解密密钥相同是最大的特点。对称加密算法由古典加密算法演变而来,大部分加密算法的解密算法是逆运算。特点对称加密算法有20多种,对称加密算法有如下特点:加密和解密密钥是一致的;安全程度依赖于密钥长度;每种算法对密钥的长度是有一定要求的;大部分是分组加密算法,所以算法需要指定工作模式、填充类型。一般对称原创 2017-04-01 09:51:48 · 2813 阅读 · 0 评论 -
非对称加密技术 - DH算法
DH算法是非对称加密算法的鼻祖,为非对称加密算法奠定了基础。主要用途是进行密钥交换。DH算法历史1976年非对称加密算法思想被提出,但是当时并没有给出具体算法和方案,因为当时没有研究出单向函数(也就是信息摘要算法还没出现),但是IEEE的期刊(作者:W.Diffie和M.Hellman)中给出了通信时双方如何通过信息交换协商密钥的算法,也就是DH算法。DH算法的目的仅在于双方在安全的环境下协商一个加原创 2017-04-11 10:15:56 · 2147 阅读 · 0 评论 -
非对称加密技术 -- RSA算法
RSA算法是流行最广泛的非对称加密算法,也是唯一的基于因式分解的非对称加密算法。相比DH算法,RSA算法更重要。发展历史1978年MIT三位学者提出对称加密算法:RSA算法,随后RSA算法被广泛应用。非对称加密算法的破解一直受人关注:1999年,RSA-144被成功破解;2002年,RSA-158也被成功破解;应用场景和特点RSA的应用场景和DH算法一样,密钥协商。但是RSA算法比DH算法简单原创 2017-04-13 09:57:05 · 1010 阅读 · 0 评论 -
对称加密技术 - DES系列
DES算法和DESSede算法统称DES系列算法,是对称加密算法领域的经典加密算法。DESSede使用三次迭代,又称3DES,增加算法安全性。DES算法是众多对称加密算法的基础,很多算法都是基于该算法演变而来。DES家族发展历史1973年,美国国家标准计算研究所(NIST)征求对称加密算法方案,IBM提交了自己的算法;1977年,IBM的算法(Luciffer算法)被正式采用,成为数据加密标准:原创 2017-04-05 14:12:05 · 825 阅读 · 0 评论 -
数字签名技术 -- DSA算法
DSA算法是1991年美国国家标准技术协会公布的数字签名标准(DSS)的核心算法。本质上是ElGamal数字签名算法,仅能与SHA系列算法结合,没有相应的MD融合算法。DSA算法和RSA算法的异同DSA算法是DSS技术的核心算法,与RSA算法的异同如下:二者都是数字签名算法中的重要组成,缺一不可;DSA算法仅仅包含数字签名算法,没有密钥信息;DSA算法产生的数字证书无法进行加密通信,HTTPS原创 2017-04-14 10:30:53 · 4386 阅读 · 0 评论 -
对称加密技术 - DES系列的Java用法
Java中的用法Java在JDK 6中仅仅提供了针对56位密钥长度的DES算法实现,提供了针对112位、168位的3DES的算法实现,使用起来不复杂,主要分为如3个步骤:构建密钥:使用KeyGenerator,这个步骤对称加密算法和非对称加密算法都需要;构建DES专用的SecretKey:DES和3DES构建SecretKey的时候略有不同,这步是针对存储下来的密钥进行处理;进行加解密:要注意原创 2017-04-06 11:04:52 · 1045 阅读 · 0 评论 -
对称加密技术 - AES加密
AES发展历史1997年NIST发起了整机替代DES算法的活动:高级数据加密标准(Advanced Encryption Standard);NIST要求算法比3DES块,安全性高,具有128位分组长度,支持128、192、256位长度的密钥;2000年Rijndael算法当选AES算法标准;AES:密钥建立时间短、灵敏性好、内存需求低,被广泛应用;AES跟进密钥长度分为AES-128、A原创 2017-04-06 16:04:57 · 619 阅读 · 0 评论 -
自动发布脚本导致的Tomcat意外退出
最近公司项目的Dev环境要自己维护,为了避免麻烦,写了一个发布脚本,但是发现每次关闭和服务器的SSH连接后,Tomcat就意外退出,查看日志发现最后退出有如下几行日志:Nov 10, 2017 2:38:35 PM org.apache.coyote.AbstractProtocol pauseINFO: Pausing ProtocolHandler ["http-nio-8080"]Nov 1原创 2017-11-10 14:56:33 · 585 阅读 · 0 评论 -
Java源码:String类
1.分类基本属性:String最终的属性就一个char[] value;构造方法区域:比较复杂的就是通过unicode码和byte[]构造;字符串比较:是否相等、大小(排序);查询:indexOf、startsWith、endWith、contains截取:subString、工具方法:格式化打印、unicode 码点相关的位操作方法;2. 基础面向对象的封装思想为什原创 2018-02-01 21:22:56 · 563 阅读 · 0 评论 -
Java源码 : Int包装类 -- Integer
1. Integer类的基本信息NOTE : 以JDK 1.8 为准,补充部分属性、方法在 JDK-1.6 / JDK-1.7中的变化说明;继承自: Number类实现了:Serializable和Comparable接口Integer类的结构和方法可以划分为以下区域:类定义、属性:7个属性,都很好理解;核心方法:构造Integer的方法和一些核心方法;int -> S原创 2018-01-29 20:55:23 · 1206 阅读 · 0 评论 -
Esper学习 -- 第一章 Esper初体验
Esper 参考翻译自:Esper Version 7.1.0 参考手册,详情可以查询:EsperTech Inc. (http://www.espertech.com)第一章 起始1.1 复杂事件处理(CEP)简介Esper引擎被应用程序用来分析和处理事件。它的一些典型应用场景如下:业务流程管理和自动化处理(处理监控事件、BAM、报告一些异常等);金融领域:交易行为、...原创 2018-08-02 11:16:21 · 1065 阅读 · 0 评论 -
Elastic-job 启动“假死”的问题分析
Elastic-job 启动“假死”的问题分析问题记录最近项目引入Elastic Job实现定时任务的分布式调度。引入的版本2.1.5,加入相关的job配置后启动项目,主线程假死,不进行后续逻辑处理和日志输出。输出的日志如下:[INFO] [RMI TCP Connection(2)-127.0.0.1] [2018-10-10 15:53:27.049] [] [StdScheduler...原创 2018-10-10 19:28:52 · 8326 阅读 · 0 评论 -
关于Spring学习的一些建议
关于Spring学习的一些建议经典书籍Spring 的作者 Rod Johnson 直接铺垫了 Spring 的精髓和基因,Rod Johnson的思路和编程理念即Spring的思想和理念。优先推荐阅读Rod Johnson的两本著作:1.《Expert One-on-One J2EE Design and Development》改书首次出版于2002年是Rod Johnson独立创作...原创 2019-01-21 14:31:24 · 486 阅读 · 0 评论 -
信息摘要技术 - MAC系列
MAC算法综合了MD和SHA算法的特性,和MD、SHA算法类似。MAC算法家族发展历史MAC算法是含有密钥的散列算法,兼容MD和SHA算法,在此基础上添加了密钥支持,因此也被称为HMAC算法,定义在RFC 2014中,分为两大分支MD和SHA分支:MD分支:HmacMD2、HmacMD4、HmacMD5;SHA分支:HmacSHA1、HmacSHA256、HmacSHA384、HmacSHA51原创 2017-03-30 14:19:31 · 534 阅读 · 0 评论 -
信息摘要技术 - Base64技术
Base64不是加密算法,不适合用在加密场景下,但是Base64的效率不错适合用在一些特殊场景下,Base64不是信息摘要算法,但是比较适合整理在信息摘要技术类中。 Base64的产生是解决电子邮件传输问题的,因为最早的电子邮件只允许ASCII码字符,这样如果传输非ASCII码内容,很可能发生乱码; Base64是双向的,即可以解码;算法定义Base64算法是一种基于64个字符的编码原创 2017-03-27 14:47:58 · 943 阅读 · 0 评论 -
信息摘要技术 - SHA系列
SHA算法分为两个分支:SHA-1和SHA-2,其中SHA-2包括SHA-224、SHA-256、SHA-384和SHA-512,SHA算法和MD算法类似,也是产生一个固定的散列码。SHA算法家族发展历史SHA算法被广泛的认为是MD5算法的继任者,由美国国家安全局(NSA)设计,经过美国标准与技术研究院(NIST)发布,发布历史比MD算法晚,相对安全:1993年,NIST发布SHA-0算法:FIP原创 2017-03-29 10:19:17 · 695 阅读 · 0 评论 -
JDK1.6和JDK1.7共存和Eclipse出错
背景: JDK 都已经发布到1.8版本了,作为一个“怀旧”的programer,我对新版本一直没什么关注。一直都是项目需要哪个版本就用哪个版本,而且我一直认为如果项目太过于依赖JDK版本的话,那开发和设计上也就太shit了!这几天由于一些原因需要切换老版本的项目去做些东西。老版本(称为V1)使用的是JDK1.6开发的,新版本(称为V2)使用的是JDK1.7。现在需要两个版本的J原创 2015-05-23 15:42:00 · 16771 阅读 · 1 评论 -
基于逆波兰表达式的公式解析器-算法和思路(二)
续: 接着说基于逆波兰表达式的公式解析器的实现思路。下面是加入函数、符号重载后的算法描述,其实也没多大变化,只是算法在处理上更细化,更详细,更接近实际环境。改进的算法描述: 1.构建两个栈Operand(操作数栈)和Operator(操作符栈)和一个LAST_TOKEN标记字段。 2.扫描给定的字符串,扫描时注意跳过空格,提取完整的操作数原创 2015-06-26 15:47:43 · 3112 阅读 · 9 评论 -
基于逆波兰表达式的公式解析器-算法和思路(一)
背景: 最近项目需要自己完成Excel的公式解析和求值,在Java中可以使用POI解析Excel公式然后求值。但是项目需要JS端和Java后端均需要支持公式解析,所以就需要自己写一套了。其实公式解析器总体上并不复杂,原理使用逆波兰表达式就可了。难点: 1. 针对复杂的用户输入环境解析公式,需要注意公式书写不规范、大小写、空格等问题,甚至公式出错的判断。原创 2015-06-25 14:41:54 · 7002 阅读 · 0 评论 -
Java ThreadLocal
背景: 最近项目中需要调用其他业务系统的服务,使用的是Java的RMI机制,但是在调用过程中中间件发生了Token校验问题。而这个问题的根源是每次用户操作,没有去set Token导致的。这个Token是存储在ThreadLocal变量中的,根据servlet的单例多线程原理,使用一个拦截器每次向Thread中写入这个token完美的解决了这个问题。 ThreadLocal原创 2015-06-09 11:11:37 · 2534 阅读 · 0 评论 -
Sevelt3.0新特性总结
背景: 最近在给领导部署演示环境的时候发生了很恶心的问题。资源和jar包好之后,服务器总是起不来,一直包各种错误,然后切换JDK,使用各种版本的Spring Jar包都不可以,而且每次报的错误都不一样。最后发现是服务器上有一个项目使用了Servlet 3.0并且没有声明metadata-complete属性造成的。今天特地记录下Servlet 3.0的新特性。原创 2015-06-12 17:03:59 · 1687 阅读 · 0 评论 -
Web工程获取目录下的资源
背景: 最近项目中需要在WEB-INF下加一个配置文件,采用全局单例方式提供属性配置。为了程序的灵活,肯定不能写死这个地址,所以需要读取Web容器的部署路径。方案: 想要获取Web工程的部署路径,比如:D://tomcat/webapps/test/WEB-INF/test.xml 使用ServletContext接口方法可以获取原创 2015-07-27 16:00:51 · 1560 阅读 · 0 评论 -
Java多线程-线程同步(对象锁)
Java线程同步是用来解决线程间共享资源的。在传统的单线程程序中,程序都是有序的按照程序猿写好的指定的流程运行的,因此对于一些资源,比如某个变量的内存读写顺序是固定的,因此不会出现问题。 但是在多线程环境下,线程执行时并无规律可言,所以对于资源共享时很容易带来共享的混乱,这是支持并发的OS都面临的问题也就是资源争夺。尤其是真正的多核多线程机器上,多线程的情况更为复杂。资源争夺要做到原创 2015-08-26 16:54:23 · 1909 阅读 · 0 评论 -
Java Web乱码分析及解决方案(一)——GET请求乱码
引言: 在进行Web开始时,乱码是我们最经常遇到也是最基本的问题,有经验的程序猿很容易能解决,初学者则容易被泥潭困住。而且很多时候,我们即使解决了乱码问题也是不明就里,往往云里雾里。其实乱码问题很简单,就是客户端和服务器使用了不一样的字符集导致的。也就是我们发送文件是用的字符编码和解析文件的编码不一致。所以只要搞清楚了我们的文件是怎么被编码和解码的解决乱码就很简单了。分析乱码,原创 2015-07-20 10:57:19 · 6017 阅读 · 5 评论 -
Java Web乱码分析及解决方案(二)——POST请求乱码
引言 GET请求的本质表现是将请求参数放在URL地址栏中,form表单的Method为GET的情况,参数会被浏览器默认编码,所以乱码处理方案是一样的。对于POST请求乱码,解决起来要比GET简单,我们关心的重点是在Request Body中。请求乱码——Method方式 使用Method方式发送HTTP请求时,根据HTTP协议的规定,查询参数应该在Request的B原创 2015-07-21 09:30:16 · 4748 阅读 · 1 评论 -
接口和抽象类可以被new嘛?——顺便总结内部类
背景: 最近有同事跟我说了他面试时遇到的问题,考官问:“接口和抽象类可以被new嘛?”。这可能不是考官的原话,但是据他表达考官大概就是这个意思了。听到这个问题,我的第一反应是肯定不行啊,直接对接口和抽象类调用new,编译器都过不去。但是他说,考官说可以,用匿名内部类实现。听见这个回到,我感觉那个考官太…………,有点无语。我们可以仔细分析下这个问题。直接new接口和抽象类原创 2015-08-04 21:04:13 · 24119 阅读 · 9 评论 -
Java多线程基础总结
Java采用多线程方式实现并行计算,当然并行计算也可以采用多进程方式实现,但是进程切换耗费比较高。而且进程间是隔离的,进程间通信机制比较麻烦,最后JVM本身在操作系统中就一个进程,由它再启动一个进程不太合适,所以Java采用多线程方式实现并行计算。原创 2015-08-19 08:53:27 · 1607 阅读 · 0 评论 -
学习笔记——Swing篇(一)
Swing学习笔记(一)2014年3月7日知识点: Swing的发展历史;Swing和AWT的关系;对等组件体系;正文: 来公司实习发现公司竟然在用Swing做界面开发。说实话当我知道之后,我瞬间感觉没前途了!!!说我有偏见或者见识短?说实在的对于一个刚毕业的学生谁不想学些新技术能跟上时代的步伐啊,而且对于我这个准备走技术路线的学生来说,学业务和Swin原创 2014-03-11 19:22:54 · 3433 阅读 · 0 评论 -
学习笔记——Swing篇(二)
Swing学习笔记(二)——学习路线3月11日 花了两天时间终于把自己的Swing小Demo完成了(貌似也没什么庆贺的啊),Swing的基本学习也告一段落了。明天开始UIFactory的学习。今天把一些Swing的知识点整理下,顺便总结下学习Swing的感受。Swing的学习过程:1.了解Swing的发展历程 个人认为学习了解一项技术的发展和历史有助于原创 2014-03-12 19:16:23 · 2027 阅读 · 1 评论 -
对称加密技术 - PBE系列
PBE加密跳出了DES和AES的加密模式,综合对称加密、信息摘要算法的优势,形成了一个对称加密的特例。其实PBE加密并不是独创了一个新的算法,而是先使用MD(SHA)系列算法将口令和slat计算出一个key出来,然后用这个key作为DES(AES)的加解密key,这样DES和AES的key不便于记忆且需要计算的问题就解决了。算法特点PBE算法,全称 password based encrytpion原创 2017-04-07 10:35:34 · 837 阅读 · 0 评论 -
信息摘要技术及算法介绍
数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。 数据摘要算法也被称为哈希(Hash)算法、散列算法;特点消息摘要算法(杂凑算法,哈希算法)的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。1.无论输入的消息原创 2017-03-22 11:46:15 · 7286 阅读 · 0 评论 -
信息摘要技术 - MD系列
MD算法是信息摘要三大算法中场景的一种,全称:Message Digest算法,按照规范版本分为MD2、MD4、MD5三种算法,目前最常用的是MD5版本算法。MD家族发展历史1989年,RSA发明人开发了MD2算法: 1.对信息进行补位,信息的字节长度为16的倍数;2.以一个16位的校验和,追加到信息末尾;3.根据新的信息产生一个128位的散列值,得出MD2值; 1990年,在MD2基础上原创 2017-03-24 17:52:52 · 2203 阅读 · 0 评论 -
关于升级 Dubbo 版本到 2.6.5 后启动失败的“坑”
问题现象Dubbo从低版本升级到2.6.5版本后,启动失败,报错如下:05-Mar-2019 16:02:25.204 ?? [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to...原创 2019-03-05 18:11:09 · 3844 阅读 · 1 评论