07 2019 档案

摘要:1,简介OAuth http://www.ruanyifeng.com/blog/2019/04/oauth_design.html OAuth 是什么? http://www.ruanyifeng.com/blog/2019/04/oauth-grant-types.html OAuth的四种授权 阅读全文
posted @ 2019-07-30 17:42 Chris,Cai 阅读(2765) 评论(0) 推荐(0) 编辑
摘要:不管是以何种方式传递url时,如果要传递的url中包含特殊字符,如想要传递一个+,但是这个+会被url会被编码成空格,想要传递&,被url处理成分隔符。 尤其是当传递的url是经过Base64加密或者RSA加密后的,存在特殊字符时,这里的特殊字符一旦被url处理,就不是原先你加密的结果了。 url特 阅读全文
posted @ 2019-07-30 15:51 Chris,Cai 阅读(3571) 评论(0) 推荐(0) 编辑
摘要:1.需求:现在A公司与B公司进行合作,B公司需要调用A公司开放的外网接口获取数据,如何保证外网开放接口的安全性? 2,使用令牌方式 比如支付宝对外提供支付的接口,爱乐生公司需要调用支付宝的接口。在爱乐生调用支付宝接口的时候,支付宝进行过滤器拦截,查看参数中的accessToken信息,是否能在red 阅读全文
posted @ 2019-07-30 15:23 Chris,Cai 阅读(2563) 评论(0) 推荐(0) 编辑
摘要:2,redis windows下客户端查看工具 redisclient-win32.x86.1.5.exe ,网上直接下载界面如下,输入redis 服务的ip,密码,端口号就可以了进入了,密码就是上面的123 阅读全文
posted @ 2019-07-30 10:15 Chris,Cai 阅读(505) 评论(0) 推荐(0) 编辑
摘要:1,在上传图片的时候,有些图片可能是木马文件,后缀改成了图片的后缀名。。。需要判断文件流,是否是图片 阅读全文
posted @ 2019-07-29 21:52 Chris,Cai 阅读(284) 评论(0) 推荐(0) 编辑
摘要:黑客使用抓包工具分析Http请求,在忘记密码找回时,需要发送一套短信验证码,如果验证码数字比较短的话,很容易使用暴力破解方式攻击破。 防御手段: 忘记密码验证码最好在6-8位。 一旦频繁调用接口验证时,应该使用图形验证码拦截,防止机器模拟。 使用黑名单和白名单机制,防御攻击。 阅读全文
posted @ 2019-07-29 21:46 Chris,Cai 阅读(313) 评论(0) 推荐(0) 编辑
摘要:1,CSRF (Cross Site Request Forgery, 跨站域请求伪造),也可以说是模拟请求。 2,黑客获取到了token 令牌,发送恶意模拟请求,攻击网站,防御方法可以参考api 接口幂等设计 3,防止伪造token,在一些特别需要注意的接口,如支付,转账等需要加上短信验证,或者人 阅读全文
posted @ 2019-07-29 21:43 Chris,Cai 阅读(238) 评论(0) 推荐(0) 编辑
摘要:1,Api接口幂等设计,也就是要保证数据的唯一性,不允许有重复。 例如:rpc 远程调用,因为网络延迟,出现了调用了2次的情况。 表单连续点击,出现了重复提交。 接口暴露之后,会被模拟请求工具(Jemter等)进行攻击。 2,怎么样保证接口幂等设计呢? 可以使用Token方式,每次调用Api 接口( 阅读全文
posted @ 2019-07-29 21:36 Chris,Cai 阅读(1040) 评论(0) 推荐(0) 编辑
摘要:1,防盗链防止盗用自己服务上的东西。。。 2,XSS服务上有这么一张图: SatetyChain 服务上:<img src="http://127.0.0.1:8080/img/logo.PNG" alt=""> 直接把这张图片引用过来,属于盗图,怎么防止这种情况发生呢? 3,防盗链技术实现上面的需 阅读全文
posted @ 2019-07-29 18:51 Chris,Cai 阅读(483) 评论(0) 推荐(0) 编辑
摘要:SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库执行一些恶意的操作。在mybatis 中比较容易出现:${} 会发生sql 注入问题 #{}: 解析为一个 JDBC 预编译语句(prepared statement)的参数标记符,一个 #{ } 被解析为一个参数占位符,可以防止S 阅读全文
posted @ 2019-07-29 16:59 Chris,Cai 阅读(271) 评论(0) 推荐(0) 编辑
摘要:1,XSS 攻击 因为浏览器默认支持脚本执行,提交表单时候,如果有脚本语言,可能就浏览器就直接执行了。 index.ftl: forward.ftl: controller: 当调用index 的方法,进入到index.ftl ,提交表单,进去到postIndex 的方法,找到forward 页面, 阅读全文
posted @ 2019-07-29 14:56 Chris,Cai 阅读(531) 评论(0) 推荐(0) 编辑
摘要:1,传统架构访问服务器资源: www.aiyuesheng.com/page/logo.png 这是部署在服务器上的一张图片,因为服务器部署在上海,所以在上海或周边的人访问要稍微快一点,但是,若是云南,广州,因为受距离,网络传输等原因,访问的速度就可能慢很多。 2,通过CDN 加速 CDN:Cont 阅读全文
posted @ 2019-07-29 12:34 Chris,Cai 阅读(982) 评论(0) 推荐(0) 编辑
摘要:1,漏桶算法漏桶作为计量工具(The Leaky Bucket Algorithm as a Meter)时,可以用于流量整形(Traffic Shaping)和流量控制(TrafficPolicing),漏桶算法的描述如下:一个固定容量的漏桶,按照常量固定速率流出水滴;如果桶是空的,则不需流出水滴 阅读全文
posted @ 2019-07-26 21:26 Chris,Cai 阅读(3217) 评论(1) 推荐(2) 编辑
摘要:1,RateLimiter是guava提供的基于令牌桶算法的实现类,可以非常简单的完成限流特技,并且根据系统的实际情况来调整生成token的速率。通常可应用于抢购限流防止冲垮系统;限制某接口、服务单位时间内的访问量,譬如一些第三方服务会对用户访问量进行限制;限制网速,单位时间内只允许上传下载多少字节 阅读全文
posted @ 2019-07-26 19:57 Chris,Cai 阅读(1658) 评论(0) 推荐(0) 编辑
摘要:1.它是限流算法中最简单最容易的一种算法 计数器实现限流 每分钟只允许10个请求 第一个请求进去的时间为startTime,在startTime + 60s内只允许10个请求 当60s内超过十个请求后,拒绝,不超过,到第60s 重新设置时间 它是限流算法中最简单最容易的一种算法,比如我们要求某一个接 阅读全文
posted @ 2019-07-26 18:26 Chris,Cai 阅读(1144) 评论(0) 推荐(0) 编辑
摘要:1,Hyxtrix 是什么? Netflix的一套开源框架,可以理解为高并发的一套解决方案。可以提供服务隔离,服务熔断,服务降级。 2,服务隔离 介绍服务隔离前,需要先了解下,服务雪崩效应。 服务雪崩效应指的是:因为一个服务产生了阻塞堆积(可能有大量的访问请求),而导致其他的服务不可用。 雪崩效应产 阅读全文
posted @ 2019-07-26 14:59 Chris,Cai 阅读(379) 评论(0) 推荐(0) 编辑
摘要:VRRP协议:Virtual Route Redundancy Protocol虚拟路由冗余协议。是一种容错协议,保证当主机的下一跳路由出现故障时,由另一台路由器来代替出现故障的路由器进行工作,从而保持网络通信的连续性和可靠性。在介绍VRRP之前先介绍一些关于VRRP的相关术语: 虚拟路由器:由一个 阅读全文
posted @ 2019-07-24 10:47 Chris,Cai 阅读(347) 评论(0) 推荐(0) 编辑
摘要:1,nginx 作为负载均衡器,在应用层实现了负载均衡和反向代理,在分布式集群中,能够有效的去处理大数据量,高访问的应用。但是,如果nginx 服务挂了怎么办? 为此,可以实现两台nginx或者多台nginx服务器,也就是双机主从热备,或者多机多主多从。当主nginx(master)挂了之后,备机器 阅读全文
posted @ 2019-07-24 10:44 Chris,Cai 阅读(284) 评论(0) 推荐(0) 编辑
摘要:1,简介四层负载均衡 七层负载均衡 四层负载均衡,在网络模型中的传输层中,基于主要是基于tcp协议报文实现负载均衡(比如LVS、haproxy就是四层负载均衡器),使用改写报文的源地址和目的地址。 nginx 1.9 之后也可以通过配置实现四层负载均衡。四层负载均衡支持所有的负载均衡功能比如数据库, 阅读全文
posted @ 2019-07-23 15:03 Chris,Cai 阅读(901) 评论(0) 推荐(0) 编辑
摘要:1,区别 udp: a、是面向无连接, 将数据及源的封装成数据包中,不需要建立连接 b、每个数据报的大小在限制64k内 c、因无连接,是不可靠协议 d、不需要建立连接,速度快 tcp: a、建议连接,形成传输数据的通道. b、在连接中进行大数据量传输,以字节流方式 c 通过三次握手完成连接,是可靠协 阅读全文
posted @ 2019-07-23 13:37 Chris,Cai 阅读(927) 评论(0) 推荐(0) 编辑
摘要:1,网络模型 阅读全文
posted @ 2019-07-23 13:36 Chris,Cai 阅读(130) 评论(0) 推荐(0) 编辑
摘要:1,动态负载均衡 传统的负载均衡,如果修改了nginx.conf 的配置,必须需要重启nginx 服务,效率不高。动态负载均衡,就是可配置化,动态化的去配置负载均衡。 2,实现方案 1. Consul+Consul-template 每次发现配置更改需要raload nginx,重启Nginx。 2 阅读全文
posted @ 2019-07-22 19:09 Chris,Cai 阅读(853) 评论(0) 推荐(0) 编辑
摘要:1,实现目标,通过外网访问域名,能够通过nginx 实现反向代理,以及负载均衡 2,准备工具 阿里云注册的域名: aiyuesheng.com 腾讯云领取的云服务器:centos 7 xshell 6: 用来连接云服务器 FileZilla Client: 用来服务器和本地的文件传输 Notepad 阅读全文
posted @ 2019-07-22 11:29 Chris,Cai 阅读(2429) 评论(0) 推荐(0) 编辑
摘要:Linux安装Nginx 1.安装gcc gcc-c++(如新环境,未安装请先安装)$ yum install -y gcc gcc-c++2.安装wget$ yum -y install wget 3.安装PCRE库$ cd /usr/local/$ wget http://jaist.dl.so 阅读全文
posted @ 2019-07-22 10:09 Chris,Cai 阅读(701) 评论(0) 推荐(0) 编辑
摘要:Nginx提供的全局变量或自己设置的变量,结合正则表达式和标志位实现url重写以及重定向。rewrite只能放在server{},location{},if{}中,并且只能对域名后边的除去传递的参数外的字符串起作用。Rewrite主要的功能就是实现URL的重写,Nginx的Rewrite规则采用Pc 阅读全文
posted @ 2019-07-18 16:04 Chris,Cai 阅读(245) 评论(0) 推荐(0) 编辑
摘要:1,简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。其特点是占有内存少,并发能力强 阅读全文
posted @ 2019-07-18 12:13 Chris,Cai 阅读(255) 评论(0) 推荐(0) 编辑
摘要:外网映射工具 在做微信开发或者是对接第三方支付接口时,回调接口可能需要外网访问,这时候开发者在本地测试的时候,需要用到外网测试工具。常用的外网测试工具有natapp、ngrok NatApp简介服务器更新:全面支持HTTPS协议以及本地SSL证书,支持WSS协议.同时支持HTTP/2 WEB协议,支 阅读全文
posted @ 2019-07-18 10:06 Chris,Cai 阅读(246) 评论(0) 推荐(0) 编辑
摘要:DNS域名解析 整个过程大体描述如下,其中前两个步骤是在本机完成的,后8个步骤涉及到真正的域名解析服务器:1、浏览器会检查缓存中有没有这个域名对应的解析过的IP地址,如果缓存中有,这个解析过程就结束。浏览器缓存域名也是有限制的,不仅浏览器缓存大小有限制,而且缓存的时间也有限制,通常情况下为几分钟到几 阅读全文
posted @ 2019-07-17 17:29 Chris,Cai 阅读(379) 评论(0) 推荐(0) 编辑
摘要:1,获取配置文件自定义参数的值 @Value 2,@Async 配和 @EnableAsync 在userService 层添加: 不加@Async 配和 @EnableAsync 执行顺序1,2,3,4 加了之后,1,4,2,3, 需要注意的是@Async 所在的bean 需要被注入到Spring 阅读全文
posted @ 2019-07-17 14:43 Chris,Cai 阅读(147) 评论(0) 推荐(0) 编辑
摘要:多个配置文件指定了不同的发布环境, application-dev.yml 的配置文件是开发用 application-test.yml 的配置文件是测试用 application-pre.yml 的配置文件是预生产用 application-prod.yml的配置文件是生产用 applicatio 阅读全文
posted @ 2019-07-17 14:16 Chris,Cai 阅读(208) 评论(0) 推荐(0) 编辑
摘要:1,进入项目文件目录 2,cmd 进入到项目目录 mvn package ,可以mvn clean 先,也可以不用,因为会覆盖 3,进入到target 目录下就有个打完包的jar 包 4,运行jar 包 jar -jar 包名 注意点:直接的java -jar 包名 运行有可能会报错:没有主清单属性 阅读全文
posted @ 2019-07-17 13:52 Chris,Cai 阅读(321) 评论(0) 推荐(0) 编辑
摘要:1, 默认情况下,我们会使用 @SpringBootApplication 注解来自动获取应用的配置信息,但这样也会给应用带来一些副作用。使用这个注解后,会触发自动配置( auto-configuration )和 组件扫描 ( component scanning ),这跟使用 @Configur 阅读全文
posted @ 2019-07-17 13:19 Chris,Cai 阅读(2207) 评论(0) 推荐(0) 编辑
摘要:1,SpringBoot 监控中心: 针对微服务服务监控,服务器内存内存变化(对内存,线程,日志管理),检测服务配置连接地址是否可用(模拟访问,懒加载),故意将mysql 数据源连接密码写错,启动就会报错 java.sql.SQLException: Access denied for user ' 阅读全文
posted @ 2019-07-17 10:54 Chris,Cai 阅读(1993) 评论(0) 推荐(0) 编辑
摘要:使用lombok 中的注解@Slf4j ,实际上在用字节码解析的时候生成的是 private static Log log = LogFactory.getLog(TestLog.class); lombok 的其他特性: 阅读全文
posted @ 2019-07-16 15:28 Chris,Cai 阅读(284) 评论(0) 推荐(0) 编辑
摘要:一个项目中怎么划分数据库,可以通过具体业务需求。 项目中数据源怎么如何划分,通过注解的方式@Datasource(ref="") 在方法上指定,会连接指定的数据源,这种方式比较繁琐。如果有1000个方法,就得写1000个这种注解。所以一般通过分包名的方式。 通过分包名来划分数据源: 1,mysql 阅读全文
posted @ 2019-07-16 14:34 Chris,Cai 阅读(326) 评论(0) 推荐(0) 编辑
摘要:1,必要的依赖: 2, mysql 数据库 testdb 下有张user 表: 3,表对应的实体类: 4,mapper 接口(dao) 5,mapper.xml 6,配置文件链接mapper 和 mapper.xml 7, service 层 8,controller 层: 7,启动类,要加上map 阅读全文
posted @ 2019-07-15 16:34 Chris,Cai 阅读(264) 评论(0) 推荐(0) 编辑
摘要:1,静态资源访问: 在我们开发Web应用的时候,需要引用大量的js、css、图片等静态资源。 默认配置 Spring Boot默认提供静态资源目录位置需置于classpath下,目录名需符合如下规则: /static /public /resources /META-INF/resources 举例 阅读全文
posted @ 2019-07-15 14:21 Chris,Cai 阅读(866) 评论(0) 推荐(0) 编辑
摘要:1,SpringBoot VS SpringMvc VS SpringBoot SpringBoot: SpringBoot 是一个快速开发的框架,能够快速的整合第三方框架,简化XML配置,全部采用注解形式,内置Tomcat容器,帮助开发者能够实现快速开发,SpringBoot的Web组件 默认集成 阅读全文
posted @ 2019-07-15 13:11 Chris,Cai 阅读(225) 评论(0) 推荐(0) 编辑
摘要:双向链结构,可以参考数据结构 https://www.cnblogs.com/pickKnow/p/9593069.html 阅读全文
posted @ 2019-07-10 20:28 Chris,Cai 阅读(122) 评论(0) 推荐(0) 编辑
摘要:1,ArraList 底层是将数据存入在一个Object[] elementData 数组里面的 2,在JDK 之后,才将elementData 默认大小10 放在add 方法里面 3, 存在ArrayList数组,往里面添加元素: 如果数组的实际容量 + 1 大于 数组的存储容量的时候,就开始扩容 阅读全文
posted @ 2019-07-10 19:55 Chris,Cai 阅读(1055) 评论(0) 推荐(0) 编辑
摘要:数据库连接池原理基本原理在内部对象池中,维护一定数量的数据库连接,并对外暴露数据库连接的获取和返回方法。 如外部使用者可通过getConnection方法获取数据库连接,使用完毕后再通过releaseConnection方法将连接返回,注意此时的连接并没有关闭,而是由连接池管理器回收,并为下一次使用 阅读全文
posted @ 2019-07-10 15:20 Chris,Cai 阅读(400) 评论(0) 推荐(0) 编辑
摘要:⑴ 用户发送请求至前端控制器DispatcherServlet ⑵ DispatcherServlet收到请求调用HandlerMapping处理器映射器。 ⑶ 处理器映射器根据请求url找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。 ⑷ 阅读全文
posted @ 2019-07-10 14:47 Chris,Cai 阅读(83) 评论(0) 推荐(0) 编辑
摘要:1,mybatis 中 $ # 区别 mybatis 动态传参的两种方式 #{ }在动态解析的时候,会将#{ } 解析为一个预编译阶段的一个标记符号?,在预处理阶段才会替换 ${ }在动态解析的时候,会将${ } 直接就会惊醒变量替换 优先使用 #{}。因为 ${} 会导致 sql 注入的问题。 表 阅读全文
posted @ 2019-07-10 13:05 Chris,Cai 阅读(115) 评论(0) 推荐(0) 编辑
摘要:1,mybatis MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生类型、接口和 Java 的 POJO(Plain Old 阅读全文
posted @ 2019-07-09 17:28 Chris,Cai 阅读(478) 评论(0) 推荐(0) 编辑
摘要:import java.io.File; import java.io.FileFilter; import java.io.IOException; import java.net.JarURLConnection; import java.net.URL; import java.net.URLDecoder; import java.util.ArrayList; import java.... 阅读全文
posted @ 2019-07-08 16:00 Chris,Cai 阅读(335) 评论(0) 推荐(0) 编辑
摘要:public class DefClassPathXmlApplicationContext { private String xmlPath; public DefClassPathXmlApplicationContext(String xmlPath) { this.xmlPath = xmlPath; } public Object ... 阅读全文
posted @ 2019-07-08 15:59 Chris,Cai 阅读(328) 评论(0) 推荐(0) 编辑
摘要:1, Spring IOC IOC Inversion of Control 控制反转 DI—Dependency Injection 依赖注入 控制反转和依赖注入实际表示的是同一种思想,由于控制反转概念比较含糊(可能只是理解为容器控制对象这一个层面,很难让人想到谁来维护对象关系),所以2004年大 阅读全文
posted @ 2019-07-06 22:16 Chris,Cai 阅读(125) 评论(0) 推荐(0) 编辑
摘要:Spring事物传播行为 Spring中事务的定义: Propagation(key属性确定代理应该给哪个方法增加事务行为。这样的属性最重要的部份是传播行为。)有以下选项可供使用: PROPAGATION_REQUIRED—如果当前有事务,就用当前事务,如果当前没有事务,就新建一个事务。这是最常见的 阅读全文
posted @ 2019-07-06 21:35 Chris,Cai 阅读(338) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/pickKnow/p/11138118.html 在这一篇博客中,已经通过AOP 思想了事务的功能,通过环绕通知,以及异常通知,实现能够在指定的方法前后调用开启事务,提交事务,回滚事务的功能。 在Spring中,已经通过注解@Transactional 阅读全文
posted @ 2019-07-06 17:40 Chris,Cai 阅读(5162) 评论(0) 推荐(0) 编辑
摘要:使用事务注意事项 1,事务是程序运行如果没有错误,会自动提交事物,如果程序运行发生异常,则会自动回滚。 如果使用了try捕获异常时.一定要在catch里面手动回滚。 事务手动回滚代码 TransactionAspectSupport.currentTransactionStatus().setRol 阅读全文
posted @ 2019-07-05 14:40 Chris,Cai 阅读(466) 评论(0) 推荐(0) 编辑
摘要:利用Spring AOP 封装事务类,自己的在方法前begin 事务,完成后提交事务,有异常回滚事务 比起之前的编程式事务,AOP将事务的开启与提交写在了环绕通知里面,回滚写在异常通知里面,找到指定的方法(切入点),代码如下: 代码在这个基础上重构: https://www.cnblogs.com/ 阅读全文
posted @ 2019-07-05 14:27 Chris,Cai 阅读(1596) 评论(0) 推荐(0) 编辑
摘要:编程式事务:需要手动的开启事务,提交。 声明式事务:Spring 中的事务是利用AOP 编程思想,底层是通过动态代理的方式(cglib动态代理),cglib 底层是通过asm字节码框架,实现动态的事务功能,不许要手动的开启,提交 以下例子是通过编程事务实现手动事务来对比Spirng 中的AOP封装手 阅读全文
posted @ 2019-07-04 22:26 Chris,Cai 阅读(4463) 评论(0) 推荐(1) 编辑
摘要:1,Spring Spring的核心是控制反转(IoC)和面向切面(AOP)。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式)轻量级开源框架。为什么说Spring是一个一站式的轻量级开源框架呢?EE开发可分成三层架构,针对JavaEE的三层结构,每一层Spring都 阅读全文
posted @ 2019-07-04 21:08 Chris,Cai 阅读(181) 评论(0) 推荐(0) 编辑
摘要:1,类加载 每个编写的”.java”拓展名类文件都存储着需要执行的程序逻辑,这些”.java”文件经过Java编译器编译成拓展名为”.class”的文件,”.class”文件中保存着Java代码经转换后的虚拟机指令, 当需要使用某个类时,虚拟机将会加载它的”.class”文件,并创建对应的class 阅读全文
posted @ 2019-07-04 15:35 Chris,Cai 阅读(1173) 评论(0) 推荐(0) 编辑
摘要:Javassist优势 – 比反射开销小,性能高。–javassist性能高于反射,低于ASM运行时操作字节码可以让我们实现如下功能:– 动态生成 新的类– 动态改变某个类的结构 ( 添加 / 删除 / 修改 新的属性 / 方法 )javassist 的最外层的 API 和 JAVA 的反射包中的 阅读全文
posted @ 2019-07-03 20:32 Chris,Cai 阅读(851) 评论(0) 推荐(0) 编辑
摘要:1,Lombok 插件,类里面可以免去写getters,setters方法,加上注解@Getter @Setter 里面就是用字节码技术动态生成属性的getters,setters 方法 1,IDE 安装lombok 插件 2,项目maven 引用包 https://blog.csdn.net/yi 阅读全文
posted @ 2019-07-03 20:13 Chris,Cai 阅读(388) 评论(0) 推荐(0) 编辑
摘要:JMeter LoadRunner 压力测试工具 JConsole 是一个内置 Java 性能分析器,可以查看内存,线程,类,CPU 等的使用情况,可以通过线程去查看线程的试用情况,死锁可以被检测出来 visualVm 来监控 Java 应用程序性能和跟踪 Java 中的代码,和JConsole 差 阅读全文
posted @ 2019-07-03 19:11 Chris,Cai 阅读(127) 评论(0) 推荐(0) 编辑
摘要:1,新建web 测试项目并且发布到Tomcat,访问路径:http://127.0.0.1:8080/JvmWeb/index 2,在Jmeter 中添加项目 Step1: 在Test plan 中 Add 线程组,可以添加线程的数量,以及访问的次数 Step2: 在添加的Thread Group 阅读全文
posted @ 2019-07-03 14:20 Chris,Cai 阅读(126) 评论(0) 推荐(0) 编辑
摘要:https://www.cnblogs.com/hongmoshui/p/7994759.html 阅读全文
posted @ 2019-07-03 11:43 Chris,Cai 阅读(90) 评论(0) 推荐(0) 编辑
摘要:串行与并行收集器串行回收: JDK1.5前的默认算法 缺点是只有一个线程,执行垃圾回收时程序停止的时间比较长并行回收: 多个线程执行垃圾回收适合于吞吐量的系统,回收时系统会停止运行 垃圾收集器 1,serial 收集器 串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线 阅读全文
posted @ 2019-07-02 21:17 Chris,Cai 阅读(150) 评论(0) 推荐(0) 编辑
摘要:1,Java堆溢出 错误原因: java.lang.OutOfMemoryError: Java heap space 堆内存溢出 模拟:-Xms1m -Xmx10m -XX:+PrintGCDetails -XX:+HeapDumpOnOutOfMemoryError 设置堆初始内存1M 最大内存 阅读全文
posted @ 2019-07-02 20:38 Chris,Cai 阅读(156) 评论(0) 推荐(0) 编辑
摘要:-XX:+PrintGC 每次触发GC的时候打印相关日志 -XX:+PrintGCDetails 每次触发GC的时候更详细的相关日志 -XX:+UseSerialGC 串行回收 -Xms 堆初始值(要设置成和-Xmx一样大,否则会频繁的GC) -Xmx 堆最大可用值 -Xmn 新生代堆最大可用值 - 阅读全文
posted @ 2019-07-02 15:32 Chris,Cai 阅读(653) 评论(0) 推荐(0) 编辑
摘要:标记清除算法: 1,标记阶段:找到所有可以访问的对象,做个标记 2,清除阶段:遍历堆,找到未做标记的对象,进行清除 标记和清除的效率不高,尤其是要扫描的对象比较多的时候 ,(一般用于老年代,因为老年代回收的频率不高)缺点: 会造成内存碎片(会导致明明有内存空间,但是由于不连续,申请稍微大一些的对象无 阅读全文
posted @ 2019-07-01 22:05 Chris,Cai 阅读(1271) 评论(0) 推荐(0) 编辑
摘要:垃圾回收机制: 不定时去堆内存中清理不可达对象。不可达的对象并不会马上就会直接回收, 垃圾收集器在一个Java程序中的执行是自动的,不能强制执行,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。程序员唯一能做的就是通过调用System.gc 方法来 阅读全文
posted @ 2019-07-01 21:23 Chris,Cai 阅读(558) 评论(0) 推荐(0) 编辑
摘要:Java 堆(Java Heap): 概念:Java 堆 是Java 虚拟机管理的内存中最大的一块。是被所有线程共享的一块内存区域。在Java 虚拟机启动时候创建。 作用:所有实例对象,数组都要在堆上分配。 别名:GC 堆(garbage collected heap),因为堆是垃圾回收器管理的主要 阅读全文
posted @ 2019-07-01 20:34 Chris,Cai 阅读(444) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示