自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 收藏
  • 关注

原创 volatile和synchronized区别

1)volatile本质是告诉JVM当前变量在寄存器中的值是不确定的,需要从主存中读取。synchronized则是锁定当前变量,只有当前线程可以访问该变量,其它线程被阻塞。2)volatile仅能使用在变量级别,synchronized则可以使用在变量、方法。3)volatile仅能实现变量修改的可见性,而synchronized则可以保证变量修改的可见性和原子性。《Java编程思想》上说,...

2019-12-29 21:32:24 134

原创 开发时有没有遇到什么问题?

1.频繁GC有一次架构组把部署机降容,stg环境从内存2G变成1G,一台机器的cpu 一直80%以上,报警。服务重启几次以后,还是会报警,cpu load还是很高**第一步 登机器用 top 命令查看进程资源占用情况。**不出所料,Java进程把CPU撑爆了,获取java进程PID1第二步 用了 top -H -p6902 (6902是Java进程的PID1)命令找出了具体的线程资源占用情况...

2019-12-13 11:11:25 194

原创 ZK java操作 详解

它是一个为分布式应用提供一致性服务的软件。Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理。java 操作//创建zk连接ZooKeeper zk = new ZooKee...

2019-12-11 16:31:05 330

原创 zookeeper 的使用场景

1.分布式协调2.分布式锁3.元数据或配置信息的管理4.HA高可用性分布式协调ZooKeeper 中特有watcher注册与异步通知机制,能够很好的实现分布式环境下不同系统之间的通知与协调,实现对数据变更的实时处理。使用方法通常是不同系统都对 ZK上同一个znode进行注册,监听znode的变化(包括znode本身内容及子节点的),其中一个系统update了znode,那么另一个系统能 ...

2019-12-11 16:30:26 109

原创 zk+dubbo实现原理

.dubbo+zk实现rpc远程调用中,zk在其中的作用类似springcloud中的eureka注册服务中心,管理接口服务在使用zk作为dobbo注册服务中心的时候,服务提供者注册服务到zk时,就在zk上创建一个节点,而服务消费者只需监听节点事件,就能知道节点的变换信息。...

2019-12-11 16:30:13 534

原创 客户重复提交表单,后台如何操作,什么事幂等性

这就设计 幂等性效果:系统对某接口的多次请求,都应该返回同样的结果!目的:避免因为各种原因,重复请求导致的业务重复处理场景:1,客户端第一次请求后,网络异常导致收到请求执行逻辑但是没有返回给客户端,客户端的重新发起请求2,客户端迅速点击按钮提交,导致同一逻辑被多次发送到服务器回答:实现方法:客户端做某一请求的时候带上识别参数标识,服务端对此标识进行识别,重复请求则重复返回第一次的结果...

2019-12-09 15:39:40 169

原创 存在重复元素 leetCode

给定一个整数数组,判断是否存在重复元素。如果任何值在数组中出现至少两次,函数返回 true。如果数组中每个元素都不相同,则返回 false。输入: [1,2,3,1]输出: true输入: [1,2,3,4]输出: false//自己写的//13 ms, 在所有 java 提交中击败了62.10% 的用户//43.7 MB, 在所有 java 提交中击败了84.66%的用户cla...

2019-12-09 15:17:10 87

原创 哈希表,设计哈希集合,

哈希表是一种数据结构,它使用哈希函数组织数据,以支持快速插入和搜索哈希表的原理1.当我们插入一个新的键时,哈希函数将决定该键应该分配到哪个桶中,并将该键存储在相应的桶中;2.当我们想要搜索一个键时,哈希表将使用相同的哈希函数来查找对应的桶,并只在特定的桶中进行搜索。插入当我们用y=x%5作为哈希函数时,当插入key0 时 key0就放到 bucket0中1987和2就放到了buck...

2019-12-06 17:17:51 219

原创 Https 信息传输安全是什么意思

数据保密性:保证数据内容在传输的过程中不会被第三方查看。数据完整性:及时发现被第三方篡改的传输内容。身份校验安全性:保证数据到达用户期望的目的地。...

2019-12-05 14:58:58 177

原创 什么是 HTTPS

HTTPS 是安全的 HTTPHTTP是超文本传输协议,就是浏览器和服务器之间进行“沟通”的一种规范。客户端与服务器建立连接,客户端发出请求,服务器端接收请求,发出响应,客户端与服务器端关闭连接。HTTP基于TCP的可靠性连接。通俗点说,就是在请求之后,服务器端立即关闭连接、释放资源。这样既保证了资源可用,也吸取了TCP的可靠性的优点。而TCP协议是基于连接和三次握手的。*HTTP 协...

2019-12-05 14:31:55 4033

原创 ZK 实现简单的分布式锁

场景在项目中,部署了多个tomcat应用,在执行定时任务时就会遇到同一任务可能执行多次的情况,我们可以借助分布式锁,保证在同一时间只有一个tomcat应用执行了定时任务实现1通过elastic-job 实现实现2通过zk锁实现分布式锁,这个主要得益于 ZooKeeper 为我们保证了数据的强一致性。锁服务可以分为两类,一个是 保持独占,另一个是 控制时序。所谓保持独占,就是所有试图...

2019-12-05 11:43:06 138

原创 请写出 5 种常见到的 runtime exception

ClassCastException类型强制转换异常 Object x = new Integer(0); System.out.println((String)x);当试图将对象强制转换为不是实例的子类时,抛出该异常NullPointerException空指针异常类String s=null;int size=s.size();当应用程序试图在需要对象的地方使用 null 时,...

2019-11-27 17:06:53 201

原创 10 个线程和 2 个线程的同步代码,哪个更容易写?

网上都是一份千篇一律的答案,我说下我的理解:没有区别 ,主要还是要看业务需求 ,看是否需要分片,是否有共享变量。10个线程无非是比2个线程的开销大一点,但是如果是用线程池的话,两者并没有开销上的区别。...

2019-11-27 16:35:53 650

原创 生成按时间增长的编码

/** * 生成按时间增长的编码 * * @param prefix 编码前缀 * @param randomLength 随机部分长度,可以为0或负数 * @return */ public static String generateId(String prefix, int randomLength) { ...

2019-11-27 15:05:56 108

原创 计算两个日期相差天数

实际天数,而非超过24H才算一天。public static int TwoDateMinus(Date d1, Date d2) { Calendar cal1 = Calendar.getInstance(); Calendar cal2 = Calendar.getInstance(); cal1.setTime(d1); ...

2019-11-27 15:00:57 306

原创 volatile 类型变量提供什么保证?

volatile 变量提供顺序(避免JVM为了获得更好的性能会对语句重排序)和可见性保证。

2019-11-27 14:57:50 262

原创 volatile 能使得一个非原子操作变成原子操作吗?

一个典型的例子是在类中有一个 long 类型的成员变量。如果你知道该成员变量会被多个线程访问,如计数器、价格等,你最好是将其设置为 volatile。为什么?因为 Java 中读取 long 类型变量不是原子的,需要分成两步,如果一个线程正在修改该 long 变量的值,另一个线程可能只能看到该值的一半(前 32 位)。但是对一个 volatile 型的 long 或 double 变量的读写是原子...

2019-11-27 14:04:45 1790 1

原创 浅析volatile

1.内存可见性volatile是Java提供的一种轻量级的同步机制,同synchronized相比(synchronized通常称为重量级锁),volatile更轻量级,相比使用synchronized所带来的庞大开销,倘若能恰当的合理的使用volatile,自然是美事一桩。Java内存模型为什么出现这种情况呢,我们需要先了解一下JMM(java内存模型)java虚拟机有自己的内存模型(J...

2019-11-25 14:49:57 169

原创 Cron表达式案列

表达式说明0 0 12 * * ?每天12点运行0 15 10 ? * *每天10:15运行0 15 10 * * ?每天10:15运行0 15 10 * * ? *每天10:15运行0 15 10 * * ? 2008在2008年的每天10:15运行0 * 14 * * ?每天14点到15点之间每分钟运行一次,开始于14:00,结束于...

2019-11-21 18:51:09 162

原创 java 中能创建 volatile 数组吗

可以创建volatile数组,但是volatile只保证对数组的引用可见,即如果是改变引用只向的数组,将受到volatile的保护,但是对多个线程想要去改变数组里面的元素,volatile不能保证。package com.youyou;import java.util.Arrays;import java.util.concurrent.atomic.AtomicInteger;/**...

2019-11-21 17:52:00 1277

空空如也

空空如也

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

TA关注的人

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