自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 MySQL 三万字精华总结 + 面试100 问,和面试官扯皮绰绰有余(收藏系列)
原力计划

写在之前:不建议那种上来就是各种面试题罗列,然后背书式的去记忆,对技术的提升帮助很小,对正经面试也没什么帮助,有点东西的面试官深挖下就懵逼了。个人建议把面试题看作是费曼学习法中的回顾、简化的环节,准备面试的时候,跟着题目先自己讲给自己听,看看自己会满意吗,不满意就继续学习这个点,如此反复,好的offer离你不远的,奥利给文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取。一、MySQL架构和其它数据库相比,MySQL有点与众不同,它的架构可以在多种不同..

2020-07-14 14:33:25 164

原创 布隆过滤器,我也是个处理过十几亿数据的人儿
原力计划

文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱什么是 BloomFilter布隆过滤器(英语:Bloom Filter)是 1970 年由布隆提出的。它实际上是一个很长的二进制向量和一系列随机映射函数。主要用于判断一个元素是否在一个集合中。通常我们会遇到很多要判断一个元素是否在某个集合中的业务场景,一般想到的是将集合中所有元素保存起来,然后通过比较确定。链表、树、散列表(又叫哈希表,Hash table)等等数据结构都是这种思路。但是随着集合中元素的增加,我们需要的.

2020-05-09 14:45:54 171

原创 面试必问的 volatile,你真的会了吗
原力计划

谈谈你对 volatile 的理解?你知道 volatile 底层的实现机制吗?volatile 变量和 atomic 变量有什么不同?volatile 的使用场景,你能举两个例子吗?文章收录在 GitHub JavaKeeper ,包含 N 线互联网开发必备技能兵器谱之前算是比较详细的介绍了 Java 内存模型——JMM, JMM是围绕着并发过程中如何处理可见性、原子性和有序性...

2020-03-25 10:56:56 124

原创 Java 内存模型都不会,就敢在简历写熟悉并发编程吗
原力计划

从 PC 内存架构到 Java 内存模型你知道 Java 内存模型 JMM 吗?那你知道它的三大特性吗?Java 是如何解决指令重排问题的?既然CPU有缓存一致性协议(MESI),为什么 JMM 还需要volatile关键字?带着问题,尤其是面试问题的学习才是最高效的。加油,奥利给!文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱前两天看到同学和我...

2020-03-20 10:37:58 144

原创 工厂模式解读
原力计划

3年工作经验是吧?你知道工厂模式分为几类吗?他们都有什么区别?那你说说你们项目中是怎么使用工厂模式的?带着问题,尤其是面试问题的学习才是最高效的。加油,奥利给!文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器谱工厂模式工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳...

2020-03-19 14:18:18 91

原创 JVM解毒——类加载子系统
原力计划

带着问题,尤其是面试问题的学习才是最高效的。加油,奥利给!点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器谱直击面试看你简历写得熟悉JVM,那你说说类的加载过程吧?我们可以自定义一个String类来使用吗?什么是类加载器,类加载器有哪些?多线程的情况下,类的加载为什么不会出现重复加载的情况?什么是双亲委派机制?它有啥优势?可以打破这...

2020-02-22 11:55:26 427 1

原创 JVM与Java体系结构

你是否也遇到过这些问题?运行线上系统突然卡死,系统无法访问,甚至直接OOM想解决线上JVM GC问题,但却无从下手新项目上线,对各种JVM参数设置一脸懵逼,直接默认,然后就JJ了每次面试都要重新背一遍JVM的一些原理概念性东西这段广告语写的好,趁着在家办公学习下JVM,先列出整体知识点点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器...

2020-02-21 11:47:16 69

原创 Java8 通关攻略

点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器谱Java8早在2014年3月就发布了,6年了,你有对它做个全面的了解吗本文是用我拙劣的英文和不要脸的这抄抄那抄抄,熬出来的,没有深究源码,只是对 Java8 有一个整体的认知,可以上手用起来,示例代码也都在github上JDK 8 有什么新功能Java 编程语言( Java Prog...

2020-01-14 16:49:01 275

原创 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 29

原创 2万字长文包教包会 JVM 内存结构

写这篇的主要原因呢,就是为了能在简历上写个“熟悉JVM底层结构”,另一个原因就是能让读我文章的大家也写上这句话,真是个助人为乐的帅小伙。。。。嗯,不单单只是面向面试学习哈,更重要的是构建自己的 JVM 知识体系,Javaer 们技术栈要有广度,但是 JVM 的掌握必须有深度点赞+收藏 就学会系列,文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,笔记自取直击面试反正我是带着这些问题往下读的说一下 JVM 运行时数据区吧,都有哪些区?分别是干什么的?Java 8 .

2020-07-20 09:31:56 74

原创 你有认真了解过自己的“Java对象”吗?
原力计划

对象在 JVM 中是怎么存储的对象头里有什么?文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱,有你想要的。作为一名 Javaer,生活中的我们可能暂时没有对象,但是工作中每天都会创建大量的 Java 对象,你有试着去了解下自己的“对象”吗?我们从四个方面重新认识下自己的“对象”创建对象的 6 种方式创建一个对象在 JVM 中都发生了什么对象在 JVM 中的内存布局对象的访问定位一、创建对象的方式使用 new 关键字这是创建一个对象最通用、常规.

2020-07-13 17:47:38 51

原创 Java 集合面试,你肯定也会被问到这些
原力计划

文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱作为一位小菜 ”一面面试官“,面试过程中,我肯定会问 Java 集合的内容,同时作为求职者,也肯定会被问到集合,所以整理下 Java 集合面试题说说常见的集合有哪些吧?HashMap说一下,其中的Key需要重写hashCode()和equals()吗?HashMap中key和value可以为null吗?允许几个为null呀?HashMap线程安全吗?ConcurrentHashMap和hashTable有什么区别.

2020-05-20 10:06:20 119

原创 阻塞队列——手写生产者消费者模式、线程池原理面试题真正的答案
原力计划

文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱队列和阻塞队列队列队列(Queue)是一种经常使用的集合。Queue实际上是实现了一个先进先出(FIFO:First In First Out)的有序表。和 List、Set一样都继承自 Collection。它和List的区别在于,List可以在任意位置添加和删除元素,而Queue 只有两个操作:把元素添...

2020-05-08 10:30:42 75

原创 一文搞定计算机网络面试题
原力计划

你好,我是 π大新,目前在一家名字等于周角的公司就职,精通Java,熟悉计算机网络,,然后就~~~~在浏览器中输入一个 URL 至页面呈现,网络上都发生了什么事?能说说 ISO 七层模型和 TCP/IP 四层模型吗?TCP/IP 与 HTTP 有什么关系吗?TCP协议与UDP协议的区别?请详细介绍一下 TCP 的三次握手机制,为什么要三次握手?挥手却又是四次呢?详细讲一下TCP...

2020-04-16 10:21:38 663

原创 GitHub 竟然有这些骚操作,真是涨姿势
原力计划

GitHub,不用过多介绍。一个面向开源及私有软件项目的托管平台,因为只支持 git 作为唯一的版本库格式进行托管,故名 GitHub。作为「全球最大的程序员“交友”社区」,程序员的你,真的可以把它的使用发挥到极致吗?文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱搜索全局搜索傻瓜式搜索比如我们要学习下秒杀(seckill)代码的实现,可以在整个 Gi...

2020-04-15 09:45:17 247

原创 责任链模式——更灵活的 if else
原力计划

责任链模式责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。属于行为型模式。在这种模式中,通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下...

2020-04-14 10:15:16 96

原创 面试必问的时间复杂度到底怎么算
原力计划

高级工程师title的我,最近琢磨着好好刷刷算法题更高级一些,然鹅,当我准备回忆大学和面试时候学的数据结构之时,我发现自己对这个算法复杂度的记忆只有OOOOOooo文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱算法(Algorithm)是指用来操作数据、解决程序问题的一组方法。对于同一个问题,使用不同的算法,也许最终得到的结果是一样的,但在过程中消耗的资源和...

2020-03-26 09:59:19 110

原创 观察者模式——从JDK到Spring
原力计划

文章收录在 GitHub JavaKeeper ,N线互联网开发必备技能兵器谱在软件系统中经常会有这样的需求:如果一个对象的状态发生改变,某些与它相关的对象也要随之做出相应的变化。微信公众号,如果一个用户订阅了某个公众号,那么便会收到公众号发来的消息,那么,公众号就是『被观察者』,而用户就是『观察者』气象站可以将每天预测到的温度、湿度、气压等以公告的形式发布给各种第三方网站,如果天气...

2020-03-23 15:50:15 69

原创 单例模式——我只有一个对象

面试官:带笔了吧,那写两种单例模式的实现方法吧沙沙沙刷刷刷~~~ 写好了面试官:你这个是怎么保证线程安全的,那你知道,volatile 关键字? 类加载器?锁机制????点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技能兵器谱单例模式——独一无二的对象单例模式,从我看 《Java 10分钟入门》那天就听过的一个设计模式,还被面试过好几次的设计...

2020-02-03 21:19:07 74

原创 设计模式前传——学设计模式前你要知道这些

为什么要学设计模式?面试经常被问到以前总觉得设计模式是“花拳绣腿”,实际开发中没什么卵用,其实有好多种设计模式自己在无形中就使用了,只是自己不知道设计模式是软件开发人员的“标准词汇”,学习设计模式是个人技术能力提高的捷径设计模式包含了面向对象的精髓,“懂了设计模式,你就懂了面向对象分析和设计(OOA/D)的精要”点赞+收藏 就学会系列,文章收录在 GitHub J...

2020-02-02 14:06:52 123

原创 头条一面竟然问我maven?

maven package和maven install 有什么区别?你常用的maven命令有哪些?<dependencyManagement> 是干什么的?还有用过其它构建工具吗? 和maven有啥区别?这几个问题都可以脱口而出,你应该是有点 maven 能耐,写代码去吧,不用看了点赞+收藏 就学会系列,文章收录在 GitHub JavaEgg ,N线互联网开发必备技...

2020-01-17 16:05:28 122

原创 Protobuf初探

Java大猿帅成长手册,GitHub JavaEgg ,N线互联网开发必备技能兵器谱Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准 ,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化(将 数据结构或对象 转换成 二进制串 的过程 )。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数...

2019-12-30 14:40:57 55

原创 深入解读Reids持久化

Redis持久化Java大猿帅成长手册,GitHub JavaEgg ,N线互联网开发必备技能兵器谱Redis 的数据全部在内存里,如果突然宕机,数据就会全部丢失,因此必须有一种机制来保证 Redis 的数据不会因为故障而丢失,这种机制就是 Redis 的持久化机制。Redis有两种持久化的方式:快照(RDB文件)和追加式文件(AOF文件)RDB(Redis DataBase)是什么...

2019-12-25 15:36:56 40

原创 Redis和其数据类型操作手册

《“Java技术员”成长手册》,包含框架、存储、搜索、优化、分布式等必备知识,都收集在GitHub JavaEgg ,N线互联网开发必备技能兵器谱,欢迎指导Redis简介Redis:REmote DIctionary Server(远程字典服务器)。Redis 是一个全开源免费(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。一般作为一个高性能的(key/v...

2019-12-18 18:33:01 76

原创 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 486 3

原创 Nginx通关攻略

Nginx 学习一路向西Java大猿帅成长手册,GitHub JavaEgg ,N线互联网开发必备技能兵器谱1. Nginx简介1.1 Nginx 概述NGINX是一个免费、开源、高性能、轻量级的HTTP和反向代理服务器,也是一个电子邮件(IMAP/POP3)代理服务器,其特点是占有内存少,并发能力强。 Nginx 因为它的稳定性、丰富的模块库、灵活的配置和较低的资源消耗而闻名 。...

2019-12-16 15:42:58 634 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 117

原创 浅谈消息队列及常见的消息中间件

浅谈消息队列及常见的消息中间件前言消息队列 已经逐渐成为企业应用系统 内部通信 的核心手段。它具有 低耦合、可靠投递、广播、流量控制、最终一致性 等一系列功能。当前使用较多的 消息队列 有 RabbitMQ、RocketMQ、ActiveMQ、Kafka、ZeroMQ、MetaMQ 等,而部分 数据库 如 Redis、MySQL 以及 phxsql 也可实现消息队列的功能。[外链图片转存失...

2019-11-06 16:06:37 167

原创 gRPC-Hello World

gRPC是一个高性能,跨平台的开源RPC框架,它可以通过可插拔的负载平衡、跟踪、健康检查和身份验证支持,有效地连接数据中心内部和跨数据中心的服务,支持移动端、浏览器端等各种分布式的后端服务。在 gRPC 里客户端应用可以像调用本地对象一样直接调用另一台不同的机器上服务端应用的方法,使得您能够更容易地创建分布式应用和服务。与许多 RPC 系统类似,gRPC 也是基于以下理念:定义一个服务,指定其能...

2019-08-16 17:01:54 192

原创 Protocol Buffers-Hello World

Google Protocol Buffer( 简称 Protobuf) 是 Google 公司内部的混合语言数据标准 ,是一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化(将 数据结构或对象 转换成 二进制串 的过程 )。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式protocol buffe...

2019-08-12 18:29:19 129

原创 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 432

原创 Bean配置多个生命周期机制的执行顺序

Constructor > @PostConstruct > InitializingBean > init-method

2019-07-18 15:39:53 128

转载 二、LVS负载均衡

一、负载均衡LVS基本介绍LVS(Linux Virtual Server)即Linux虚拟服务器,是由章文嵩博士主导的开源负载均衡项目,目前LVS已经被集成到Linux内核模块中。该项目在Linux内核中实现了基于IP的数据请求负载均衡调度方案,终端互联网用户从外部访问公司的外部负载均衡服务器,终端用户的Web请求会发送给LVS调度器,调度器根据自己预设的算法决定将该请求发送给后端的某台We...

2019-05-17 15:11:19 57

原创 Spingboot定时任务@Scheduled

1.pom依赖:引入springboot starter包即可<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactI...

2019-05-10 16:04:01 133

原创 一、扯扯负载均衡

一、什么是负载均衡一台普通服务器的处理能力是有限的,假如能达到每秒几万个到几十万个请求,但却无法在一秒钟内处理上百万个甚至更多的请求。但若能将多台这样的服务器组成一个系统,并通过软件技术将所有请求平均分配给所有服务器,那么这个系统就完全拥有每秒钟处理几百万个甚至更多请求的能力。这就是负载均衡最初的基本设计思想。​ 负载均衡(Load Balance),是由多台服务器以对称的方式...

2019-04-10 18:29:30 94

原创 map遍历

package priv.starfish.map;import java.util.HashMap;import java.util.Iterator;import java.util.Map;/** * @author: starfish * @date: 2019/3/12 11:50 * @description: 遍历map方法对比 */public class T...

2019-03-12 15:04:50 119

转载 Integer.parseInt(s)与Integer.valueOf(s)区别

一、Integer.parseInt(s)用法 String s1 = "1000"; String s2 = "1000"; int n1 = Integer.parseInt(s1); int n2 = Integer.parseInt(s2); if (n1 == n2) { System.out.println(

2019-03-12 11:09:19 406

原创 大数据概述(尚硅谷)

一.大数据概论1.1 大数据概念大数据(big data):指无法在一定时间范围内用常规软件工具进行捕捉、管理 和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程 优化能力的海量、高增长率和多样化的信息资产。主要解决,海量数据的存储和海量数据的分析计算问题。按顺序给出数据存储单位:bit、Byte、 KB、MB、GB、TB、PB、EB、ZB、YB、 BB、NB、DB。...

2019-01-28 17:08:29 924

原创 Hadoop集群搭建

1.虚拟机Vmware创建服务器2.配置域名映射vi /etc/hosts192.168.22.22 master192.168.22.23 slave1192.168.22.24 slave2设置好之后查看是否可以通过域名ping通ping slave13.配置SSH免密登录4.安装JDK​ 注意每台服务器的JDK安装路径,后边的相关JDK路径配置要设置为当前服务器的J...

2018-12-20 15:27:02 132

转载 JUC

(尚硅谷笔记)Java JUC 简介 在 Java 5.0 提供了 java.util.concurrent (简称 JUC )包,在此包中增加了在并发编程中很常用 的实用工具类,用于定义类似于线程的自定义子 系统,包括线程池、异步 IO 和轻量级任务框架。 提供可调的、灵活的线程池。还提供了设计用于 多线程上下文中的 Collection 实现等。1. volatile 关键字 内存...

2018-11-14 14:46:53 4461 3

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