
java
文章平均质量分 95
十点摆码
没有天赋异禀,只能厚积薄发。
展开
-
XSS攻击基础防御
XSS攻击听说过,没见过,后来通过查资料了解一点,这篇文章中,主要是针对XSS攻击做一个基本的防御,我也不知道能不能防的住,防不住在加规则,中国式解决问题:哪疼医那。哈哈由于公司用的是 SpringMVC,因此,这次就主要基于 SpringMVC 来解决这些漏洞。当然,其实这些解决方案都是大同小异,对于什么环境来说根本无所谓。了解了原理,什么环境、什么语言都可以运用自如了。废话就不多说了,直接上解...原创 2018-03-24 15:59:18 · 3491 阅读 · 2 评论 -
服务接口的流量控制策略之RateLimit
服务接口API限流 Rate Limit一、场景描述 很多做服务接口的人或多或少的遇到这样的场景,由于业务应用系统的负载能力有限,为了防止非预期的请求对系统压力过大而拖垮业务应用系统。转载 2017-06-30 13:29:53 · 11445 阅读 · 0 评论 -
带你从HTTP入门到进阶
前言我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。一、认识 HTTP首先你听的最多的应该就是 HTTP 是一种超文本传输协议(Hypertext Transfer Protocol),这你一定能说出来,但是这样还不够,假如你是大厂面试官,这不...转载 2020-01-19 15:06:03 · 950 阅读 · 0 评论 -
httpclient使用实例
一、HttpClient简介HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Com原创 2017-11-16 10:59:15 · 839 阅读 · 0 评论 -
JVM调优参数、方法、工具以及案例总结
这种文章挺难写的,一是JVM参数巨多,二是内容枯燥乏味,但是想理解JVM调优又是没法避开的环节,本文主要用来总结梳理便于以后翻阅,主要围绕四个大的方面展开,分别是JVM调优参数、JVM调优方法(流程)、JVM调优工具、JVM调优案例,调优案例目前正在分析,会在将来补上。垃圾回收有关参数参数部分,这儿只是做一个总结,更详细更新的内容请参考Oracle官网:JVM的命令行参数参考处理器组合参数关于JVM垃圾处理器区别,参考:JVM调优之垃圾定位、垃圾回收算法、垃圾处理器对比-XX:+UseS转载 2021-03-18 09:02:17 · 422 阅读 · 0 评论 -
JVM调优总结(十二)-参考资料
能整理出上面一些东西,因为站在巨人的肩上。鄙视那些吹牛逼的人,技术很多时候就是再走别人的路,所以别嘚瑟,没什么暖用,下面是一些参考资料,供大家学习,大家有更好的,可以继续完善:)· Java 理论与实践: 垃圾收集简史· Java SE 6 HotSpot[tm] Virtual Machine Garbage Collection Tuning· Improving原创 2017-06-16 11:31:53 · 368 阅读 · 0 评论 -
JVM调优总结(十一)-反思
垃圾回收的悖论 所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的相应时间,造成拥塞或堆积。这也是后续JDK增加G1算法的一个重要原因。 当然,上面是从技术角度出发解决垃圾回收带来的问题,但是原创 2017-06-16 11:19:38 · 251 阅读 · 0 评论 -
JVM调优总结(十)-调优方法
JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。如何调优原创 2017-06-16 11:05:19 · 295 阅读 · 0 评论 -
JVM调优总结(九)-新一代的垃圾回收算法
垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设置限制在一个相对原创 2017-06-16 10:26:42 · 250 阅读 · 0 评论 -
JVM调优总结(八)-典型配置举例2
常见配置汇总堆设置:-Xms:初始堆大小-Xmx:最大堆大小-XX:NewSize=n:设置年轻代大小-XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4-XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示E原创 2017-05-18 17:43:54 · 259 阅读 · 0 评论 -
JVM调优总结(七)-典型配置举例1
以下配置主要针对分代垃圾回收算法而言。堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可原创 2017-05-18 17:35:59 · 302 阅读 · 0 评论 -
JVM调优总结(六)-分代垃圾回收详述2
分代垃圾回收流程示意选择合适的垃圾收集算法串行收集器用单线程处理所有垃圾回收工作,因为无需多线程交互,所以效率比较高。但是,也无法使用多处理器的优势,所以此收集器适合单处理器机器。当然,此收集器也可以用在小数据量(100M左右)情况下的多处理器机器上。可以使用-XX:+UseSerialGC打开。原创 2017-05-17 18:43:44 · 312 阅读 · 0 评论 -
JVM调优总结(五)-分代垃圾回收详述1
为什么要分代分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一些对象,主要是程序运行过程中生成原创 2017-05-17 18:25:06 · 224 阅读 · 0 评论 -
JVM调优总结(三)-基本垃圾回收算法
可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep):此算法执行分两阶段。第一阶段从引用原创 2017-05-13 16:41:09 · 297 阅读 · 0 评论 -
JVM调优总结(二)-对象的一些概念
一、Java对象的大小: 基本数据的类型的大小是固定的,这里就不多说了。对于非基本类型的Java对象,其大小就值得商榷。 在Java中,一个空Object对象的大小是8byte,这个大小只是保存堆中一个没有任何属性的对象的大小。看下面语句: Object ob = new Object(); 这样在程序中完成了一个Java对象的生命,原创 2017-05-13 16:23:01 · 300 阅读 · 0 评论 -
java多线程学习之从正常到自残
写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包的的线程池(Java并发编程与技术内幕:线程池深入理解),或者看这个专栏:Java并发编程与技术内幕。你将会对Java里头的高并发场景下的线程有更加深刻的理解。本文主要讲了java中多线程的使用方法、线程...2017-09-21 17:21:00 · 403 阅读 · 0 评论 -
java多线程学习之从正常到自残
写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但是如果最基本的你都学掌握好,又怎么能更上一个台阶呢?如果你觉得此文很简单,那推荐你看看Java并发包的的线程池(Java并发编程与技术内幕:线程池深入理解),或者看这个专栏:Java并发编程与技术内幕。你将会对Java里头的高并发场景下的线程有更加深刻的理解。本文主要讲了java中多线程的使用原创 2017-09-21 17:21:26 · 684 阅读 · 6 评论 -
多线程之ReentrantLock的使用
ReentrantLock是一个可重入的互斥锁,重入锁是一种递归无阻塞的同步机制。ReentrantLock由最近成功获取锁,还没有释放的线程所拥有,当锁被另一个线程拥有时,调用lock的线程可以成功获取锁。如果锁已经被当前线程拥有,当前线程会立即返回。 重入锁的构造方法提供一个可选的公平参数: 公平情况下,操作会排一个队按顺序执行,来保证执行顺序。原创 2017-05-18 16:46:58 · 492 阅读 · 0 评论 -
设计模式(一)-单例模式
单例模式是设计模式中比较简单的一种模式,也是使用的比较多的一种模式。 特别是在某些对象只需要一个时,比如线程池、缓存、日志对象、注册表对象等。 如果创建了多个,可能会导致很多问题。比如程序行为异常、资源使用过量等。 单例模式确保程序中一个类最多只有一个实例。 单例模式提供访问这个实例的全局点。 在Java中单例...转载 2017-04-05 15:21:15 · 267 阅读 · 0 评论 -
Java的Properties文件操作类
package cn.edu.hbcit.util; /** * Description: Properties文件操作 * * Copyright: Copyright (c) 2009 * */ import java.io.BufferedInputStream; import java.io.FileInputStream; imp转载 2017-08-14 17:46:13 · 222 阅读 · 0 评论 -
java中的反射机制
java反射技术转载 2017-04-10 18:55:34 · 244 阅读 · 0 评论 -
Google Zxing二维码生成与解析使用实例
应项目需求,现需要生成二维码功能,之前没怎么接触过这个知识点,上网狂搜,原来生成二维码的开源项目可谓是琳琅满目,SwetakeQRCode、BarCode4j、Qrcode、Zxing......最后选择用Google Zxing,只所以选择Zxing,是因为Google龙头公司值得信赖。废话不多说了,直接上代码一、添加pom.xml依赖<dependency> ...原创 2019-01-29 16:00:01 · 841 阅读 · 0 评论 -
Java正则验证手机号归属最全详解
前言公司提出业务需要判断手机号码归属商,进过查找资料,自己验证,统计出如下号段和正则表达式,完美解决需求。1、联通、移动、电信三大运营商枚举package com.fintech.modules.base.enums;/** * @Description: 运营商枚举 * @author lc * @date 2018年4月10日 */public enum MobileOperEn...原创 2018-06-21 16:35:47 · 1346 阅读 · 0 评论 -
JAVA得到一个指定日期六个月后的日期例子
JAVA得到一个指定日期六个月后的日期例子原创 2016-04-15 17:47:29 · 4407 阅读 · 4 评论 -
LVS(Linux Virtual Server) 学习笔记
LVS(Linux Virtual Server) 学习笔记1.LVS简介最近学习了LVS(Linux Virtual Server)的集群技术,把搜集的一些资料整理一下。LVS(Linux Virtual Server)其实就是针对高可伸缩、高可用网络服务的需求,给出了基于IP层和基于内容请求分发的负载平衡调度解决方法,并在Linux内核中实现了这些方法,将一组服务器构成一个实现可伸缩的转载 2016-07-25 17:19:41 · 311 阅读 · 0 评论 -
JVM调优总结(一)-堆和栈概念
一、数据类型: Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。 基本类型包括:byte,short,int,long,char,float,double,Boolean,returnAddr原创 2017-05-13 15:53:51 · 713 阅读 · 0 评论 -
JVM调优总结(四)-垃圾回收面临的问题
如何区分垃圾上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开始的呢?即,从哪儿开始查找哪些对象是正在被当前系统使用的。上面分析的堆和栈的区别,其中栈是原创 2017-05-17 17:34:15 · 230 阅读 · 0 评论 -
Java实现数字签名
一、数字签名算法概述 签名认证是对非对称加密技术与数字摘要技术的综合运用,指的是将通信内容的摘要信息使用发送者的私钥进行加密,然后将密文与原文一起传输给信息的接收者,接收者通过发送者的公钥信息来解密被加密的摘要作息,然后使用与发送者相同的摘要算法,对接收到的内容采用相同的方式方式产生摘要串,与解密的摘要串进行对比,如果相同,则说明接收到的内容是完整的,在传输过程中没有受到第三方的篡改,否则原创 2017-07-12 14:35:30 · 31359 阅读 · 20 评论 -
Java中的网络编程—Socket通信
一、网络基础知识两台计算机要想通过网络进行通信,那么他们必须满足ip地址、协议、端口号这三个必然的条件 1、两台主机必须表明所在的身份和位置,也就是ip地址 2、必须有共同的语言,不然无法交流,也就是我们所说的协议 3、需要有相应的端口号,一台主机可以运行多个应用程序,怎么辨别不同通信的程序,那么就需要端口号来区分 TCP/IP协议 TCP/IP原创 2017-06-23 15:51:35 · 717 阅读 · 0 评论 -
java实现对称加密
一、对称加密算法概述 对称加密算法是应用较早的加密算法,技术成熟。在对称加密算法中,数据发信方将明文(原始数据)和加密密钥(mi yue)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,若想解读原文,则需要使用加密用过的密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解原创 2017-07-12 16:00:36 · 2599 阅读 · 0 评论 -
浅谈java中的static关键字作用
通常,我们创建类时会指出那个类的对象的外观与行为。除非用new 创建那个类的一个对象,否则实际上并未得到任何东西。只有执行了new 后,才会正式生成数据存储空间,并可使用相应的方法。但在两种特殊的情形下,上述方法并不堪用。一种情形是只想用一个存储区域来保存一个特定的数据——无论要创建多少个对象,甚至根本不创建对象。另一种情形是我们需要一个特殊的方法,它没有与这个类的任何对象关联。也就是说,原创 2017-07-07 14:43:40 · 360 阅读 · 0 评论 -
浅谈java中final关键字的作用
1、final修饰类中的属性或者变量 无论属性是基本类型还是引用类型,final所起的作用都是变量里面存放的“值”不能变。 这个值,对于基本类型来说,变量里面放的就是实实在在的值,如1,“abc”等。 而引用类型变量里面放的是个地址,所以用final修饰引用类型变量指的是它里面的地址不能变,并不是说这个地址所指向的对象或数组的内容不可以变,这个一定要注意。 例如:原创 2017-07-07 15:31:12 · 348 阅读 · 0 评论 -
浅谈java中transient(临时)关键字的作用
java 的transient关键字为我们提供了便利,你只需要实现Serilizable接口,将不需要序列化的属性前添加关键字transient,序列化对象的时候,这个属性就不会序列化到指定的目的地中原创 2017-07-07 15:58:01 · 956 阅读 · 0 评论 -
TimeUnit用法
TimeUnit是java.util.concurrent包下面的一个类,表示给定单元粒度的时间段1、主要作用 时间颗粒度转换 延时2、常用的颗粒度TimeUnit.DAYS //天 TimeUnit.HOURS //小时 TimeUnit.MINUTES //分钟 TimeUnit.SECONDS原创 2017-07-25 16:23:42 · 16369 阅读 · 2 评论 -
java中两个list对比,查出增加和删除的数据然后去重
package rmd_pms_web;import java.util.ArrayList;import java.util.Arrays;import java.util.HashSet;import java.util.List;/** * @Description: 两个list对比,查出增加,删除的数据然后去重 * @date 2017年8月17日 */public原创 2017-08-17 10:26:48 · 4085 阅读 · 6 评论 -
BeanUtils工具详解
什么是BeanUtils工具BeanUtils工具是一种方便我们对JavaBean进行操作的工具,是Apache组织下的产品。BeanUtils工具一般可以方便javaBean的哪些操作?1)beanUtils 可以便于对javaBean的属性进行赋值。2)beanUtils 可以便于对javaBean的对象进行赋值。3)beanUtils可以将一个MAP集合的数据拷贝到一个j转载 2017-08-14 17:37:24 · 1110 阅读 · 0 评论 -
PropertyUtils.copyProperties()用法和性能
BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。使用PropertyUtils.copyProperties()拷贝一个bean中的属性到另一个bean中,第一个参数是目标bean,第二个转载 2017-08-14 17:49:01 · 706 阅读 · 0 评论 -
身份证号码验证
package rmd_pms_web;/** * Created by wdj on 2017/6/21. */import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Calendar;import java.util.Date;import java.util.Ra原创 2017-09-13 15:12:28 · 354 阅读 · 0 评论 -
javadoc注释规范
javadoc注释规范javadoc是Sun公司提供的一个技术,它从程序源代码中抽取类、方法、成员等注释形成一个和源代码配套的API帮助文档。javadoc命令是用来生成自己API文档的,使用方式:在dos中在目标文件所在目录输入javadoc +文件名.java。 标签说明JDK 1.1 doclet标准doclet原创 2017-10-19 14:18:21 · 1163 阅读 · 0 评论 -
java的HashMap底层数据结构
HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以key-value的形式存在。在HashMap中,key-value总是会当做一个整体来处理,系统会根据hash算法来来计算key-value的存储位置,我们总是可以通过key快速地存、取value。下面就来分析HashMap的存取。一、定义 HashMap实现了Map接口,继承Abs转载 2017-12-21 14:42:17 · 932 阅读 · 0 评论