自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Synchronized 底层原理总结

一.synchronized介绍synchronized是JVM内置锁,通过内部对象Monitor(监视器锁)来实现,基于进入与退出monitor对象来实现方法与代码块的同步,监视器锁的实现,最终依赖操作系统的Mutex lock(互斥锁)来实现。二.synchronized使用方式synchronized 主要有3种使用方式。1.同步类方法public synchronized void method(){ // todo}锁的是当前类对象;2.同步代码块public class

2021-09-08 13:19:23 252

转载 Github重磅教程,从0到1,边学边实战!

据我所知,刚开始入门编程的都止步开始和选择,可选的很多,java,Python,前端,golang等等,如果没有好的选择可以和于小二来说话。如果没有什么好的选择,我建议你去学习java吧作者:ljdgm链接:https://www.cnblogs.com/downey/p/5301999.html来源:cnblogs一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=13

2021-08-17 16:54:24 1284

转载 大厂用的Hystrix到底有什么优点?

为什么需要hystrixhystrix官网地址githubHystrix同样是netfix公司在分布式系统中的贡献。同样的也进入的不维护阶段。不维护不代表被淘汰。只能说明推陈出新技术在不断迭代。曾今的辉煌曾经的设计还是值得我们去学习的。在分布式环境中,服务调度是特色也是头疼的一块。在服务治理章节我们介绍了服务治理的功能。前一课我们也介绍了ribbon、feign进行服务调用。现在自然的到了服务监控管理了。hystrix就是对服务进行隔离保护。以实现服务不会出现连带故障。导致整个系统不可用如上

2021-08-13 13:13:42 236

转载 HashMap的负载因子为什么默认是0.75?这篇文章告诉你答案

前几天在一个群里看到有人讨论hashmap中的加载因子为什么是默认0.75。HashMap源码中的加载因子static final float DEFAULT_LOAD_FACTOR = 0.75f; 当时想到的是应该是“哈希冲突”和“空间利用率”矛盾的一个折衷。跟数据结构要么查询快要么插入快一个道理,hashmap就是一个插入慢、查询快的数据结构。加载因子是表示Hsah表中元素的填满的程度。加载因子越大,填满的元素越多,空间利用率越高,但冲突的机会加大了。反之,加载因子越小,填满的元素越

2021-08-02 10:17:52 271

转载 如何设计短网址系统?

短网址的长度短网址的长度该设计为多少呢? 当前互联网上的网页总数大概是 45亿(参考 http://www.worldwidewebsize.com),超过了 232=42949672962^{32}=4294967296232=4294967296,那么用一个64位整数足够了。一个64位整数如何转化为字符串呢?,假设我们只是用大小写字母加数字,那么可以看做是62进制数,log62(264−1)=10.7log_{62} {(2^{64}-1)}=10.7log62​(264−1)=10.7,

2021-07-29 17:04:30 154

转载 30k的大佬告诉你怎么入门编程行业?

作者:Trey Huffine译者:冬雨策划 |本文最初发布于 Level Up Coding,经原作者授权由 InfoQ 中文站翻译并分享。目前Web 开发人员的需求达到了历史最高水平,而且目前还在不断增长。互联网上有一些免费教程和收费的高级教程,本文将学习路线图分解开,详细介绍了有效学习各部分所需的技能以及相应的教程,大家可以根据自己的需要,选择最适合自己的方式,学到自己所需的知识和技能。现在是学习编程或转行从事软件工程的最佳时机。业界对 Web 开发人员的需求达到了历史最高水平,而且目前.

2021-07-22 21:22:45 142

原创 【问答分享第二弹】 Mysql的搜索引擎 ,看完暴虐面试官!

大家好,我是小于哥啊,前几天能分享了第二期面试题MySQL 中搜索引擎的面试考点,这道题是面试常温的面试,看完在数据库引擎方面,我相信你一定会有收获的还没有看我第一分享的可以去参考下:第一期分享: 【问答分享第一弹】关于MySQL行锁、表锁、排他锁、共享锁,看完吊打面试官!首发于公众号【终端研发部】核心点1、搜索引擎InnoDB和MyIsam的区别和联系2、Memory的相关的 知识的补充目标1、搜索引擎InnoDB和MyIsam的区别和联系2、Memory的相关的 知识的补充3、关

2021-07-22 09:52:39 147

原创 阿里2021最全新的java面试题总结

前言2021马上金九银十进入招聘旺季了,现为大家整理了这次金九银十面试阿里的面试题总结,都是我从朋友那拿到的面试真题,话不多说,满满的干货分享给大家!int a=10是原子操作吗?是的。注意点:i++(或++i)是非原子操作,i++是一个多步操作,而且是可以被中断的。i++可以被分割成3步,第一步读取i的值,第二步计算i+1;第三部将最终值赋值给i。int a = b;不是原子操作。从语法的级别来看,这是也是一条语句,是原子的;但是从实际执行的二进制指令来看,由于现代计算机CPU架构体系

2021-07-18 13:52:34 998

原创 Linux命令行与shell脚本编程大全.pdf学习

这是一本关于 Linux 命令行与 shell 脚本编程的全方位教程,主要包括四大部分 :Linux 命令行,shell脚本编程基础,高级 shell 脚本编程,如何创建实用的 shell 脚本。本书针对 Linux 系统的最新特性进行了全面更新,不仅涵盖了详尽的动手教程和现实世界中的实用信息,还提供了与所学内容相关的参考信息和背景资料。通过本书的学习,你将轻松写出自己的 shell 脚本。本书适合 Linux 程序设计人员阅读。核心Linux发行版含有内核、一个或多个图形化桌面环境以及预编译好

2021-07-15 14:05:29 3390

转载 三万字,100题!Linux知识汇总!

这篇文章主要介绍了三万字,100题!Linux知识汇总!以及相关的经验技巧,文章约160077字,浏览量243,点赞数7,值得参考!导读:本文整理了最新的Linux面试题,近3万字,约100道题,分享至此,希望对大家有帮助。一、Linux 概述1. 什么是LinuxLinux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix

2021-07-14 12:46:30 431

转载 【问答分享第一弹】MySQL锁总结:MySQL行锁、表锁、排他锁、共享锁的特点

大家好,我是小于哥哈。前几天能分享了第一期面试题,MySQL 中有哪几种锁 和 这些锁各有哪些特点 ,这道面试题是经常会被问到的一个面试题,大家反馈的都挺不错的。今天特此来总结一下。首发于公众号【终端研发部】核心Mysql锁机制,分为哪些锁,有什么样的特点?目标锁的分类锁的特点锁的应用场景事务并发带来的问题与解决方案补充1.脏读:一个事务可以读取到另一个事务未提交的数据。如下图:解决脏读:修改数据时加上写锁不可重复读:在一个事务中不同时间段查询出现

2021-07-09 17:20:39 139

原创 全网超硬核程序必读资源免费分享

Java是一门面向对象编程语言。向对象编程是Java最核心的思想,这也是区分和C等其他编程语言的一个显著特征。掌握面一门语言,首先得掌握它的思想,思想决定高度。这就和我们学习语文和英语一样,汉语学拼音,英语学音标。抓住了核心,学习起来就事半功倍。首先一手资源是官网文档,其次是一些大神的书籍,国外的大神多一些,毕竟这些语言都是老外发明的,比如经典的java入门书籍《新手学Java 7编程(第5版).pdf》《 Thinking.In.Java(中文版).pdf》等等。其次就是中文书籍、中文教学视频了。对

2021-07-06 09:54:18 1084 1

原创 刚学习java如何快速的找到优秀的资源?

选择做程序员就要有一颗保持学习的心,因为技术更新快、需求变化快……所以得时刻保持学习才能不被淘汰。正因为如此,我认为我们程序员的自学能力还是挺不错的,嘻嘻~说到自学,就出现了“如何找到自己想要的资源”的问题了,其实关于如何找到资源,我想基本都知道,去谷歌、去百度一搜就出来了,但是我想要说的是如何更好的找到想要的资源,而不只是谷歌和百度搜索,毕竟有时候搜索出来的形形色色,还需要自己再次筛选一遍,真的挺累的。这里有Springboot,Springcloud,dubbo,redis,zoopeeker,mq

2021-06-30 13:36:35 122

原创 阿里架构师深剖线程池内部工作原理

如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低系统的效率,因为频繁创建线程和销毁线程需要时间。那么有没有一种办法使得线程可以复用,就是执行完一个任务,并不被销毁,而是可以继续执行其他的任务?在Java中可以通过线程池来达到这样的效果。今天我们就来详细讲解一下Java的线程池,首先我们从最核心的ThreadPoolExecutor类中的方法讲起,然后再讲述它的实现原理,接着给出了它的使用示例,最后讨论了一下如何合理配置线程池的大小。1.线程池的创建

2021-06-08 11:35:26 92

原创 阿里三连问: 事务传播行为到底是什么?

阿里三面的事务传播行为到底是什么?世人都劝我们要适应环境,其实,他们忘了,我们也是环境的一部分,会影响、鞭策着他人,所以,改变自己更是改变环境的一种呀。从我做起,开始学习,继续坚持,Java的未来,还靠你们。大家加油!。没错,对于整个职业生涯来说,现在的确是刚开始。事务传播行为什么叫事务传播行为?听起来挺高端的,其实很简单。即然是传播,那么至少有两个东西,才可以发生传播。单体不存在传播这个行为。事务传播行为(propagation behavior)指的就是当一个事务方法被另一个事务方法调用时,这

2021-06-07 13:58:14 120

原创 做了五年的开发,一面试竟然还不知道Zab协议?

大家好,我是你们的小码哥。最近从后台收到很多人的私聊,其中最常见的就是关于Zookeeper相关的面试问题作为一名面试官,我在面试别人的时候,经常反复拿来问别人的一个问题,最近详细整理了一下,跟大家分享一下。总结的不好的地方或者有不同见解的地方欢迎大家私聊我一起探讨。什么是Zab协议​ ZAB协议,全称 Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。它是专门为分布式协调服务——Zookeeper,设计的一种支持崩溃恢复和原子广播的协议。从设计上看,ZAB协

2021-06-04 12:58:25 108

原创 三分钟了解Java“锁”事,进大厂不难!

最近在后台有人经常问我关于java面试方面的一些问题,记得印象中最多的就是java中锁机制的问题。如果你干java工作了五六年,还不知道乐观锁和悲观锁, 自旋锁和适应性自旋锁的话,那么你就只能做一个搬砖的工程师了。今天宇哥来带你看一下这锁方面的几个问题。希望能够帮助到你Java提供了种类丰富的锁,每种锁因其特性的不同,在适当的场景下能够展现出非常高的效率。本文旨在对锁相关源码(本文中的源码来自JDK 8和Netty 3.10.6)、使用场景进行举例,为读者介绍主流锁的知识点,以及不同的锁的适用场景。

2021-06-02 12:42:34 108

原创 Java面试必问题目:AQS原理深度剖析,看完吊打面试官!

大家好,我是小马哥。最近并发编程是大厂面试中重点考察的问题。今天我们来探讨一下AQS相关的面试技巧。毕竟此类问题回答的好坏会在很大程度上影响我们面试的得分。1. AQS在java中的使用给代码加锁,是java中处理并发问题的重要手段。java中的很多锁都是基于抽象类AQS(AbstractQueuedSynchronizer)实现的。如下表所示:2. AQS的实现机制AQS提供了实现锁的机制,即CLH队列,同时通过ConditionObject实现了条件等待链表。其中CLH队列如下:

2021-06-01 17:23:05 2612

原创 8年的Java后台开发,为什么 还不知道分布式限流?看完涨薪翻倍了

什么是限流在开发高并发系统时有三把利器用来保护系统:缓存、降级和限流。缓存的目的是提升系统访问速度和增大系统能处理的容量,可谓是抗高并发流量的银弹;而降级是当服务出问题或者影响到核心流程的性能则需要暂时屏蔽掉,待高峰或者问题解决后再打开;而有些场景并不能用缓存和降级来解决,比如稀缺资源(秒杀、抢购)、写服务(如评论、下单)、频繁的复杂查询(评论的最后几页),因此需有一种手段来限制这些场景的并发/请求量,即限流。为什么要限流Java程序员在大厂面试时 或者 想拿到一份不错的薪资时,肯定会涉及到分布式程

2021-05-31 12:14:10 122

原创 5分钟学后台—面试必死要问的问题:你了解Java的AQS吗?

AQS简介AQS是一个抽象类,不可以被实例化,它的设计之初就是为了让子类通过继承来实现多样的功能的。它内部提供了一个FIFO的等待队列,用于多个线程等待一个事件(锁)。它有一个重要的状态标志——state,该属性是一个int值,表示对象的当前状态(如0表示lock,1表示unlock)。AQS提供了三个protected final的方法来改变state的值,分别是:getState、setState(int)、compareAndSetState(int, int)。根据修饰符,它们是不可以被子类重写的

2021-05-28 17:53:12 108

转载 5分钟学后台:分布式事务解决终极方案!

1.1 事务不知道你是否遇到过这样的情况,去小卖铺买东西,付了钱,但是店主因为处理了一些其他事,居然忘记你付了钱,又叫你重新付。又或者在网上购物明明已经扣款,但是却告诉我没有发生交易。这一系列情况都是因为没有事务导致的。这说明了事务在生活中的一些重要性。有了事务,你去小卖铺买东西,那就是一手交钱一手交货。有了事务,你去网上购物,扣款即产生订单交易。1.2 事务的具体定义事务提供一种机制将一个活动涉及的所有操作纳入到一个不可分割的执行单元,组成事务的所有操作只有在所有操作均能正常执行的情况下方能提

2021-05-24 10:40:45 153

空空如也

空空如也

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

TA关注的人

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