- 博客(146)
- 资源 (7)
- 问答 (1)
- 收藏
- 关注
原创 烂了大街的 Spring 循环依赖问题,你觉得自己会了吗
文章已收录在 GitHub JavaKeeper ,N 线互联网开发、面试必备技能兵器谱,笔记自取。微信搜「 JavaKeeper 」程序员成长充电站,互联网技术武道场。无套路领取 500+ 本电子书和 30+ 视频教学和源码。前言循环依赖问题,算是一道烂大街的面试题了,解毒之前,我们先来回顾两个知识点:初学 Spring 的时候,我们就知道 IOC,控制反转么,它将原本在程序中手动创建对象的控制权,交由 Spring 框架来管理,不需要我们手动去各种 new XXX。尽管是 Spring .
2020-09-09 16:11:09 502
原创 MySQL 三万字精华总结,和面试官扯皮绰绰有余(收藏系列)
写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了。个人建议把面试题看作是费曼学习法中的回顾、简化的环节,准备面试的时候,跟着题目先自己讲给自己听,看看自己会满意吗,不满意就继续学习这个点,如此反复,好的offer离你不远的,奥利给文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取。一、MySQL架构和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同..
2020-07-14 14:33:25 463
原创 布隆过滤器,我也是个处理过十几亿数据的人儿
文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱什么是 BloomFilter布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。主要用于判断一个元素是否在一个集合中。通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的.
2020-05-09 14:45:54 1032
原创 面试必问的 volatile,你真的会了吗
谈谈你对 volatile 的理解?你知道 volatile 底层的实现机制吗?volatile 变量和 atomic 变量有什么不同?volatile 的使用场景,你能举两个例子吗?文章收录在 GitHub JavaKeeper ,包含 N 线互联网开发必备技能兵器谱之前算是比较详细的介绍了 Java 内存模型——JMM, JMM是围绕着并发过程中如何处理可见性、原子性和有序性...
2020-03-25 10:56:56 325
原创 Java 内存模型都不会,就敢在简历写熟悉并发编程吗
从 PC 内存架构到 Java 内存模型你知道 Java 内存模型 JMM 吗?那你知道它的三大特性吗?Java 是如何解决指令重排问题的?既然CPU有缓存一致性协议(MESI),为什么 JMM 还需要volatile关键字?带着问题,尤其是面试问题的学习才是最高效的。加油,奥利给!文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱前两天看到同学和我...
2020-03-20 10:37:58 355
原创 工厂模式解读
3年工作经验是吧?你知道工厂模式分为几类吗?他们都有什么区别?那你说说你们项目中是怎么使用工厂模式的?带着问题,尤其是面试问题的学习才是最高效的。加油,奥利给!文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器谱工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳...
2020-03-19 14:18:18 541
原创 JVM解毒——类加载子系统
带着问题,尤其是面试问题的学习才是最高效的。加油,奥利给!点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器谱直击面试看你简历写得熟悉JVM,那你说说类的加载过程吧?我们可以自定义一个String类来使用吗?什么是类加载器,类加载器有哪些?多线程的情况下,类的加载为什么不会出现重复加载的情况?什么是双亲委派机制?它有啥优势?可以打破这...
2020-02-22 11:55:26 612 1
原创 JVM与Java体系结构
你是否也遇到过这些问题?运行线上系统突然卡死,系统无法访问,甚至直接OOM想解决线上JVM GC问题,但却无从下手新项目上线,对各种JVM参数设置一脸懵逼,直接默认,然后就JJ了每次面试都要重新背一遍JVM的一些原理概念性东西这段广告语写的好,趁着在家办公学习下JVM,先列出整体知识点点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器...
2020-02-21 11:47:16 174
原创 Java8 通关攻略
点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器谱Java8早在2014年3月就发布了,6年了,你有对它做个全面的了解吗本文是用我拙劣的英文和不要脸的这抄抄那抄抄,熬出来的,没有深究源码,只是对 Java8 有一个整体的认知,可以上手用起来,示例代码也都在github上JDK 8 有什么新功能Java 编程语言( Java Prog...
2020-01-14 16:49:01 831
原创 多线程顺序打印问题总结
大家在换工作面试中,除了一些常规算法题,还会遇到各种需要手写的题目,所以打算总结出来,给大家个参考。第一篇打算总结下阿里最喜欢问的多个线程顺序打印问题,我遇到的是机试,直接写出运行。同类型的题目有很多,比如三个线程分别打印 A,B,C,要求这三个线程一起运行,打印 n 次,输出形如“ABCABCABC…”的字符串两个线程交替打印 0~100 的奇偶数通过 N 个线程顺序循环打印从 0 至 100多线程按顺序调用,A->B->C,AA 打印 5 次,BB 打印10 次,CC 打印 15
2020-10-30 10:31:22 874 1
原创 不懂 ZooKeeper?没关系,这一篇给你讲的明明白白
本来想系统回顾下 ZooKeeper的,可是网上没找到一篇合自己胃口的文章,写的差不多的,感觉大部分都是基于《从Paxos到ZooKeeper 分布式一致性原理与实践》写的,所以自己读了一遍,加上项目中的使用,做个整理。加油,奥利给!前言面试常常被要求「熟悉分布式技术」,当年搞 “XXX管理系统” 的时候,我都不知道分布式系统是个啥。分布式系统是一个硬件或软件组件分布在不同的网络计算机中上,彼此之间仅仅通过消息传递进行通信和协调的系统。计算机系统从集中式到分布式的变革伴随着包括分布式网络、分布式.
2020-09-15 14:43:28 447
原创 不支持原子性的 Redis 事务也叫事务吗?
文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱假设现在有这样一个业务,用户获取的某些数据来自第三方接口信息,为避免频繁请求第三方接口,我们往往会加一层缓存,缓存肯定要有时效性,假设我们要存储的结构是 hash(没有String的’SET anotherkey “will expire in a minute” EX 60’这种原子操作),我们既要批量去放入缓存,又要保证每个 key 都加上过期时间(以防 key 永不过期),这时候事务操作是个比较好的选择为了确保.
2020-09-07 10:07:36 384
原创 终于知道Kafka为什么这么快了!
Kafka 为什么能那么快 | Kafka高效读写数据的原因无论 kafka 作为 MQ 也好,作为存储层也罢,无非就是两个功能(好简单的样子),一是 Producer 生产的数据存到 broker,二是 Consumer 从 broker 读取数据。那 Kafka 的快也就体现在读写两个方面了,下面我们就聊聊 Kafka 快的原因。1. 利用 Partition 实现并行处理我们都知道 Kafka 是一个 Pub-Sub 的消息系统,无论是发布还是订阅,都要指定 Topic。Topic 只是一个
2020-08-14 13:56:23 188
原创 10种常见OOM分析——手把手教你写bug
谈谈你对 OOM 的认识点赞+收藏 就学会系列,文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取在《Java虚拟机规范》的规定里,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生 OutOfMemoryError 异常的可能。本篇主要包括如下 OOM 的介绍和示例:java.lang.StackOverflowErrorjava.lang.OutOfMemoryError: Java heap spacejava.lang.OutOfMem
2020-07-21 10:10:22 572
原创 2万字长文包教包会 JVM 内存结构
写这篇的主要原因呢,就是为了能在简历上写个“熟悉JVM底层结构”,另一个原因就是能让读我文章的大家也写上这句话,真是个助人为乐的帅小伙。。。。嗯,不单单只是面向面试学习哈,更重要的是构建自己的 JVM 知识体系,Javaer 们技术栈要有广度,但是 JVM 的掌握必须有深度点赞+收藏 就学会系列,文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取直击面试反正我是带着这些问题往下读的说一下 JVM 运行时数据区吧,都有哪些区?分别是干什么的?Java 8 .
2020-07-20 09:31:56 258 1
原创 你有认真了解过自己的“Java对象”吗?
对象在 JVM 中是怎么存储的对象头里有什么?文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,有你想要的。作为一名 Javaer,生活中的我们可能暂时没有对象,但是工作中每天都会创建大量的 Java 对象,你有试着去了解下自己的“对象”吗?我们从四个方面重新认识下自己的“对象”创建对象的 6 种方式创建一个对象在 JVM 中都发生了什么对象在 JVM 中的内存布局对象的访问定位一、创建对象的方式使用 new 关键字这是创建一个对象最通用、常规.
2020-07-13 17:47:38 330
原创 Java 集合面试,你肯定也会被问到这些
文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱作为一位小菜 ”一面面试官“,面试过程中,我肯定会问 Java 集合的内容,同时作为求职者,也肯定会被问到集合,所以整理下 Java 集合面试题说说常见的集合有哪些吧?HashMap说一下,其中的Key需要重写hashCode()和equals()吗?HashMap中key和value可以为null吗?允许几个为null呀?HashMap线程安全吗?ConcurrentHashMap和hashTable有什么区别.
2020-05-20 10:06:20 448
原创 阻塞队列——手写生产者消费者模式、线程池原理面试题真正的答案
文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱队列和阻塞队列队列队列(Queue)是一种经常使用的集合。Queue实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。和 List、Set一样都继承自 Collection。它和List的区别在于,List可以在任意位置添加和删除元素,而Queue 只有两个操作:把元素添...
2020-05-08 10:30:42 410
原创 一文搞定计算机网络面试题
你好,我是 π大新,目前在一家名字等于周角的公司就职,精通Java,熟悉计算机网络,,然后就~~~~在浏览器中输入一个 URL 至页面呈现,网络上都发生了什么事?能说说 ISO 七层模型和 TCP/IP 四层模型吗?TCP/IP 与 HTTP 有什么关系吗?TCP协议与UDP协议的区别?请详细介绍一下 TCP 的三次握手机制,为什么要三次握手?挥手却又是四次呢?详细讲一下TCP...
2020-04-16 10:21:38 2118
原创 GitHub 竟然有这些骚操作,真是涨姿势
GitHub,不用过多介绍。一个面向开源及私有软件项目的托管平台,因为只支持 git 作为唯一的版本库格式进行托管,故名 GitHub。作为「全球最大的程序员“交友”社区」,程序员的你,真的可以把它的使用发挥到极致吗?文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱搜索全局搜索傻瓜式搜索比如我们要学习下秒杀(seckill)代码的实现,可以在整个 Gi...
2020-04-15 09:45:17 470
原创 责任链模式——更灵活的 if else
责任链模式责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下...
2020-04-14 10:15:16 987
原创 面试必问的时间复杂度到底怎么算
高级工程师title的我,最近琢磨着好好刷刷算法题更高级一些,然鹅,当我准备回忆大学和面试时候学的数据结构之时,我发现自己对这个算法复杂度的记忆只有OOOOOooo文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和...
2020-03-26 09:59:19 1541
原创 观察者模式——从JDK到Spring
文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。微信公众号,如果一个用户订阅了某个公众号,那么便会收到公众号发来的消息,那么,公众号就是『被观察者』,而用户就是『观察者』气象站可以将每天预测到的温度、湿度、气压等以公告的形式发布给各种第三方网站,如果天气...
2020-03-23 15:50:15 283
原创 单例模式——我只有一个对象
面试官:带笔了吧,那写两种单例模式的实现方法吧沙沙沙刷刷刷~~~ 写好了面试官:你这个是怎么保证线程安全的,那你知道,volatile 关键字? 类加载器?锁机制????点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器谱单例模式——独一无二的对象单例模式,从我看 《Java 10分钟入门》那天就听过的一个设计模式,还被面试过好几次的设计...
2020-02-03 21:19:07 505
原创 设计模式前传——学设计模式前你要知道这些
为什么要学设计模式?面试经常被问到以前总觉得设计模式是“花拳绣腿”,实际开发中没什么卵用,其实有好多种设计模式自己在无形中就使用了,只是自己不知道设计模式是软件开发人员的“标准词汇”,学习设计模式是个人技术能力提高的捷径设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要”点赞+收藏 就学会系列,文章收录在 GitHub J...
2020-02-02 14:06:52 376
原创 头条一面竟然问我maven?
maven package和maven install 有什么区别?你常用的maven命令有哪些?<dependencyManagement> 是干什么的?还有用过其它构建工具吗? 和maven有啥区别?这几个问题都可以脱口而出,你应该是有点 maven 能耐,写代码去吧,不用看了点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技...
2020-01-17 16:05:28 1815
原创 Protobuf初探
Java大猿帅成长手册,GitHub JavaEgg ,N线互联网开发必备技能兵器谱Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准 ,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化(将 数据结构或对象 转换成 二进制串 的过程 )。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数...
2019-12-30 14:40:57 247
原创 深入解读Reids持久化
Redis持久化Java大猿帅成长手册,GitHub JavaEgg ,N线互联网开发必备技能兵器谱Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件)RDB(Redis DataBase)是什么...
2019-12-25 15:36:56 182
原创 Redis和其数据类型操作手册
《“Java技术员”成长手册》,包含框架、存储、搜索、优化、分布式等必备知识,都收集在GitHub JavaEgg ,N线互联网开发必备技能兵器谱,欢迎指导Redis简介Redis:REmote DIctionary Server(远程字典服务器)。Redis 是一个全开源免费(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。一般作为一个高性能的(key/v...
2019-12-18 18:33:01 228
原创 NoSQL的前世今生
NoSQL的前世今生Java大猿帅成长手册,GitHub JavaEgg ,N线互联网开发必备技能兵器谱啥玩意:NoSQL(NoSQL = Not Only SQL ),“不仅仅是SQL”,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在处理web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,...
2019-12-17 10:39:54 763 3
原创 Nginx通关攻略
Nginx 学习一路向西Java大猿帅成长手册,GitHub JavaEgg ,N线互联网开发必备技能兵器谱1. Nginx简介1.1 Nginx 概述NGINX是一个免费、开源、高性能、轻量级的HTTP和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。 Nginx 因为它的稳定性、丰富的模块库、灵活的配置和较低的资源消耗而闻名 。...
2019-12-16 15:42:58 1239 1
原创 Javaer换坑指南之Linux
Linux是一个基于POSIX和Unix的多用户、多任务、支持多线程和多CPU的性能稳定的操作系统,可免费使用并自由传播。Linux是众多操作系统之一 , 目前流行的服务器和 PC 端操作系统有 Linux、Windows、UNIX 等Linux的创始人 Linus Torvalds 林纳斯 (同时也是git的开发者)Linux主要的发行版:Ubuntu(乌班图)、RedHat(红帽...
2019-11-26 11:26:38 471
原创 浅谈消息队列及常见的消息中间件
浅谈消息队列及常见的消息中间件前言消息队列 已经逐渐成为企业应用系统 内部通信 的核心手段。它具有 低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。当前使用较多的 消息队列 有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等,而部分 数据库 如 Redis、MySQL 以及 phxsql 也可实现消息队列的功能。[外链图片转存失...
2019-11-06 16:06:37 370
原创 gRPC-Hello World
gRPC是一个高性能,跨平台的开源RPC框架,它可以通过可插拔的负载平衡、跟踪、健康检查和身份验证支持,有效地连接数据中心内部和跨数据中心的服务,支持移动端、浏览器端等各种分布式的后端服务。在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能...
2019-08-16 17:01:54 521
原创 Protocol Buffers-Hello World
Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准 ,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化(将 数据结构或对象 转换成 二进制串 的过程 )。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式protocol buffe...
2019-08-12 18:29:19 350
原创 StringUtils常用方法
下列方法都是基于org.apache.commons.lang3.3.9包下的(StringUtIils方法都是null安全的)isEmpty : 判断某字符串是否为空,为空的标准是 str==null 或 str.length()==0(变体有:isNotEmpty、isAnyEmpty、isNoneEmpty、isAllEmpty)public static boolean isEmpt...
2019-07-19 16:41:36 4030
原创 Bean配置多个生命周期机制的执行顺序
Constructor > @PostConstruct > InitializingBean > init-method
2019-07-18 15:39:53 437
转载 二、LVS负载均衡
一、负载均衡LVS基本介绍LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台We...
2019-05-17 15:11:19 210
原创 Spingboot定时任务@Scheduled
1.pom依赖:引入springboot starter包即可<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactI...
2019-05-10 16:04:01 425
原创 一、扯扯负载均衡
一、什么是负载均衡一台普通服务器的处理能力是有限的,假如能达到每秒几万个到几十万个请求,但却无法在一秒钟内处理上百万个甚至更多的请求。但若能将多台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。 负载均衡(Load Balance),是由多台服务器以对称的方式...
2019-04-10 18:29:30 247
Elasticsearc基础入门笔记
2018-08-16
spring boot2.0后配置自动执行schema.sql无效
2018-08-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人