- 博客(42)
- 资源 (4)
- 收藏
- 关注
原创 性能测试笔记
概念:在服务器稳定运行(用户正常的业务负载下)的情况下进行长时间测试(1天-1周等),并最终保证服务器能满足线上业务需求。说明:性能测试分析人员经过对结果的分析后,如果不符合性能需求,则会提出性能bug,然后有开发人员进行后续的调优。资源使用率:是指系统各种资源的使用情况,一般用“资源的使用量/总的资源可用量*100%”形成资源利用率的数据。概念:并发测试(绝对并发):是指在极端的时间内,发送大量请求,来验证服务器对并发的处理能力。元件的作用域:是考测试计划的属性结构中元件的父子关系来确定的。
2023-10-07 22:55:18
273
原创 知识随笔(更新中-2020-1-6)
1.确保循环不是无限的必要条件是什么 ?你的布尔语句在某些时候会是假的在代码中的某处有一个布尔语句你的布尔语句在某些时候是真的2.Integer不是 Java 关键字3.Java main 方法的正确语法public static void main(String[] args) { }4.Java关键字是区分大小写的5.空引用可用于访问静态变量或...
2020-01-06 17:27:45
453
原创 Maven 、oracle的jdbc的jar包下载失败
由于Oracle授权问题,Maven3不提供Oracle JDBC driver,为了在Maven项目中应用Oracle JDBC driver,必须手动添加到本地仓库。本文以oralce11.2.0和jdk1.8为例:一. 要知道自己的oracle版本方法1 :使用sqlplus -v命令可以查到该客户端安装的 11.2.0.1.0的客户端版本。方法2:查看系统变量二. 下载Ora...
2020-01-06 16:12:45
359
原创 Spring的单例Bean与线程安全问题
Spring框架里的bean,或者说组件,获取实例的时候都是默认的单例模式线程安全问题都是由成员变量及静态变量引起的。若每个线程中对全局变量、静态变量只有读操作,而无写操作,一般来说,这个全局变量是线程安全的;若有多个线程同时执行写操作,一般都需要考虑线程同步,否则就可能影响线程安全。当多个线程调用方法时会不会出现线程安全问题呢?答案是不会,方法存在虚拟机栈中,是线程私有的。成员变量...
2019-10-22 17:46:16
1420
转载 spring boot打jar包和打war包的区别作用
spring boot既可以打成war发布,也可以找成jar包发布。说一下区别jar包: 直接通过内置tomcat运行,不需要额外安装tomcat。如需修改内置tomcat的配置,只需要在spring boot的配置文件中配置。内置tomcat没有自己的日志输出,全靠jar包应用输出日志。但是比较方便,快速,比较简单。war包: 传统的应用交付方式,需要安装tomcat,然后放到waeapps...
2019-10-22 11:18:13
144
原创 Java 中的 ==, equals 与 hashCode 的区别与联系
一. 关系操作符 ==:若操作数的类型是基本数据类型,则该关系操作符判断的是左右两边操作数的值是否相等若操作数的类型是引用数据类型,则该关系操作符判断的是左右两边操作数的内存地址是否相同。也就是说,若此时返回true,则该操作符作用的一定是同一个对象。二. equals 方法:Java中所有的类都是继承与Object这个基类的,在Object类中定义了一个equals方法,这个方法的初...
2019-10-15 11:24:37
282
转载 Java单例模式——并非看起来那么简单
Java中单例(Singleton)模式是一种广泛使用的设计模式。单例模式的主要作用是保证在Java程序中,某个类只有一个实例存在。一些管理器和控制器常被设计成单例模式。单例模式有很多好处,它能够避免实例对象的重复创建,不仅可以减少每次创建对象的时间开销,还可以节约内存空间;能够避免由于操作多个实例导致的逻辑错误。如果一个对象有可能贯穿整个应用程序,而且起到了全局统一管理控制的作用,那么单例模式...
2019-09-28 20:18:20
110
原创 Redis支持的5种数据类型
Redis目前支持5种数据类型,分别是:String(字符串)List(列表)Hash(字典)Set(集合)Sorted Set(有序集合)推荐博客Redis常用数据类型介绍、使用场景及其操作命令...
2019-09-28 17:47:12
195
原创 Spring事务、AOP、IOC、DI、编程式事务、声明式事务(注解、xml)
一. spring是如何管理事务的Spring提供的事务管理可以分为两类:编程式;比较灵活,但是代码量大,存在重复的代码比较多声明式;声明式的比编程式的更灵活方便。1. 编程式事务通过 Spring 提供的事务管理 API,我们可以在代码中灵活控制事务的执行2. 声明式事务声明式事务的两种实现方式XML文件中配置(<tx>命名空间)添加注解(@Transacti...
2019-09-28 16:53:44
350
原创 HashMap底层实现
1. HashMap概述HashMap基于哈希表的 Map 接口的实现。此实现提供所有可选的映射操作,并允许使用 null 值和 null 键。(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同。)此类不保证映射的顺序,特别是它不保证该顺序恒久不变。值得注意的是HashMap不是线程安全的,如果想要线程安全的HashMap,可以通过Collections...
2019-09-25 21:20:57
146
原创 JVM 垃圾收集与 GC 算法
一. 垃圾收集基础Java语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源(尤其是内存资源)的释放情况。自动垃圾收集虽然大大减轻了开发人员的工作量,但同时,它也增加了软件系统的负担。一个不合适的垃圾回收方法和策略会对系统性能造成不良影响。1. 垃圾收集的作用在C++语言中,程序员必须小心谨慎地处理每一项内存分配,且内存使用完后,必须手工释放曾经占用的内存空间,当内存...
2019-09-24 21:24:17
214
1
原创 JVM内存模型
一. 运行时数据区域Java虚拟机(Java Virtual Machine,简称JVM)在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则是依赖用户线程的启动和结束而建立和销毁。1. 程序计数器(Program Counter Register)程序计数器(Program ...
2019-09-24 16:48:38
220
原创 进程与线程区别、多线程、run()与start()的区别、wait()和sleep()的区别、
线程与进程的区别:1.线程(Thread)与进程(Process)进程定义的是应用程序与应用程序之间的边界,通常来说一个进程就代表一个与之对应的应用程序。不同的进程之间不能共享代码和数据空间,而同一进程的不同线程可以共享代码和数据空间。进程是资源分配的最小单位,线程是CPU调度的最小单位。2.一个进程可以包括若干个线程,同时创建多个线程来完成某项任务,便是多线程。多进程的应用比如...
2019-09-24 10:37:41
212
原创 Java多线程实现的四种方式、线程的生命周期
一. 多线程多线程出现的原因:为了解决负载均衡问题,充分利用CPU资源.为了提高CPU的使用率,采用多线程的方式去同时完成几件事情而不互相干扰.为了处理大量的IO操作时或处理的情况需要花费大量的时间等等,比如:读写文件,视频图像的采集,处理,显示,保存等多线程的好处:使用线程可以把占据时间长的程序中的任务放到后台去处理用户界面更加吸引人,这样比如用户点击了一个按钮去触发某件事件的...
2019-09-23 21:22:44
413
1
原创 数据库事务的四大特性、隔离级别、Spring中七种事务传播行为
1. 什么是事务事务是应用程序中一系列逻辑相关的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性:一个事务中的一系列的操作要么全部成功,要么一个都不做。事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消之前的所有操作。数据库事务的生命周期如下图:可以看出事务的边界包括:事务的开始边界事务...
2019-09-23 19:43:14
951
1
转载 Nginx+Redis+Ehcache:大型高并发与高可用的三层缓存架构总结
nginx对于中间件nginx常用来做流量的分发,同时nginx本身也有自己的缓存(容量有限),我们可以用来缓存热点数据,让用户的请求直接走缓存并返回,减少流向服务器的流量一.模板引擎通常我们可以配合使用freemaker/velocity等模板引擎来抗住大量的请求小型系统可能直接在服务器端渲染出所有的页面并放入缓存,之后的相同页面请求就可以直接返回,不用去查询数据源或者做数据逻辑处理...
2019-09-23 15:24:43
151
原创 redis cluster 的 hash slot 算法
1. redis cluster 介绍自动将数据进行分片,每个 master 上放一部分数据提供内置的高可用支持,部分 master 不可用时,还是可以继续工作的在 redis cluster 架构下,每个 redis 要放开两个端口号,比如一个是 6379,另外一个就是 加1w 的端口号,比如 16379。16379 端口号是用来进行节点间通信的,也就是 cluster bus 的东西,...
2019-09-20 16:12:19
757
原创 Redis哨兵架构基础知识、数据丢失问题、底层核心原理
一、Redis哨兵架构的相关基础知识1. 哨兵的介绍sentinel,中文名是哨兵哨兵是redis集群架构中非常重要的一个组件,主要功能如下集群监控,负责监控redis master和slave进程是否正常工作消息通知,如果某个redis实例有故障,那么哨兵负责发送消息作为报警通知给管理员故障转移,如果master node挂掉了,会自动转移到slave node上配置中心,如果故...
2019-09-20 15:34:54
366
原创 Redis主从架构、主从复制
1. Redis主从复制原理1.1 主从架构redis主从架构 -> 读写分离架构 -> 可支持水平扩展的读高并发架构架构做成主从架构,一主多从,主负责写,从负责读。数据同步时,将master的数据同步复制到其他slave节点。水平扩容,就是说,当QPS在增加,只要增加redis slave节点即可1.2 主从架构的核心原理当启动一个slave node的时候,它会发送一...
2019-09-18 17:15:50
773
转载 一致性Hash算法
推荐知乎一篇文章,是菜鸟网络科技有限公司的研发工程师写的,文章名字如下面试必备:什么是一致性Hash算法?https://zhuanlan.zhihu.com/p/34985026看了这篇文章就了解了什么是一致性Hash算法如果你不玩知乎,csdn上也有一篇完全一样的博客面试必备:什么是一致性Hash算法?https://blog.csdn.net/bntX2jSQfEHy7/art...
2019-09-18 15:42:42
280
1
原创 多态的实现原理和具体体现
多态的实现原理https://blog.csdn.net/SEU_Calvin/article/details/52191321
2019-09-17 21:39:06
198
原创 浅谈Redis的持久化------RDB和AOF
Redis的常用功能Redis的强大功能很大程度上是由于其将所有数据都存储在内存中,也就是做缓存,缓存的目标主要是那些需要经常访问的数据,或计算复杂而耗时的数据。缓存的效果就是减少了数据库读的次数,减少了复杂数据的计算次数,从而提高了服务器的性能。1.redis持久化的两种方式为了使Redis在重启后仍能保证数据不丢失,需要将数据从内存中以某种形式持久化到硬盘中。Redis支持两种方式的持...
2019-09-17 16:24:56
601
转载 从分布式一致性谈到CAP理论、BASE理论
问题的提出在计算机科学领域,分布式一致性是一个相当重要且被广泛探索与论证问题,首先来看三种业务场景。1、火车站售票假如说我们的终端用户是一位经常坐火车的旅行家,通常他是去车站的售票处购买车 票,然后拿着车票去检票口,再坐上火车,开始一段美好的旅行----一切似乎都是那么和谐。想象一下,如果他选择的目的地是杭州,而某一趟开往杭州的火车 只剩下最后一张车票,可能在同一时刻,不同售票窗口的另一位乘...
2019-09-16 16:44:05
92
2
原创 浅谈session和cookie
sessionsession是存储在服务器端,我们获取session里的信息是通过存放在会话cookie里的session_id获取的。又由于session是存放在服务器的内存中,所以session里的东西会不断的增加,进而造成服务器的负担,所以会把很重要的信息存储在session中,而把一些次要东西存储在客户端的cookie里cookiecookie是存储在客户端的,然后cookie确切的...
2019-09-14 17:57:51
164
2
原创 ArrayList、LinkedList、Vector的区别
List接口实现类有ArrayList,LinkedList,Vector,List是一个有序的可重复的集合ArrayList、Vector和LinkedList类均在java.util包下,均为可伸缩数组,即可以动态改变长度的数组...
2019-09-13 21:32:49
127
1
原创 SpringBoot实战(2)
用SpringBoot来整合SSM,我们使用之前SSM用到的数据库user和实体类User1创建maven工程2编写基本代码pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://w...
2019-09-11 21:01:35
158
1
原创 浅谈swagger
在了解swagger之前需要知道什么是OpenAPIOpenAPIOpenAPI规范(OpenAPI Specification 简称OAS)是Linux基金会的一个项目,试图通过定义一种用来描述API格式或API定义的语言,来规范RESTful服务开发过程。目前V3.0版本的OpenAPI规范已经发布并开源在github上 。官网:https://github.com/OAI/OpenAPI...
2019-09-11 19:22:28
309
2
原创 web本地存储
Web StorageWeb Storage是HTML5里面引入的一个类似于cookie的本地存储功能,可以用于客户端的本地存储,其相对于cookie来说有以下几点优势:存储空间大:cookie只有4KB的存储空间,而Web Storage在官方建议中为每个网站5M。可选择性强WebStorage分为两种:sessionStorage:sessionStorage 方法针对一个 s...
2019-09-10 20:57:01
187
2
原创 SpringBoot学习(1)
1.了解SpringBootSpringBoot是Spring项目中的一个子工程,与我们所熟知的Spring-framework 同属于spring的产品。为什么要学习SpringBootjava一直被人诟病的一点就是臃肿、麻烦,主要原因主要是两点:复杂的配置混乱的依赖管理而SpringBoot可以很好的解决上述问题,为所有 Spring 的开发者提供一个开箱即用的、非常快速的、广...
2019-09-07 20:34:00
129
1
原创 HashMap、HashTable、LinkedHashMap和TreeMap用法和区别
Java为数据结构中的映射定义了一个接口java.util.Map,它有四个实现类,分别是HashMap、HashTable、LinkedHashMap和TreeMap。本节实例主要介绍这4中实例的用法和区别关键技术剖析:Map用于存储键值对,根据键得到值,因此不允许键重复,值可以重复。(1)HashMap是一个最常用的Map,它根据键的hashCode值存储数据,根据键可以直接获取它的值,...
2019-09-02 21:29:02
119
1
原创 SpringBoot使用Mybatis-PageHelper,和PageResult
public PageResult<SpuBo> querySpuBoByPage(String key, Boolean saleable, Integer page, Integer rows) { Example example = new Example(Spu.class); Example.Criteria criteria = examp...
2019-08-30 20:58:57
1740
1
原创 MyBatis通用Mapper使用
实体类的写法记住一个原则:实体类的字段数量 >= 数据库表中需要操作的字段数量。默认情况下,实体类中的所有字段都会作为表中的字段来操作,如果有额外的字段,必须加上@Transient注解。@Table(name = "tb_spec_group")public class SpecGroup { @Id @GeneratedValue(strategy = Gener...
2019-08-29 20:59:11
792
原创 @PathVariable和@RequestParam的不同用法
@RequestParam注解是获取静态URL传入的参数@PathVariable是获取请求路径中的变量作为参数 @GetMapping("update") public void updateCategory(@RequestParam("id") Long id, @RequestParam("name") String name){ this.category...
2019-08-28 20:54:05
108
原创 ngnix在win10 中启动不了
1.没有用管理员启动2.解压路径含有中文路径3.win10 的80端口被占用,更改nginx.conf改成其他端口号4.如果你安装了TortoiseSVN的服务端(客户端没问题),打开任务管理器,把关于SVN的进程结束...
2019-08-26 18:34:08
379
原创 抽象类和接口
什么是抽象类和接口抽象方法 即使用 abstract 关键字修饰,仅有声明没有方法体的方法。public abstract void f(); //没有内容抽象类 即包含抽象方法的类。如果一个类包含一个或者多个抽象方法,该类必须被限定为抽象的。抽象类可以不包含抽象方法。public abstract class BaseActivity { private final S...
2019-07-27 15:17:01
96
原创 jsp页面数据回显(checkbox)
jsp页面数据回显(checkbox+c标签)已经传递过来了2个列表集合 List<TbCourse> courseList 和 List<TbClazz> clazzList以及student信息TbStudent tbStudent下面是TbCourse的属性private Integer bid;private String bname;TbClazz的属...
2019-07-16 22:57:50
2905
原创 jsp页面数据回显(select下拉选择框)
jsp页面数据回显(select下拉选择框+c标签)已经传递过来了2个列表集合 List<TbCourse> courseList 和List<TbClazz> clazzList以及student信息TbStudent tbStudent下面是TbCourse的属性private Integer bid;private String bname;TbClazz...
2019-07-16 22:52:00
3752
原创 response的页面跳转与request的页面跳转的区别
response页面跳转与request的页面跳转的区别response:response是服务器对客户端的反馈,其对页面页面跳转的流程是:当客户端向服务器发起请求时,服务器重新给客户端一个URL地址,让客户端重新发起一个新的请求,在这个过程中,客户端第一次请求所携带的头信息将消失,在重定向之后而且地址栏显示的是重定向的页面,这是一种客户端行为。request:request是客户端对服务...
2019-07-16 22:08:30
944
1
原创 模拟斗地主,完成洗牌发牌操作
Iterator迭代器Iterator接口在程序开发中,经常需要遍历集合中的所有元素。针对这种需求,JDK专门提供了一个接口java.util.Iterator。Iterator接口也是Java集合中的一员,但它与Collection、Map接口有所不同,Collection接口与Map接口主要用于存储元素,而Iterator主要用于迭代访问(即遍历)Collection中的元素,因此Iter...
2019-05-04 21:14:30
380
原创 猜数字游戏(Random、Scanner)、统计字符个数(String)
猜数字游戏Random类此类的实例用于生成伪随机数,例如,一下代码使用户能得到一个随机数 //创建Random对象 Random random = new Random(); //生成一个0-100的数 int a=random.nextInt(100)+1;类java.util.Random:该类需要import导入后,才能使用...
2019-05-04 20:44:27
387
VC 基于Word文档英文字体颜色的数字水印.zip
2019-07-27
酒店订餐系统.zip
2019-07-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人