自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Spring Boot 项目总是创建失败,这几个备选方案一定要收藏

松哥这两天老遇到一个问题,用 IDEA 创建 Spring Boot 项目总是失败,搞得我很郁闷,一气之下收集了几个可用的 Spring Boot 构建接口,妈妈再也不用担心我 Spring Boot 项目创建失败了!1.青铜创建地址直接用默认的 https://start.spring.io,这个是最容易失败的了,失败最最主要的原因还是因为这是一个国外的网站,由于众所周知的原因,这些网站访问起来并不太稳定。2.白银那么国内有没有类似的网站呢?当然有!阿里巴巴就搞了一个:https://

2021-04-14 15:49:54 981

原创 源码系列-ConcurrentHashMap源码

结构JDK1.8 的实现摒弃了Segment的概念,直接用Node数组 + 链表 + 红黑树的数据结构来实现,并发控制使用Synchronized和CAS来操作,sizeCtl用来控制table的初始化和扩容的操作,不同的值有不同的含义。table未初始化时:sizeCtl = 0或者 sizeCtl= capacity; table正在初始化:sizeCtl = -1; table初始化完成:sizeCtl = thresold; 当sizeCtl = − (1 + N),表明正

2021-04-13 14:39:40 173

原创 体验一下 Go Selenium

写爬虫的朋友一定了解过浏览器自动化,比如 Selenium 或者 Puppeteer,这其中我用的比较多的是 Selenium,Selenium 是一个用于 Web 应用程序测试的工具。Selenium 测试直接运行在浏览器中,就像真正的用户在操作一样。所以我们会使用 Selenium 进行模仿用户进行操作浏览器爬取数据。之前使用的开发语言是 Python,今天我们来试试 Go selenium 吧。安装目前我正在使用的一个依赖库是 github.com/tebeka/sele…,功能较完整且处

2021-04-13 14:38:44 598

原创 银四跳槽季,我是如何让所有大厂面试官对我刮目相看的?

过去几个月里面的几家大厂,均拿到 offer,最终去了字节跳动。总体感受:每个大厂问项目问得特别细,虽然下面的面经都只用了一句话去概括,但在实际面试过程当中,项目这一块占了整个面试流程的很大一部分,相反纯技术问题的占比都比较小。 面试题几乎类似,比较简单,也很常见。(文末有参考解析)美团通常是两轮技术面试,一轮 HR 面试,第一面会有一道算法题,有的时候会有三轮技术面试。一面一道算法题,十分钟左右时间,要求能正常运行,通过给出的测试用例。 最近做过的最有挑战的项目,有哪些难点.

2021-04-12 21:03:41 188

原创 去面试不小心吊打了面试官,只因我看了这份程序员面试神技

就在昨天在Boss直聘转发超70W次的一套面试题总结,已经被各家大厂封杀,究其原因竟然是太全面了,面试基本上百分之百必中!从而导致了市场的紊乱!但是楼主已经为大家扒了下来,整理成了PDF格式!本篇将会通过各个部分的面试题涵盖知识点脑图+面试题+答案的方式为大家展示!废话不多说我们直接进入正题,下面先为大家上一个总的目录大纲!前边那些基础的部分就不为大家展示了,没有太多的必要,我们直接从多线程与高并发、JVM开始聊起!JVM操作系统多线程与高并发...

2021-04-12 21:00:59 80

原创 源码系列-HashMap源码解读(JDK1.8)

类图首先看一下Map家族四个常用的实现类,分别是HashMap、Hashtable、LinkedHashMap和TreeMap。下面我们主要解读HashMap,结合源码,从存储结构、常用方法分析、扩容以及安全性等方面深入解读HashMap的工作原理。存储结构从结构实现来讲,HashMap是数组+链表+红黑树(JDK1.8增加了红黑树部分)实现的,如下图所示:引入了红黑树是因为它查找、插入、删除的平均时间复杂度为O(log(n))。这是因为当产生hash碰撞时,数据会挂载(尾插),

2021-04-12 20:55:49 60

原创 学会这10种定时任务,我有点飘了

前言最近有几个读者私信给我,问我他们的业务场景,要用什么样的定时任务。确实,在不用的业务场景下要用不同的定时任务,其实我们的选择还是挺多的。我今天给大家总结10种非常实用的定时任务,总有一种是适合你的。一. linux自带的定时任务crontab不知道你有没有遇到过这种场景:有时需要临时统计线上的数据,然后导出到excel表格中。这种需求有时较为复杂,光靠写sql语句是无法满足需求的,这就需要写java代码了。然后将该程序打成一个jar包,在线上环境执行,最后将生成的excel文件下载到本地

2021-04-12 20:54:25 608 1

原创 一次线上OOM与RocketMQ消费者源码分析

1、背景介绍这是一个临时文件的清洗服务,主要使用消费者生产者模型。清洗方式为分段清洗,因为清洗数据量过大,所以需要对数据进行分段以方便容错处理。清洗服务模型如图: 每个消费者实例中一个消费者进程执行一段的清洗任务需要的时间大约为15分钟。生产者生产消息的速度远大于消费速度。2、问题出现清洗程序在凌晨启动,但是启动没几分钟后便收到疯狂告警: 看日志信息来说,就是疯狂GC但是回收不到垃圾,堆内存不够了。那接下来就看看JVM的监控情况:确实堆内存不够用了,那为什么不

2021-04-11 16:59:11 875

原创 Java-压缩还能这么优化!喜大普奔

背景最近在做数据导出的功能,由于要支持批量导出且导出的文件都巨大3GB起,所以决定在导出最终结果时进行压缩第一天java压缩,emmm...首先想到的就是java.util.zip下面的各种api,直接上代码:/*** 批量压缩文件 v1.0* * @param fileNames 需要压缩的文件名称列表(包含相对路径) * @param zipOutName 压缩后的文件名称**/public static void batchZipFiles(List<Strin

2021-04-11 16:56:08 605

原创 【MySQL技术内幕】:InnoDB存储引擎体系架构及关键特性

前言MySQL是目前互联网的主流数据库,而InnDB更是核心应用表的首选存储引擎。本篇重在介绍InnnoDB存储引擎的体系架构及特性。1 InnoDB的体系架构如下图所示,InnoDB有多个内存块,主要负责如下工作:维护所有进程/线程需要访问的多个内部数据结构。 缓存磁盘上的数据,方便迅速地读取,并且在对磁盘文件的数据进行修改之前在这里缓存。 重做日志(redo log)缓冲。后台线程的主要作用是负责刷新内存池中的数据,保证缓冲池中的内存缓存的是最近的数据。此外还负责将已修改的数据文件刷

2021-04-11 16:54:49 188

原创 分布式理论CAP、BASE

前言随着业务的拓展,功能越来越多。把所有的功能都放在同一个服务下,代码混合交错,造成维护困难,也容易造成某一小bug导致整个服务不可用。因此我们会按业务功能会拆分成多个不同的服务(微服务的形成),多个服务组成的系统,有个响亮的名字:分布式系统;而系统中的服务状态我们该怎么去管理,有什么相关的理论呢?分布式和集群 数据库事务 分布式事务 分布式数据一致性 CAP 理论 BASE理论关注公众号,一起交流,微信搜一搜: 潜行前行分布式和集群分布式是指通过网络连接的多个服务或组件,通过交

2021-04-10 22:16:21 61

原创 为什么 MySQL 不推荐使用 join?

1. 对于 mysql,不推荐使用子查询和 join 是因为本身 join 的效率就是硬伤,一旦数据量很大效率就很难保证,强烈推荐分别根据索引单表取数据,然后在程序里面做 join,merge 数据。  2. 子查询就更别用了,效率太差,执行子查询时,MYSQL 需要创建临时表,查询完毕后再删除这些临时表,所以,子查询的速度会受到一定的影响,这里多了一个创建和销毁临时表的过程。  3. 如果是 JOIN 的话,它是走嵌套查询的。小表驱动大表,且通过索引字段进行关联。如果表记录比较少的话,还是

2021-04-10 19:37:15 418

原创 别再纠结线程池大小/线程数量了,没有固定公式的

可能很多人都看到过一个线程数设置的理论:CPU 密集型的程序 - 核心数 + 1 I/O 密集型的程序 - 核心数 * 2不会吧,不会吧,真的有人按照这个理论规划线程数?线程数和CPU利用率的小测试抛开一些操作系统,计算机原理不谈,说一个基本的理论(不用纠结是否严谨,只为好理解): 一个CPU核心,单位时间内只能执行一个线程的指令 ** 那么理论上,我一个线程只需要不停的执行指令,就可以跑满一个核心的利用率。来写个死循环空跑的例子验证一下:测试环境:AMD Ryzen 5 3600,

2021-04-10 19:32:02 106

空空如也

空空如也

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

TA关注的人

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