自定义博客皮肤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)
  • 收藏
  • 关注

转载 腾讯二面:Linux操作系统里一个进程最多可以创建多少个线程?

昨天有位读者被坑了,问了我这么个问题:大致意思就是,他看了一个面经,说虚拟内存是 2G 大小,然后他看了我的图解系统 PDF 里说虚拟内存是 4G,然后他就懵逼了。其实他看这个面经很有问题,没有说明是什么操作系统,以及是多少位操作系统。因为不同的操作系统和不同位数的操作系统,虚拟内存可能是不一样多。Windows 系统我不了解,我就说说 Linux 系统。在 Linux 操作系统中,虚拟地址空间的内部又被分为内核空间和用户空间两部分,不同位数的系统,地址 空间的范围也不同

2021-11-28 13:29:43 164

原创 顶礼膜拜,这份“基础-中级-高级”Java程序员面试集结,看完献出我的膝盖

Java基础(对象+线程+字符+接口+变量+异常+方法)面向对象和面向过程的区别? Java 语言有哪些特点? 关于 JVM JDK 和 JRE 最详细通俗的解答 Oracle JDK 和 OpenJDK 的对比 Java 和 C++的区别? 什么是 Java 程序的主类?应用程序和小程序的主类有何不同? Java 应用程序与小程序之间有哪些差别? 字符型常量和字符串常量的区别 构造器 Constructor 是否可被 override? 重载和重写的区别? Java 面向对象编程三

2021-11-26 19:21:00 119

原创 绝绝子,华为爆出Redis宝典,原来Redis性能可压榨到极致

RedisRedis,是互联网技术领域使用最为广泛的存储中间件,Redis以其超高的性能、完美的文档、简洁易懂的源码和丰富的客户端库支持在开源中间件。国内外有很多大型互联网公司都在使用Redis,比如:暴雪娱乐、腾讯、阿里、京东、华为、新浪微博等,很多小型公司也都在用。也可以说,对Redis的了解和应用实践已成为当下高级后端开发者绕不开的必备技能。近些年,Redis凭借在性能、稳定性和高可扩展性上的卓越表现,基本上已经成了互联网行业缓存中间件的标配,甚至很多传统行业也在使用Redis。Redi

2021-11-26 17:06:27 142

原创 首次公布Java10W字面经,Github访问量破百万

Java面试“金三银四”这个字眼对于程序员应该是再熟悉不过的了,每年的金三银四都会有很多程序员找工作、跳槽等一系列的安排。说实话,面试中7分靠能力,3分靠技能;在刚开始的时候介绍项目都是技能中的重中之重,它也是可以决定一次面试的成败的,那么在面试的时候你会如何介绍自己、熟练回答面试官的问题以及有条理的介绍项目呢?程序员在面试之前要将简历完善,将最重要的技能以及吸引面试官眼球的技术展示出来;面试时,一定要有一个好的心态,做到有条理、回答清晰;面试完,要有礼貌以及正确看待面试结果,总结其中的不足,发挥更

2021-11-26 14:31:21 66

原创 3分钟教你如何在github上精确的找开源项目?

在github中对项目进行搜索的时候,可以针对项目的名称、描述、readme、star数量、fork中的内容进行精确搜索(而不是直接在搜索框中输入笼统的名字出来一堆不感兴趣的东西)下面列举的条件都可以并行使用以Spring Boot为例一、关键字出现的位置1、出现在项目名中in:name spring boot2、出现在readme中in:readme spring boot3、出现在描述中in:description spring boot..

2021-11-26 14:04:13 305

原创 这才是Springboot事务创建流程的正确打开方式(附源码分析)

SpringBoot事务Springboot中事务是相对重要的一个部分。也是aop的一个使用场景。我们今天就来一起从源码的角度分析下,事务的整个创建过程。关于springboot启动过程中的一些加载,很多都是通用的,这块就不再仔细讲述了。这部分可以参看spring boot 加载web容器tomcat流程源码分析和springboot整合mybatis源码分析这两篇文章关于enhancer生成代理类的过程,可以参看Springboot中注解@Configuration源码分析代码路径:sp

2021-11-26 13:53:05 163

原创 10年阿里人告诉你:秒杀系统设计就该这么玩

秒杀活动是指网络商家为促销等目的组织或网上限时抢购活动,这种活动具有瞬时并发量大、库存量少和业务逻辑简单等特点。设计一个秒杀系统需要考虑的因素很多,比如对现有业务的影响、网络带宽消耗以及超卖等因素。本文会讨论秒杀系统的各个环节可能存在的问题以及解决方案。秒杀系统傻瓜式秒杀系统秒杀系统的核心难点是并发量,如果不考虑并发问题,那么我们可以用如下图所示的简单的系统结构来实现秒杀系统,用户只有两个简单操作:刷新界面和秒杀按钮,服务端也只有两个服务接口:返回秒杀界面和处理秒杀逻辑。假设本文中秒杀商品有10

2021-11-25 14:17:53 52

原创 趣谈哈希表优化:从规避 Hash 冲突到利⽤ Hash 冲突

导读: 本文从哈希表传统设计与解决思路入手,深入浅出地引出新的设计思路:从尽量规避哈希冲突,转向了利⽤合适的哈希冲突概率来优化计算和存储效率。新的哈希表设计表明 SIMD 指令的并⾏化处理能⼒的有效应⽤能⼤幅度提升哈希表对哈希冲突的容忍能⼒,进⽽提升查询的速度,并且能帮助哈希表进⾏极致的存储空间压缩。1 背景哈希表是⼀种查找性能⾮常优异的数据结构,它在计算机系统中存在着⼴泛的应⽤。尽管哈希表理论上 的查找时间复杂度是 O(1),但不同的哈希表在实现上仍然存在巨⼤的性能差异,因⽽⼯程师们对更优...

2021-11-24 15:48:57 158

原创 为何每次用完ThreadLocal都要调用remove()?

什么是内存泄漏 Key 的泄漏 Value 的泄漏 如何避免内存泄露什么是内存泄漏内存泄漏指的是,当某一个对象不再有用的时候,占用的内存却不能被回收,这就叫作内存泄漏。因为通常情况下,如果一个对象不再有用,那么我们的垃圾回收器 GC,就应该把这部分内存给清理掉。这样的话,就可以让这部分内存后续重新分配到其他的地方去使用;否则,如果对象没有用,但一直不能被回收,这样的垃圾对象如果积累得越来越多,则会导致我们可用的内存越来越少,最后发生内存不够用的 OOM 错误。下面我们来分析一下,在 Th

2021-11-24 15:03:39 142

原创 JAVA应用生产问题排查步骤

JAVA应用生产问题排查步骤学会这篇文章里面的命令并熟练使用,出去面试就可以说自己有5年工作经验并且精通JVM了。本篇文章中介绍的命令绝对是JAVA程序员平时工作中经常使用的并且必须会的命令,如果你不会你就是没有工作经验的人。如果你不会,那么在别人眼中你肯定就是菜鸟一个,所以本篇文章中的命令,你必须学会并且熟练使用。注意:本篇文章内容基于JDK版本:java version “1.6.0_113”Java™ SE Runtime Environment (build 1.6.0_113-b0

2021-11-24 14:37:42 632

原创 ElasticSearch全流程是啥,看这篇我也懂了

ES是什么搜索引擎 search engine 近实时 (Near) Real Time Search RESTful API 分布式、高可用 面向文档存储,json格式 基于Apache Lucene核心概念Cluster 集群 Node 构成集群的单机节点 Index 索引 Shard 分片 Replica 副本 Segment 分段 Document 文档 Field 字段 Inverted Index 倒排索引 Text / Keyword 类型使用全流程

2021-11-22 19:24:36 114

原创 图文并茂,你管这破玩意儿叫TCP?

你是一台电脑,你的名字叫 A经过《如果让你来设计网络》这篇文章中的一番折腾,只要你知道另一位伙伴 B 的 IP 地址,且你们之间的网络是通的,无论多远,你都可以将一个数据包发送给你的伙伴 B这就是物理层、数据链路层、网络层这三层所做的事情。站在第四层的你,就可以不要脸地利用下三层所做的铺垫,随心所欲地发送数据,而不必担心找不到对方了。虽然你此时还什么都没干,但你还是给自己这一层起了个响亮的名字,叫做传输层。你本以为自己所在的第四层万事大吉,啥事没有,但很快问题就接踵而..

2021-11-22 14:06:05 84

原创 字节跳动面试官:SpringBoot统一接口返回和全局异常处理怎么玩?

现在大多数公司项目框架,基本都是属于前后端分离模式,这种模式会涉及到一个前后端对接问题,无论是对前端或者是后台服务,维护一套完善且规范的接口是非常有必要的,这样不仅能够提高对接效率,也可以让我的代码看起来更加简洁优雅。修改前后最大的区别是我们不用在每个接口单独捕获异常,也不用在每个接口都要组装一遍返回参数,可以参考下面这张对比图:一、SpringBoot不使用统一返回格式默认情况下,SpringBoot会有如下三种返回情况。1.1 字符串@GetMapping("/getUse

2021-11-21 19:23:44 110

原创 学不懂Netty?看不懂源码?不存在的,手把手带你阅读Netty源码

提前准备好如下代码, 从服务端构建着手,深入分析Netty服务端的启动过程。public class NettyBasicServerExample { public void bind(int port){ //netty的服务端编程要从EventLoopGroup开始, // 我们要创建两个EventLoopGroup, // 一个是boss专门用来接收连接,可以理解为处理accept事件, // 另一个是worker,可以

2021-11-21 13:50:58 97

原创 Elasticsearch写入数据的过程是什么?以及是如何更新索引数据的

前言最近面试过程中遇到问Elasticsearch的问题不少,这次总结一下,然后顺便也了解一下Elasticsearch内部是一个什么样的结构,毕竟总不能就只了解个倒排索引吧。本文标题就是我遇到过的两个问题,所以此次基本上只是围绕着这两个问题来总结。ES写入数据在介绍写入数据的过程时,先明确一下ES中的一些关键性的概念:Clouster:集群,由一到N个Elasticsearch服务节点组成。 Node:节点,组成Elasticsearch集群的基本单元,单个集群内节点名称唯一。通常一个节

2021-11-21 13:32:59 383

原创 什么是IOC?教你手撸一个IOC容器

IoC什么是IoC?IoC是Inversion of Control(控制反转)的简称,注意它是一个技术思想。描述的是对象创建、管理的事情。传统开发方式:比如类A依赖类B,往往会在类A里面new一个B的对象。 IoC开发方式:我们不用去new对象,由IoC容器帮我们实例化对象并进行管理。我们需要B对象,就问IoC容器要即可。控制反转就是说将对象创建、管理的权力交给了外部环境(IoC容器)。IoC的作用:解决了对象之间的耦合问题。什么是DI?DI是Dependancy Inject

2021-11-19 21:15:44 127

空空如也

空空如也

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

TA关注的人

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