自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (1)
  • 收藏
  • 关注

原创 可重入锁实例(ReentrantLock)-商品订购

```java@RequestMapping("/test")@RestControllerpublic class TestController { Goods goods = new Goods(); /** * 下单 * @return */ @RequestMapping("/placeOrder") public ResponseEntity test(){ return goods.placeOrder(.

2021-07-13 18:06:02 346

原创 MAC搭建Zookeeper环境

一.使用Zookeeper的好处简单的分布式协调过程同步 — 服务器进程之间的相互排斥和协作。有助于Apache HBase进行配置管理有序的消息序列化 — 根据特定规则对数据进行编码。 确保应用程序运行一致。可靠性原子性 — 数据转移 要么全部成功 要么全部失败二.zoo.cfgtickTime = 2000 — tickTime的意义:客户端与服务器...

2019-07-25 16:58:16 688

原创 WebSocket实现实时通讯

WebSocket是HTML5以后基于TCP协议应用层的一种全双工实时通讯协议。注:全双工:个人了解服务器和客户端可以进行信息的相互传递WebSocket由何而来 在没有WebSocket的时候,我们都是基于HTTP协议进行的一种实时通信。而HTTP协议并没有状态,而服务器只会响应来自客户端请求,而他并不具备持续连接. 所以我们...

2018-12-12 11:09:00 453

转载 单例模式

定义:        单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。 特点:       1、单例类只能有一个实例。  2、单例类必须自己自己创建自己的唯一实例。  3、单例类必须给所有其他对象提供这一实例 单例模式的要点:    1,私有的构造方法 ...

2018-09-24 23:59:23 184

原创 java设计模式

一、工厂模式(Factory)二、建造模式(Builder)三、原始模型模式(Prototype)四、单例模式(Singleton)五、适配器(Adapter)六、桥梁模式(Bridge)七、合成模式(Composite)八、装饰模式(Decorator)九、门面模式(Facade)十、享元模式(Flyweight)十一、代理模式(Proxy)十二、职责...

2018-09-21 23:43:07 151

原创 CAS机制是什么?有什么缺点,会出现什么问题

CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。CAS的缺点:1.CPU开销较大在并发量比较高的情况下,如果许多线程反复尝试更新某一个变量,却又一直更新不成功,循环往复,会给CPU带来很大的压力。2.不能保证代码块的原子性CAS机制所保证的只是一个变量的原子性操作,...

2018-09-20 22:57:48 5360

原创 Nginx 知识总结(十七)

Nginx是一个自由、开源、高性能及轻量级的HTTP服务器及反转代理服务器, 其性能与IMAP/POP3代理服务器相当。Nginx以其高性能、稳定、功能丰富、配置简单及占用系统资源少而著称。 Nginx 超越 Apache 的高性能和稳定性,使得国内使用 Nginx 作为 Web 服务器的网站也越来越多.   *基础功能 处理静态文件,索引文件以及自动索引;...

2018-09-19 23:49:23 157

转载 springboot 知识总结(十六)

什么是spring bootSpring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。用我的话来理解,就是spring boot其实不是什么新的框架,它默认配置了很多框架的使用方式,就像maven整合了所有的jar包,spring boot整合了所有的框架(...

2018-09-19 00:12:01 179

原创 二叉树 知识总结(十五)

二叉树的定义二叉树是每个结点最多有两个子树的树结构。它有五种基本形态:二叉树可以是空集;根可以有空的左子树或右子树;或者左、右子树皆为空。2、二叉树的性质性质1:二叉树第i层上的结点数目最多为2i-1(i>=1)性质2:深度为k的二叉树至多有2k-1个结点(k>=1)性质3:包含n个结点的二叉树的高度至少为(log2n)+1性质4:在任意一棵二叉树中,若终端结点...

2018-09-17 23:09:10 206

原创 了解分布式 知识总结(十四)

随着大型网站的各种高并发访问、海量数据处理等场景越来越多,如何实现网站的高可用、易伸缩、可扩展、安全等目标就显得越来越重要。为了解决这样一系列问题,大型网站的架构也在不断发展。提高大型网站的高可用架构,不得不提的就是分布式。本文主要简单介绍了分布式系统的概念、分布式系统的特点、常用的分布式方案以及分布式和集群的区别等。 一、集中式系统 在学习分布式之前,先了解一下与之相对应的集中式...

2018-09-16 23:36:11 159

原创 Volatile和Synchronized四个不同点 知识总结(十三)

 1 粒度不同,前者针对变量 ,后者锁对象和类2 syn阻塞,volatile线程不阻塞3 syn保证三大特性,volatile不保证原子性4 syn编译器优化,volatile不优化 volatile具备两种特性: 1.保证此变量对所有线程的可见性,指一条线程修改了这个变量的值,新值对于其他线程来说是可见的,但并不是多线程安全的。2.禁止指令重排序优化。...

2018-09-15 23:17:54 492

翻译 Hadoop 知识总结(十二)

Hadoop是一个能够对大量数据进行分布式处理的软件框架。 Hadoop 以一种可靠、高效、可伸缩的方式进行数据处理。 Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。 Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。 Hadoop 还是可伸缩的,能够处理PB级数据。 ...

2018-09-14 23:49:51 183

翻译 什么是大数据? 知识总结(十一)

什么是大数据  大数据是指无法在一定时间内用常规软件工具对其内容进行抓取、管理和处理的数据集合。大数据技术,是指从各种各样类型的数据中,快速获得有价值信息的能力。适用于大数据的技术,包括大规模并行处理(MPP)数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统。大数据的特点  具体来说,大数据具有4个基本特征:   一是数据体量巨大。百度...

2018-09-13 22:59:01 1448

原创 行级锁和表级锁 知识总结(十)

锁包括行级锁和表级锁 行级锁是一种排他锁,防止其他事务修改此行;在使用以下语句时,Oracle会自动应用行级锁:INSERT、UPDATE、DELETE、SELECT … FOR UPDATE [OF columns] [WAIT n | NOWAIT];SELECT … FOR UPDATE语句允许用户一次锁定多条记录进行更新使用COMMIT或ROLLBACK语句释放锁 ...

2018-09-12 22:48:28 5064

翻译 注解的意义 知识总结(九)

java 注解,从名字上看是注释,解释。但功能却不仅仅是注释那么简单。注解(Annotation) 为我们在代码中添加信息提供了一种形式化的方法,是我们可以在稍后 某个时刻方便地使用这些数据(通过 解析注解 来使用这些数据),常见的作用有以下几种: 生成文档。这是最常见的,也是java 最早提供的注解。常用的有@see @param @return 等跟踪代码依赖性,实现替代配置文件功...

2018-09-11 21:59:20 220

原创 mybatis 使用场景及优缺点 知识总结(八)

1. Mybatis和hibernate不同,它不完全是一个ORM框架,因为MyBatis需要程序员自己编写Sql语句,不过mybatis可以通过XML或注解方式灵活配置要运行的sql语句,并将java对象和sql语句映射生成最终执行的SQL,最后将SQL执行的结果再映射生成的Java对象。 2. Mybatis学习门槛低,简单易学,程序员直接编写原生态sql,可严格控制sql执行性能,灵...

2018-09-10 22:35:34 334

原创 多线程死锁解决 知识总结(七)

我们可以使用synchronized 关键字来保证代码块的原子性。synchronized 能够使线程在执行到该代码块时,自动获取此内部锁,而一旦离开该代码块,无论是完成或者中断都会自动释放锁。显然这是一个独占锁,每个锁请求之间是互斥的。相对于众多高级锁 (Lock/ReadWriteLock 等),synchronized 的代价都比后者要高,但是 synchronzied 的语法比较简单,而且...

2018-09-09 21:50:32 133

原创 初识dubbo分布式框架 知识总结(六)

Dubbo是什么?       Dubbo是一个分布式服务框架(RPC),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.核心部分包含:     1. 远程通讯: 提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。     2. 集群容错: 提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负...

2018-09-08 20:01:20 149

原创 HashMap何时扩容,扩容的算法是什么? 知识总结(五)

 HashMap何时扩容: 当向容器添加元素的时候,会判断当前容器的元素个数,如果大于等于阈值---即当前数组的长度乘以加载因子的值的时候,就要自动扩容 扩容的算法是什么: 扩容就是重新计算容量,向HashMap对象里不停的添加元素,而HashMap对象内部的数组无法装载更多的元素时,对象就需要扩大数组的长度,以便能装入更多的元素。当然Java里的数组是无法自动扩容的,...

2018-09-07 22:25:14 5142 1

原创 Java回收器中的停止-复制以及标记-清理 知识总结(四)

  1.停止-复制?         停止-复制:首先我们将程序停止,重新分配一个新的内存空间去存储活的对象。分配之后,是所在内存地址空间有序的,然后把以前使用过的地址空间清除.在垃圾并不是非常多的时候,我们是感受不到那种间隙的。           图解:回收之后是有序的.                          缺点:有点点浪费内存空间,如果对象存活率较高时要执行较多...

2018-09-06 20:34:05 387

原创 Java垃圾回收器如何工作 知识总结(三)

    Java中,在堆的资源分配是比较高昂的。而垃圾回收期可以提高对象的创建速度。    假如某些对象在执行完某个操作的时候,不用了,随着程序的运行,这些废对象所占资源就比较的大。    为了解决这些问题,可以用:   一:堆指针         只是简单的移动到未分配的空间。不过这种方式在Java虚拟机中并没有很广用,因为如果多次移进移出。会严重的影响调度的效率  二:引用...

2018-09-05 20:34:01 139

原创 多线程的六种实现方式:知识总结(二)

实现多线程的主要有两种方式:一种是继承Thread类,另一种是实现Runnable接口.两种方式都很相似。第一去实现这个线程任务(线程类{ void run(){方法体}}),然后去执行这个线程任务(线程类.start())一.继承Thread类       步骤:              1.创建类并继承Thread类              2.重写run方法     ...

2018-09-04 19:47:49 208

原创 乐观锁和悲观锁 :知识总结(一)

   乐观锁:           相对比较乐观,进行更新的时候,并不会刻意的上锁,只会对该字段进行一个判断,判断是否修改过。可能会导致更新失败        使用场合:                    秒杀、比较适合读取操作比较频繁的场景         案例:                 实现乐观锁的两种方式:利用版本号或者时间戳UPDATE TABLE...

2018-09-03 09:47:28 336 1

原创 Spring给程序员带来的好处

Spring是一个开源框架,它由Rod Johnson创建。它是为了解决企业应用开发的复杂性而创建的。   Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。  然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。   目的:解决企业应用开发的复杂性   功能:使用基本的JavaBean...

2018-08-30 14:58:07 1293 1

原创 Oracle 11g 安装步骤(桌面版)

1.准备文件将以下两个文件下载下来,并解压到同一目录(或者将文件1的文件复制到文件2的文件中),并且同一文件夹并且同一目录中不要以中文命名http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.ziphttp://download.oracle.com/otn/nt/oracle11g/...

2018-07-31 08:54:05 3397 2

原创 Tomcat工作原理

Tomcat是Servlet运行环境(容器),每一个Servlet执行init(),service(),destory().下面我们来分析一下Tomcat Server处理一个http请求过程来解释Tomcat原理假设 :    来自客户的请求为:http://localhost:8080/student/index.jsp    1.请求被发送到本机端口8080,被在哪里侦听的Coyote Ht...

2018-07-11 17:45:11 104

原创 int和Integer的区别

            Java是一个近乎纯洁的面向对象编程语言,但是为了编程的方便还是引入了基本数据类型,但是为了能够将这些基本数据类型当成对象操作,Java为每 一个基本数据类型都引入了对应的包装类型(wrapper class),int的包装类就是Integer,从Java 5开始引入了自动装箱/拆箱机制,使得二者可以相互转换。           我们知道Java有8种基本数据类型:byt...

2018-07-10 08:48:11 932 1

原创 SpringMVC文件上传配置——单文件上传

1.导入相关jar包    这里我们用的是:commons-io-2.4.jar、commons-fileupload-1.2.2.jar、commons-lang-2.6.jar2.首先配置springmvc-servlet.xml(共同点):无论多文件还是单文件都要配置      <bean id="multipartResolver" class="org.springframewo...

2018-07-09 18:19:57 226 4

zookeeper配置文件zoo.cfg以及详细描述

适用于zookeeper初学者,里面文件拥有一些详细的解释 以及用法

2019-07-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

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