自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 synchronized使用详解

synchronized详解synchronized详解1修饰类方法,锁定的是整个类1.1同一类的不同对象,调用同一个静态同步方法,会等待锁释放SynchronizedStatic静态同步方法import java.util.Calendar;public class SynchronizedStatic { public synchronized static void testThreadA(){ try { Thread.sleep(1000); ...

2020-08-07 17:58:26 157

原创 Cookie、Session、Token、JWT对比与总结

还分不清 Cookie、Session、Token、JWT?什么是认证(Authentication) 通俗地讲就是验证当前用户的身份,证明“你是你自己”(比如:你每天上下班打卡,都需要通过指纹打卡,当你的指纹和系统里录入的指纹相匹配时,就打卡成功) 互联网中的认证: 用户名密码登录 邮箱发送登录链接 手机号接收验证码 只要你能收到邮箱/验证码,就默认你是账号的主人 什么是授权(Authoriza...

2020-08-07 17:49:41 1491

原创 互联网公司面试大全总结

互联网公司面试总结面试问题整理ZooKeeperCAP定理:一个分布式系统不可能同时满足以下三种,一致性(C:Consistency),可用性(A:Available),分区容错性(P:Partition Tolerance).在此ZooKeeper保证的是CP,ZooKeeper不能保证每次服务请求的可用性,在极端环境下,ZooKeeper可能会丢弃一些请求,消费者程序需要重新请求才能获得结果。另外在进行leader选举时集群都是不可用,所以说,ZooKeeper不能保证服务可..

2020-08-07 17:47:45 1347

原创 synchronized总结详解

synchronized跟面试官扯了半个小时前言钟馗穿着有些微微泛黄的格子道袍,站在安琪拉对面,开始发难,其中让安琪拉印象非常深刻的是法师的synchronized 钩子。开场面试官: 你先自我介绍一下吧!安琪拉: 我是安琪拉,草丛三婊之一,最强中单(钟馗冷哼)!哦,不对,串场了,我是**,目前在--公司做--系统开发。面试官: 刚才听一面的同事说你们上次聊到了synchronized,你借口说要回去补篮,现在能跟我讲讲了吧?安琪拉: 【上来就丢钩子,都不寒暄几句,问...

2020-08-07 17:46:41 505

原创 mysql总结加面试

MySQL 三万字精华总结 + 面试100 问,吊打面试官绰绰有余一、MySQL架和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同场景中应用并发挥良好作用。主要体现在存储引擎的架构上,插件式的存储引擎架构将查询处理和其它的系统任务以及数据的存储提取相分离。这种架构可以根据业务的需求和实际需要选择合适的存储引擎。 连接层:最上层是一些客户端和连接服务。主要完成一些类似于连接处理、授权认证、及相关的安全方案。在该层上引入了线程池的概念,为通过认证安全接入的...

2020-08-07 17:43:33 234 1

原创 MySQL面试必问

BATJTMD 面试必问的 MySQL ,三歪一个都不会正文二狗:不多BB,先怼几道常问的大题目。MySQL 的事务隔离级别有哪些?分别用于解决什么问题?主要用于解决脏读、不可重复读、幻读。脏读:一个事务读取到另一个事务还未提交的数据。不可重复读:在一个事务中多次读取同一个数据时,结果出现不一致。幻读:在一个事务中使用相同的 SQL 两次读取,第二次读取到了其他事务新插入的行。不可重复读注重于数据的修改,而幻读注重于数据的插入。 隔离级别 ...

2020-08-07 17:40:34 232

原创 【死磕Java并发】—–J.U.C之阻塞队列:BlockingQueue总结

【死磕Java并发】—–J.U.C之阻塞队列:BlockingQueue总结经过前面六篇博客的阐述,我想各位应该对阻塞队列BlockingQueue有了较为深入的理解,下面来一个总结,先看整个类图:BlockingQueueBlockingQueue接口实现Queue接口,它支持两个附加操作:获取元素时等待队列变为非空,以及存储元素时等待空间变得可用。相对于同一操作他提供了四种机制:抛出异常、返回特殊值、阻塞等待、超时:BlockingQueue常用于生产者和消费者场景。 JDK 8...

2020-08-04 08:51:49 177

原创 【死磕Java并发】—–深入分析ThreadLocal

【死磕Java并发】—–深入分析ThreadLocalThreadLoacal是什么?ThreadLocal是啥?以前面试别人时就喜欢问这个,有些伙伴喜欢把它和线程同步机制混为一谈,事实上ThreadLocal与线程同步无关。ThreadLocal虽然提供了一种解决多线程环境下成员变量的问题,但是它并不是解决多线程共享变量的问题。那么ThreadLocal到底是什么呢? API是这样介绍它的:This class provides thread-local variables. These ..

2020-08-04 08:50:59 94

原创 【死磕Java并发】—–J.U.C之线程池:线程池的基础架构

【死磕Java并发】—–J.U.C之线程池:线程池的基础架构经历了Java内存模型、JUC基础之AQS、CAS、Lock、并发工具类、并发容器、阻塞队列、atomic类后,我们开始JUC的最后一部分:线程池。在这个部分你将了解到下面几个部分:线程池的基础架构 线程池的原理分析 线程池核心类的源码分析 线程池调优Executor我们先看线程池的基础架构图:ExecutorExecutor,任务的执行者,线程池框架中几乎所有类都直接或者间接实现Executor接口,它是线程池框架的基..

2020-08-04 08:50:14 105

原创 【死磕Java并发】—–J.U.C之线程池:ThreadPoolExecutor

【死磕Java并发】—–J.U.C之线程池:ThreadPoolExecutor作为Executor框架中最核心的类,ThreadPoolExecutor代表着鼎鼎大名的线程池,它给了我们足够的理由来弄清楚它。下面我们就通过源码来一步一步弄清楚它。内部状态线程有五种状态:新建,就绪,运行,阻塞,死亡,线程池同样有五种状态:Running, SHUTDOWN, STOP, TIDYING, TERMINATED。 private final AtomicInteger ...

2020-08-04 08:46:53 133

原创 【死磕Java并发】—–J.U.C之线程池:ScheduledThreadPoolExecutor

【死磕Java并发】—–J.U.C之线程池:ScheduledThreadPoolExecutorScheduledThreadPoolExecutor解析我们知道Timer与TimerTask虽然可以实现线程的周期和延迟调度,但是Timer与TimerTask存在一些缺陷,所以对于这种定期、周期执行任务的调度策略,我们一般都是推荐ScheduledThreadPoolExecutor来实现。下面就深入分析ScheduledThreadPoolExecutor是如何来实现线程的周期、延迟...

2020-08-04 08:46:01 196

原创 【死磕Java并发】—–分析 ArrayBlockingQueue 构造函数加锁问题

【死磕Java并发】—–分析 ArrayBlockingQueue 构造函数加锁问题昨天有位小伙伴问我一个 ArrayBlockingQueue 中的一个构造函数为何需要加锁,其实这个问题我还真没有注意过。主要是在看 ArrayBlockingQueue 源码时,觉得它很简单,不就是通过加锁的方式来操作一个数组 items 么,有什么难的,所以就没有关注这个问题,所以它一问我懵逼了。回家细想了下,所以产生这篇博客。我们先看构造方法: public ArrayBlockingQue...

2020-08-04 08:44:05 223

原创 【死磕 Java 并发】—– synchronized 的锁膨胀过程

【死磕 Java 并发】—– synchronized 的锁膨胀过程synchronized 是 Java 面试的常客,我们需要掌握它的基本使用,比如同步代码块、同步普通方法、同步静态方法,以及他们的区别,当然这是最初级的。高级点的就是需要掌握 synchronized 的实现原理,比如对象头、synchronized 的锁优化、锁的膨胀过程,这篇文章就是介绍 synchronized 的锁膨胀过程。该过程其实很多小伙伴都不知道,18年面试的时候问了不下于 20 个人,没有一个回答比较好的,...

2020-08-04 08:43:03 672 3

原创 RabbitMQ 总结

RabbitMQ 总结公众号改版后文章乱序推荐,希望你可以点击上方“Java进阶架构师”,点击右上角,将我们设为★“星标”!这样才不会错过每日进阶架构文章呀。2020年Java原创面试题库连载中【000期】Java最全面试题库思维导图【001期】JavaSE面试题(一):面向对象【002期】JavaSE面试题(二):基本数据类型与访问修饰符【003期】JavaSE面试题(三):JavaSE语法(1)【004期】JavaSE面试题(四):JavaSE语法(...

2020-08-04 08:36:55 254

原创 Linux系统内存知识详解

深度好文:Linux系统内存知识Linux 内存是后台开发人员,需要深入了解的计算机资源。合理的使用内存,有助于提升机器的性能和稳定性。本文主要介绍Linux 内存组织结构和页面布局,内存碎片产生原因和优化算法,Linux 内核几种内存管理的方法,内存使用场景以及内存使用的那些坑。从内存的原理和结构,到内存的算法优化,再到使用场景,去探寻内存管理的机制和奥秘。一、走进Linux 内存1、内存是什么?1)内存又称主存,是 CPU 能直接寻址的存储空间,由半导体器件制成2)内..

2020-08-04 08:35:42 1506

原创 最全技术面试180题:阿里11面试+网易+百度+美团!

最全技术面试180题:阿里11面试+网易+百度+美团!网络编程 ISO模型与协议 http1.0:需要使用keep-alive参数来告知服务器端要建立一个长连接 http1.1:默认长连接。支持只发送header信息,可以用作权限请求。支持Host域。 http2.0:多路复用的技术,做到同一个连接并发处理多个请求。HTTP2.0使用HPACK算法对header的数据进行压缩。支持HTTP2.0的web server请求数据的时候,服务器会顺便把一些客户端需要的.

2020-08-04 08:33:37 313 1

空空如也

空空如也

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

TA关注的人

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