自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

转载 tomcat启动startup.bat一闪而过

遇到很多次运行startup.bat后,一个窗口一闪而过的问题,但是从来没去纠正怎样修改配置才是正确的,现在从网上查阅的资料整理如下:tomcat在启动时,会读取环境变量的信息,需要一个CATALINA_HOME 与JAVA_HOME的信息,CATALINA_HOME即tomcat的主目录,JAVA_HOME即java安装的主目录,jdk的主目录。首先,要在环境变量处,配置JAVA_HOME,注意...

2018-03-07 12:17:41 352

原创 Java8系列之重新认识HashMap 2016/06/27 | 分类: 基础技术 | 9 条评论 | 标签: HashMap, java8 分享到: 67 原文出处: 前利 简介 Java为数

Java8系列之重新认识HashMap2016/06/27 | 分类: 基础技术 | 9 条评论 | 标签: HashMap,java8分享到:67原文出处: 前利简介Java为数据结构中的映射定义了一个接口java.util.Map,此接口主要有四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap,

2017-09-04 17:14:52 411

原创 Jdk8之lambda表达式的使用(二)

看这个之前,我当成你们已经看过之前的(一)了,没有看过的请回头看看哦,便于理解这里我们可以看到,实现比较的接口之后,因为这个接口满足我们所说的功能性接口,所以这里我们可以使用lambda表达式,可以看到排序前和排序后的结果,说明我们的代码是没有问题的,大家应该可以看得懂."->" 操作符前面是接口中的方法的参数列表,后面是实现接口的方法中的表达式.是不是和以前写的差别很大啊?看看以前的

2017-07-26 15:06:08 600

原创 Jdk8之lambda表达式的使用(一)

Jdk出来也已经很久了,一直没有时间去了解,今天趁着有空,小金子带你们使用一下Jdk中最让我感兴趣的部分:lambda表达式,使用这个可以很大程度上减少代码量,并且让代码看上去更舒心!废话就不多说啦,直接带你们使用吧!1.第一次来点简单的:下面是一个接口,相信大家都看得懂,是不是和Runnable接口很像呢?确实,其实定义这个接口的目的就是为了获取Run方法中线程要执行的代码.所以这里我们

2017-07-26 15:05:36 1260

原创 jdk1.8 新特性之 forEach 循环遍历

常规情况下我们基本都是这么写的List numbers = new ArrayList<>();//no.1for(Integer number : numbers){ System.out.println(number);}//no.2for(int index=0,len=numbers.size();index<len;index++){ Syste

2017-07-26 14:03:50 2876 1

转载 Spring中@Autowired注解、@Resource注解的区别

spring不但支持自己定义的@Autowired注解,还支持几个由JSR-250规范定义的注解,它们分别是@Resource、@PostConstruct以及@PreDestroy。  @Resource的作用相当于@Autowired,只不过@Autowired按byType自动注入,而@Resource默认按 byName自动注入罢了。@Resource有两个属性是比较重要的,分是nam

2017-07-21 13:49:12 311

原创 利用spring session解决共享Session问题

spring-session使用配置(分布式共享session配置)1. 添加依赖  dependency> groupId>org.springframework.sessiongroupId> artifactId>spring-session-data-redisartifactId> version>1.2.0.RELEASEversion>dep

2017-06-09 09:54:36 983

转载 Nginx限制ip多次访问

如何设置能限制某个IP某一时间段的访问次数是一个让人头疼的问题,特别面对恶意的ddos攻击的时候。其中CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃。cc攻击一般就是使用有限的ip数对服务器频繁发送数据来达到攻击的目的,nginx

2017-06-02 11:02:37 4027

转载 inux 下连接mysql服务器

MySQL -h 服务器主机地址 -u 用户名 -p 用户密码   其中,参数的意义:   -h:指定所连接的数据库服务器位置,可以是IP地址,也可以是服务器域名。   -u:指定连接数据库服务器使用的用户名,例如root为管理员用户具有所有权限。   -p:连接数据库服务器使用的密码,但-p和其后的参数之间不要有空格。最后是在该参数后直接回车,然后以密文的形式输入密码。   

2017-05-27 15:36:21 314

原创 Linux下Mysql安装后设置密码

在Centos中安装MySQL后默认的是没有root密码的,默认的是回车,那么为了方便需要修改密码。没有密码为MYSQL加密码:mysql -uroot -p回车提示输入密码,为空回车update mysql.user set password=PASSWORD('12345678') where user='root';刷新权限表,输入如下命令flush privileges

2017-05-27 15:16:11 378

转载 解决activemq多消费者并发处理

遇到一个现象,如果activemq队列积压了数据的话,如果在spring中启动listner,只有一个consumer执行,查阅了很多资料,无果,后来偶尔通过activemq的监控网页看到消费者列表中,只有一个消费者有等待处理的数据,其他都没有,如下图:由此得知,activemq有一定机制将队列中的数据交给consumer处理,这个机制就是数据的数量分配,查资料得知,默认是1000,因此,

2017-05-13 17:48:06 7341

转载 如何解决web系统session劫持

session劫持是一种比较复杂的攻击方法。大部分互联网上的电脑多存在被攻击的危险。这是一种劫持tcp协议的方法,所以几乎所有的局域网,都存在被劫持可能。两台主机要想进行TCP通信,必须经过一个三次握手的过程。三次握手过程中服务端和客户端一般会协商一个序列号。这个序列号一般是一个长整数。用来标记每个数据包本来的顺序。服务端或者客户端使用这个序列号来重组在网络传输过程中乱序了的数据包

2017-05-13 17:20:04 1673

转载 运用JMeter登录系统,并进行性能测试

(4940) (1)首先必须抓取网站登陆时所发送的Post参数,以登陆知乎zhihu为例用Chrome打开 https://www.zhihu.com/,点击登录进入登录页面,保持该页面不动(下图左边)。随后进入Chrome的开发者模式,选择Network视图(下图右边) 。最好勾上Preserve Log的选项 ,以免在提交登录请求的时候由于页面刷新太快漏掉了请求。输入用户名

2017-05-13 16:52:17 1668

原创 解决Spring MVC @ResponseBody返回中文字符串乱码问题

引起乱码原因为spring mvc使用的默认处理字符串编码为ISO-8859-1,具体参考org.springframework.http.converter.StringHttpMessageConverter类中public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1");解决方法:第一种

2017-05-13 10:58:50 389

转载 A cycle was detected in the build path of project 感叹号

解决Eclipse中Java工程间循环引用而报错的问题如果我们的项目包含多个工程(project),而它们之间又是循环引用的关系,那么Eclipse在编译时会抛出如下一个错误信息:“A cycle was detected in the build path of project: XXX”解决方法非常简单:Eclipse Menu -> Window -> Preferences

2017-05-11 18:24:02 247

转载 JMS规范中五种消息类型

摘要: 本文讲述了JMS规范中五种消息类型,包括TextMessage、BytesMessage、MapMessage、StreamMessage和ObjectMessage1.前言        ActiveMQ学习笔记(四)——通过ActiveMQ收发消息http://my.oschina.net/xiaoxishan/blog/380446 和ActiveMQ学习笔记(五)——使

2017-05-10 16:01:37 536

原创 多线程的应用场景

通俗的解释一下多线程先:多线程用于堆积处理,就像一个大土堆,一个推土机很慢,那么10个推土机一起来处理,当然速度就快了,不过由于位置的限制,如果20个推土机,那么推土机之间会产生相互的避让,相互摩擦,相互拥挤,反而不如10个处理的好,所以,多线程处理,线程数要开的恰当,就可以提高效率。多线程使用的目的:1、  吞吐量:做WEB,容器帮你做了多线程,但是它只能帮你做请求层面的,简单的说,

2017-05-09 17:25:47 425

转载 秒杀系统架构分析与实战

0 系列目录秒杀系统架构秒杀系统架构分析与实战1 秒杀业务分析正常电子商务流程(1)查询商品;(2)创建订单;(3)扣减库存;(4)更新订单;(5)付款;(6)卖家发货秒杀业务的特性(1)低廉价格;(2)大幅推广;(3)瞬时售空;(4)一般是定时上架;(5)时间短、瞬时并发量高;2 秒杀技术挑战假设某网站秒杀活动只推出一件商品,预计会

2017-05-04 11:21:30 228

转载 秒杀系统设计详解

导读:最初的秒杀系统的原型是淘宝详情上的定时上架功能,由于有些卖家为了吸引眼球,把价格压得很低。但这给的详情系统带来了很大压力,为了将这种突发流量隔离,才设计了秒杀系统,文章主要介绍大秒系统以及这种典型读数据的热点问题的解决思路和实践经验。一些数据大家还记得2013年的小米秒杀吗?三款小米手机各11万台开卖,走的都是大秒系统,3分钟后成为双十一第一家也是最快破亿的旗舰店。经过日志统计,

2017-05-04 11:18:02 265

转载 秒杀系统架构分析与实战 for java

目录[-]0 系列目录1 秒杀业务分析2 秒杀技术挑战3 秒杀架构原则4 秒杀架构设计4.1 前端层设计4.2 站点层设计4.3 服务层设计4.4 数据库设计4.4.1 基本概念4.4.2 设计思路5 大并发带来的挑战5.1 请求接口的合理设计5.2 高并发的挑战:一定要“快”5.3 重启与过载保护6 作弊的手段:进攻与防守

2017-05-04 11:14:22 206

转载 apache性能测试工具ab使用详解

网站性能压力测试是服务器网站性能调优过程中必不可缺少的一环。只有让服务器处在高压情况下,才能真正体现出软件、硬件等各种设置不当所暴露出的问题。性能测试工具目前最常见的有以下几种:ab、http_load、webbench、siege。今天我们专门来介绍ab。ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行

2017-05-04 11:00:51 3980

原创 ab 压力测试 命令详解与结果分析

ab 压力测试 命令详解与结果分析  ab(apache benchmark) —— apache自带的一个测试工具一般把apache压力测试称为AB测试. ab工具的位置在apache的bin目录里.ab的使用是这样的:  /usr/local/apache/bin/ab Usage: ./ab [options] [http://]hostname[:port]/pat

2017-05-02 16:51:08 7755

转载 Web安全之XSS攻防

原文链接:http://caibaojian.com/xss.htmlXSS 全称(Cross Site Scripting) 跨站脚本攻击, 是web程序中最常见的漏洞。指攻击者在网页中嵌入客户端脚本(例如JavaScript), 当用户浏览此网页时,脚本就会在用户的浏览器上执行,从而达到攻击者的目的.  比如获取用户的Cookie,导航到恶意网站,携带木马等。作为测试人员,需要

2017-04-28 11:54:26 351

转载 如何防止网站被爬虫爬取的几种办法

今天想对一个问题进行分析和讨论,就是关于爬虫对网站页面爬取的问题,有些网站通过爬虫去采集其它的网站页面信息作为己用,大量的爬取行为会对web服务器有比较性能有影响,主要的表现就是会变得很慢。对于如何防止网站被爬取,我想从以下几种方法去分析:1.基于程序本身去防止爬取:作为爬虫程序,爬取行为是对页面的源文件爬取,如爬取静态页面的html代码,可以用jquery去模仿写html,这种方

2017-04-28 11:52:36 4203

原创 WEB开发中一些常见的攻击方式及简单的防御方法

SQL注入最常见的攻击方式,所谓SQL注入,就是通过把SQL命令插入到Web表单提交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击.跨站脚本攻击(XSS)跨站脚本攻击(也称为XSS)指利用网站漏洞从用户那里恶意盗取信息。文件包含由于开

2017-04-28 11:47:01 469

转载 cookie窃取和session劫持

cookie窃取和session劫持浏览:11232次  出处信息Updates2014-08-17 感谢@搞前端的crosser的提醒,加入了HTTP Response Splitting的内容。此篇文章的Presentation戳这里。一、cookie的基本特性如果不了解cookie,可以先到wikipedia上学习一下。http r

2017-04-28 11:45:08 2606 1

原创 Queue与Topic区别

队列(Queue)和主题(Topic)是JMS支持的两种消息传递模型:        1、点对点(point-to-point,简称PTP)Queue消息传递模型:        通过该消息传递模型,一个应用程序(即消息生产者)可以向另外一个应用程序(即消息消费者)发送消息。在此传递模型中,消息目的地类型是队列(即Destination接口实现类实例由Session接口实现类实例通过调用其

2017-04-26 17:02:01 703

转载 activemq深入了解—队列模式手动控制消费

版权声明:本文为博主原创文章,未经博主允许不得转载。        相信经过了解,基本使用activemq后,大家一定知道队列里面有ACK模式,他的类型有以下几种        1、AUTO_ACKNOWLEDGE = 1    自动确认        2、CLIENT_ACKNOWLEDGE = 2    客户端手动确认3、DUPS_OK_ACKNOWLEDGE = 3  

2017-04-26 16:40:30 1188

原创 ActiveMQ故障转移传输

故障转移传输层重新连接任何其他传输器之上的逻辑。配置语法允许您指定任意数量的复合URI。故障转移传输随机选择一个复合URI,并尝试建立与之的连接。如果它不成功,或者如果随后失败,则从列表中随机选择一个其他URI,建立一个新的连接。 配置语法failover:(uri1,...,uriN)?transportOptions&nestedURIOptions要么

2017-04-25 14:59:46 1429

转载 你应该知道的那些超时设置或默认参数 - 旁观者

存储介质RedisJava-DriverJedis连接池:Jedis的连接池设计基于 Apache Commons-Pool 原生库:maxActive:可用连接实例的最大数目,默认值为8;maxIdle:空闲连接实例的最大数目,默认值也是8;minIdle:空闲连接实例的最小数目,默认值为0;maxWait:等待可用连接的最大数目,单位毫秒,默认值为-

2017-04-25 14:53:08 999 1

转载 消息队列使用的四种场景介绍

消息队列中间件是分布式系统中重要的组件,主要解决应用耦合,异步消息,流量削锋等问题实现高性能,高可用,可伸缩和最终一致性架构使用较多的消息队列有ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ二、消息队列应用场景以下介绍消息队列在实际应用中常用的使用场景。异步处理,应用解耦,流量削锋和消息通讯四个场景2.1异步处理场景说明:用

2017-04-18 10:55:09 81402 23

转载 eclipse安装JAVA反编译插件

前言:在实际的开发中几乎都会使用到一些框架来辅助项目的开发工作,对于一些框架的代码我们总怀有一些好奇之心,想一探究竟,有源码当然更好了,对于有些JAR包中的代码我们就需要利用反编译工具来看一下了,下面是我常使用的一种安装JAVA反编译工具的方法,操作比较简单,不过时间长了也容易忘记,还是在此小记一笔吧!毕竟好记性不如烂笔头(插件市场中有好多好玩的,自己可以尝试玩玩看!)1:Eclipse的版本

2017-04-08 11:26:11 610 1

转载 Activemq 常见的一些问题 心得

1.先讲严重的:服务挂掉。这得从ActiveMQ的储存机制说起。在通常的情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的,它们的最大限制在配置文件的节点中配置。但是,在非持久化消息堆积到一定程度,内存告急的时候,ActiveMQ会将内存中的非持久化消息写入临时文件中,以腾出内存。虽然都保存到了文件里,但它和持久化消息的区别是,重启后持久化消息会从文件中恢复,非持久化的临时文

2017-04-05 19:43:11 1305

转载 ActiveMQ的应用场景

MQ的学习目前流行的就是:activemq、ZeroMQ、RabbitMQ、kafka、rocketmq,学习RabbitMQ就可以了,这个就很强大。rabbitMQ的优点(适用范围)     1. 基于erlang语言开发具有高可用高并发的优点,适合集群服务器。    2. 健壮、稳定、易用、跨平台、支持多种语言、文档齐全。    3. 有消息确认机制和持久化机制,可靠性高。

2017-04-05 11:49:23 542

转载 git管理常用代码

Git 代码管理常用命令1) 远程仓库相关命令检出仓库:$ git clone git://github.com/jquery/jquery.git查看远程仓库:$ git remote -v添加远程仓库:$ git remote add [name] [url]删除远程仓库:$ git remote rm [name]修改远程仓库:$ git remote set

2017-03-31 11:54:12 220

原创 spring里面事务的传播属性和事务隔离级别

spring里面事务的传播属性和事务隔离级别一、Propagation (事务的传播属性)Propagation :  key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。有以下选项可供使用:PROPAGATION_REQUIRED--支持当前事务,如果当前没有事务,就新建一个事务。这是最常见的选择。PROPAGATION_SUPPORTS--支持当前事

2017-03-30 09:53:35 2680

原创 SQL语句查询

----------------------------------------个人总结----------------------------------------------------------------------------------------------查询                                                          

2017-03-13 14:13:58 338

原创 Java中this和super的用法总结

Java中this和super的用法总结这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各位指正~thisthis是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。this的用法在java中大体可以分为3种:1.普通的直接引用这种就不用讲了,this相当于是指向当前对象本身。2.形参与成员名字重名,用this

2017-03-11 15:20:31 303

原创 HashMap

数组将元素在内存中连续存放,由于每个元素占用内存大小相同,可以通过下标迅速访问数组中任何元素。但是如果要在数组中增加一个元素,需要移动大量元素,在内存中空出一个元素的空间,然后将要增加的元素放在其中。同样的道理,如果想删除一个元素,同样需要移动大量元素去填掉被移动的元素。如果应用需要快速访问数据,很少或不插入和删除元素,就应该用数组。    链表恰好相反,链表中的元素在内存中不是顺序存储的,而

2017-03-01 09:40:25 343

转载 java提高篇(四)-----抽象类与接口

接口和内部类为我们提供了一种将接口与实现分离的更加结构化的方法。       抽象类与接口是Java语言中对抽象概念进行定义的两种机制,正是由于他们的存在才赋予java强大的面向对象的能力。他们两者之间对抽象概念的支持有很大的相似,甚至可以互换,但是也有区别。      一、抽象类       我们都知道在面向对象的领域一切都是对象,同时所有的对象都是通过类来描述的,但是并

2017-02-27 22:51:49 285

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