- 博客(15)
- 资源 (4)
- 问答 (2)
- 收藏
- 关注
转载 redis分布式锁加解锁
Redis分布式锁的正确实现方式前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然网上已经有各种介绍Redis分布式锁实现的博客,然而他们的实现却有着各种各样的问题,为了避免误人子弟,本篇博客将详细介绍如何正确地实现Redis分布式锁。可靠性首先,为了确保分布式锁可用,我们至少要确保锁的实现同时满足以下四个条件:互斥性。在任意时刻,只有一个客户端能持有锁。
2020-07-06 15:16:56 262
转载 悲观锁和乐观锁
一、并发控制当程序中可能出现并发的情况时,就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。常说的并发控制,一般都和数据库管理系统(DBMS)有关。在DBMS中的并发控制的任务,是确保在多个事务同时存取数据库中同一数据时,不破坏事务的隔离性和.
2020-07-06 15:07:57 82
原创 JVM垃圾回收机制
GC中文直译垃圾回收,是一种回收内存空间避免内存泄漏的机制。当JVM内存紧张,通过执行GC有效回收内存,转而分配给新对象从而实现内存的再利用。JVM的GC机制虽然无需开发主动参与,减轻不少工作量,但是某些情况下,自动GC将会导致系统性能下降,响应变慢,所以这就需要我们提前了解掌握GC机制。1.什么是垃圾?首先要搞清楚,什么是垃圾,只有垃圾才会被GC回收。所以是不是垃圾...
2019-12-18 14:44:28 109
转载 跨域问题的原因及解决方案
本文转载自:https://segmentfault.com/a/1190000015597029要掌握跨域,首先要知道为什么会有跨域这个问题出现确实,我们这种搬砖工人就是为了混口饭吃嘛,好好的调个接口告诉我跨域了,这种阻碍我们轻松搬砖的事情真恶心!为什么会跨域?是谁在搞事情?为了找到这个问题的始作俑者,请点击浏览器的同源策略。这么官方的东西真难懂,没关系,至少你知道了,因为浏览器的同源...
2019-03-22 17:16:08 325
转载 跨域资源共享CORS详解
本文转载自http://www.ruanyifeng.com/blog/2016/04/cors.htmlCORS是一个W3C标准,全称是"跨域资源共享"(Cross-origin resource sharing)。它允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。本文详细介绍CORS的内部机制。一、简介CORS需要浏览器和...
2019-03-22 17:12:18 60
转载 Git 中文详细安装教程
原文作者:谢宗南原文地址:https://creativecommons.org/licenses/by-nc-nd/4.0/deed.zhGit 中文安装教程Step 1 Information信息Please read the following important information before continuing继续之前,请阅读以下重要信息Step ...
2018-08-15 10:13:42 626
转载 Http和Socket连接区别
1、TCP连接 要想明白Socket连接,先要明白TCP连接。手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”:第一次握手:客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;第...
2018-08-14 14:08:16 96
转载 最完整的数字证书原理
文中首先解释了加密解密的一些基础知识和概念,然后通过一个加密通信过程的例子说明了加密算法的作用,以及数字证书的出现所起的作用。接着对数字证书做一个详细的解释,并讨论一下windows中数字证书的管理,最后演示使用makecert生成数字证书。如果发现文中有错误的地方,或者有什么地方说得不够清楚,欢迎指出! 1、基础知识 这部分内容主要解释一些概念和术语,最好是先理解这部分内容...
2018-08-07 16:35:53 274
转载 7.关于Collection框架的学习笔记
Collection框架集合框架(Collection Framework)泛指java.util包的若干个类和接口.如Collection,List,ArrayList,LinkedList,Vector(自动增长数组),HashSet,HashMap等.集合框架中的类主要封装的是典型的数据结构,如动态数组,链表,堆栈,集合,哈希表等.集合框架类似编程中经常用到的工具类,使得编码这专注于业务层...
2018-03-08 10:41:58 102
转载 6.abstract class和interface有什么区别?
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为...
2018-03-07 15:50:52 193
转载 5.面向对象的特征有哪些方面 ?
面向对象的编程语言有封装、继承 、抽象、多态等4个主要的特征。1封装: 封装是保证软件部件具有优良的模块性的基础,封装的目标就是要实现软件部件的“高内聚、低耦合”,防止程序相互依赖性而带来的变动影响。在面向对象的编程语言中,对象是封装的最基本单位,面向对象的封装比传统语言的封装更为清晰、更为有力。面向对象的封装就是把描述一个对象的属性和行为的代码封装在一个“模块”中,也就是一个类中,属性用变量定义...
2018-03-07 15:39:57 385
转载 4.构造器Constructor是否可被override?
构造器Constructor不能被继承,因此不能重写Override,但可以被重载Overload。Constructor不能被继承,所以Constructor也就不能被override。每一个类必须有自己的构造函数,负责构造自己这部分的构造。子类不会覆盖父类的构造函数,相反必须负责在一开始调用父类的构造函数。一、构造器是干什么用的?(what) 构造器是用来生成一个类的实例是用来初始化这...
2018-03-07 15:09:13 570
转载 3.判断下面代码是否有问题
1. if(username.equals(“zxx”){}2. int x = 1; return x==1?true:false;1.一个变量直接调用equals方法会给程序带来安全隐患,直接调用equals方法可能会抛出NullPointerException异常。为了防止程序抛出异常在调用equals方法之前要先判断一下是否为空。if( username!=n...
2018-03-07 14:53:15 272
转载 2.Integer的int 的种种比较?详细分析
如果面试官问Integer与int的区别:估计大多数人只会说道两点,Ingeter是int的包装类,int的初值为0,Ingeter的初值为null。但是如果面试官再问一下Integer i = 1;int ii = 1; i==ii为true还是为false?估计就有一部分人答不出来了,如果再问一下其他的,估计更多的人会头脑一片混乱。所以我对它们进行了总结,希望对大家有帮助。 首先看代码:...
2018-03-07 14:49:25 283
转载 1.静态变量和实例变量的区别?详细解析
在语法定义上的区别:静态变量前要加static关键字,而实例变量前则不加。在程序运行时的区别:实例变量属于某个对象的属性,必须创建了实例对象,其中的实例变量才会被分配空间,才能使用这个实例变量。静态变量不属于某个实例对象,而是属于类,所以也称为类变量,只要程序加载了类的字节码,不用创建任何实例对象,静态变量就会被分配空间,静态变量就可以被使用了。总之,实例变量必须创建对象后才可以通过这个对象来使用...
2018-03-07 14:42:56 322
关于IDEA的Incoming窗口的问题
2018-01-15
win10 SecureCRTPortabl乱码
2017-05-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人