![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java面试
面试
T_youyou_T
加油,骚年
展开
-
volatile和synchronized区别
1)volatile本质是告诉JVM当前变量在寄存器中的值是不确定的,需要从主存中读取。synchronized则是锁定当前变量,只有当前线程可以访问该变量,其它线程被阻塞。2)volatile仅能使用在变量级别,synchronized则可以使用在变量、方法。3)volatile仅能实现变量修改的可见性,而synchronized则可以保证变量修改的可见性和原子性。《Java编程思想》上说,...原创 2019-12-29 21:32:24 · 170 阅读 · 0 评论 -
开发时有没有遇到什么问题?
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 · 207 阅读 · 0 评论 -
ZK java操作 详解
它是一个为分布式应用提供一致性服务的软件。Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题,它能提供基于类似于文件系统的目录节点树方式的数据存储, Zookeeper 作用主要是用来维护和监控存储的数据的状态变化,通过监控这些数据状态的变化,从而达到基于数据的集群管理。java 操作//创建zk连接ZooKeeper zk = new ZooKee...原创 2019-12-11 16:31:05 · 353 阅读 · 0 评论 -
zookeeper 的使用场景
1.分布式协调2.分布式锁3.元数据或配置信息的管理4.HA高可用性分布式协调ZooKeeper 中特有watcher注册与异步通知机制,能够很好的实现分布式环境下不同系统之间的通知与协调,实现对数据变更的实时处理。使用方法通常是不同系统都对 ZK上同一个znode进行注册,监听znode的变化(包括znode本身内容及子节点的),其中一个系统update了znode,那么另一个系统能 ...原创 2019-12-11 16:30:26 · 123 阅读 · 0 评论 -
客户重复提交表单,后台如何操作,什么事幂等性
这就设计 幂等性效果:系统对某接口的多次请求,都应该返回同样的结果!目的:避免因为各种原因,重复请求导致的业务重复处理场景:1,客户端第一次请求后,网络异常导致收到请求执行逻辑但是没有返回给客户端,客户端的重新发起请求2,客户端迅速点击按钮提交,导致同一逻辑被多次发送到服务器回答:实现方法:客户端做某一请求的时候带上识别参数标识,服务端对此标识进行识别,重复请求则重复返回第一次的结果...原创 2019-12-09 15:39:40 · 192 阅读 · 0 评论 -
Https 信息传输安全是什么意思
数据保密性:保证数据内容在传输的过程中不会被第三方查看。数据完整性:及时发现被第三方篡改的传输内容。身份校验安全性:保证数据到达用户期望的目的地。...原创 2019-12-05 14:58:58 · 193 阅读 · 0 评论 -
什么是 HTTPS
HTTPS 是安全的 HTTPHTTP是超文本传输协议,就是浏览器和服务器之间进行“沟通”的一种规范。客户端与服务器建立连接,客户端发出请求,服务器端接收请求,发出响应,客户端与服务器端关闭连接。HTTP基于TCP的可靠性连接。通俗点说,就是在请求之后,服务器端立即关闭连接、释放资源。这样既保证了资源可用,也吸取了TCP的可靠性的优点。而TCP协议是基于连接和三次握手的。*HTTP 协...原创 2019-12-05 14:31:55 · 4479 阅读 · 0 评论 -
10 个线程和 2 个线程的同步代码,哪个更容易写?
网上都是一份千篇一律的答案,我说下我的理解:没有区别 ,主要还是要看业务需求 ,看是否需要分片,是否有共享变量。10个线程无非是比2个线程的开销大一点,但是如果是用线程池的话,两者并没有开销上的区别。...原创 2019-11-27 16:35:53 · 685 阅读 · 0 评论 -
volatile 类型变量提供什么保证?
volatile 变量提供顺序(避免JVM为了获得更好的性能会对语句重排序)和可见性保证。原创 2019-11-27 14:57:50 · 281 阅读 · 0 评论 -
volatile 能使得一个非原子操作变成原子操作吗?
一个典型的例子是在类中有一个 long 类型的成员变量。如果你知道该成员变量会被多个线程访问,如计数器、价格等,你最好是将其设置为 volatile。为什么?因为 Java 中读取 long 类型变量不是原子的,需要分成两步,如果一个线程正在修改该 long 变量的值,另一个线程可能只能看到该值的一半(前 32 位)。但是对一个 volatile 型的 long 或 double 变量的读写是原子...原创 2019-11-27 14:04:45 · 1867 阅读 · 1 评论 -
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 · 1359 阅读 · 0 评论