自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(84)
  • 资源 (3)
  • 收藏
  • 关注

原创 写代码有这16个好习惯,可以减少80%非业务的bug

前言每一个好习惯都是一笔财富,本文整理了写代码的16个好习惯,每个都很经典,养成这些习惯,可以规避多数非业务的bug!希望对大家有帮助哈,谢谢阅读,加油哦~github地址,感谢每颗st...

2020-11-26 00:10:50 8643 14

原创 10个经典又容易被人疏忽的JVM面试题

前言整理了10个经典又容易被疏忽的JVM面试题,谢谢阅读,大家加油哈github地址,感谢每颗star❝https://github.com/whx123/JavaHome❞公众号:「捡...

2020-11-23 00:16:19 349

原创 15篇珍藏在抽屉里的原创文章~

前言大家周末愉快呀~ 最近转载比较多的原创文章(平均10+每篇),藏在公众号抽屉里已泛黄,我都拿出咯,大家可以看一下,都挺不错的。需要开白的小伙伴,可以在公众号回复开白,或者加我微信哈~...

2020-11-07 09:23:21 43

原创 MySQL中,21个写SQL的好习惯(修正版)

前言每一个好习惯都是一笔财富,本文分SQL后悔药, SQL性能优化,SQL规范优雅三个方向,分享写SQL的21个好习惯,谢谢阅读,加油哈~公众号:「捡田螺的小男孩」1. 写完SQL先ex...

2020-11-03 00:14:29 366

原创 5中方案告诉你,并发环境下,先操作数据库还是先操作缓存?

前言在分布式系统中,缓存和数据库同时存在时,如果有写操作,先操作数据库还是先操作缓存呢?本文将分5种方案阐述展开对比,谢谢阅读~github地址,衷心感谢每一颗star❝https://github.com/whx123/JavaHome❞缓存维护方案一如果是一读(线程B)一写(线程A)操作,「先操作缓存,再操作数据库」。流程图如下所示:1.线程A发起一个写操作,第一步del cache2.线程A第二步写入新数据到DB3.线程B发起一个读操作,cache miss缓存失效了。4.线

2020-10-24 19:46:08 24

原创 一文读懂线程池的工作原理(故事白话文)

前言本文以程序员做需求的例子,比喻线程池的工作过程。以故事白话的方式展开,跟大家阐述线程池工作原理,以方便大家更好理解线程池,谢谢阅读哈~什么是线程池?什么是核心线程?什么是阻塞队列?什...

2020-10-22 08:14:51 30

原创 程序员必备的基本算法:递归详解

前言递归是一种非常重要的算法思想,无论你是前端开发,还是后端开发,都需要掌握它。在日常工作中,统计文件夹大小,解析xml文件等等,都需要用到递归算法。它太基础太重要了,这也是为什么面试的...

2020-10-14 08:06:45 73

原创 一份Java程序员的珍藏书单,请您注意查收

前言不要因为迷茫,而停止了脚下的路。给大家推荐一份Java程序员必看的书单,豆瓣评分都挺不错的,每一本都值得去读,都值得去收藏,加油呀本文已经收录到github❝https://gith...

2020-09-30 17:53:29 181

原创 一次代码优化的实践(模板方法+策略+工厂方法模式)

前言好久没分享工作总结啦,今天来一份代码优化总结。用模板方法+策略+工厂方法模式优化了代码,耐心点看完,应该对大家有帮助的~本文已经收录到githubhttps://github.com/whx123/JavaHome公众号:捡田螺的小男孩优化代码前先来了解一下类似的业务场景,简言之,就是:多个商户接入我们系统,都是走一个类似的流程通过http请求出去的。优化前,每个公司对应一个句柄服务,伪代码如下:// 商户A处理句柄CompanyAHandler implements Reque

2020-09-23 07:20:39 38

原创 Java程序员必备基础:JDK 5-15都有哪些经典新特性

前言JDK 15发布啦~ 我们一起回顾JDK 5-15 的新特性吧,大家一起学习哈~本文已经收录到githubhttps://github.com/whx123/JavaHome公众号:捡田螺的小男孩Java 5 新特性1. 泛型泛型本质是参数化类型,解决不确定具体对象类型的问题。 List<String> strList=new ArrayList<String>();2. 增强循环(for-each)for-each循环简化了集合的遍历。String

2020-09-19 09:02:39 2867 8

原创 ZooKeeper的十二连问,你顶得了嘛?

前言一线大厂ZooKeeper的十二连问,你顶得了嘛?本文已经收录到github❝https://github.com/whx123/JavaHome❞1. 面试官:工作中使用过Zookeeper嘛?你知道它是什么,有什么用途呢?「小菜鸡的我:」有使用过的,使用ZooKeeper作为「dubbo的注册中心」,使用ZooKeeper实现「分布式锁」。ZooKeeper,它是一个开放源码的「分布式协调服务」,它是一个集群的管理者,它将简单易用的接口提供给用户。可以基于Zookeeper 实现诸

2020-09-01 23:52:04 71

原创 个人珍藏的80道多线程并发面试题(11-20答案解析)

前言个人珍藏的80道Java多线程/并发经典面试题,现在给出11-20的答案解析哈,并且上传github哈~https://github.com/whx123/JavaHome个人珍藏的80道多线程并发面试题(1-10答案解析)11、为什么要用线程池?Java的线程池内部机制,参数作用,几种工作阻塞队列,线程池类型以及使用场景回答这些点:为什么要用线程池?Java的线程池原理线程池核心参数几种工作阻塞队列线程池使用不当的问题线程池类型以及使用场景为什么要用线程池?线程池:一

2020-08-23 10:26:02 398

原创 Java程序员面试必备:Volatile全方位解析

前言volatile是Java程序员必备的基础,也是面试官非常喜欢问的一个话题,本文跟大家一起开启vlatile学习之旅,如果有不正确的地方,也麻烦大家指出哈,一起相互学习~1.volatile的用法2.vlatile变量的作用3.现代计算机的内存模型(计算机模型,总线,MESI协议,嗅探技术)4.Java内存模型(JMM)5.并发编程的3个特性(原子性、可见性、有序性、happen-before、as-if-serial、指令重排)6.volatile的底层原理(如何保证可见性,如何保证指令重排,内

2020-08-11 07:27:41 889 1

原创 个人珍藏的80道多线程并发面试题(1-10答案解析)

前言个人珍藏的80道Java多线程/并发经典面试题,因为篇幅太长,现在先给出1-10的答案解析哈,后面一起完善,并且上传github哈~https://github.com/whx123/JavaHome❞「公众号:捡田螺的小男孩」1. synchronized的实现原理以及锁优化?synchronized的实现原理synchronized作用于「方法」或者「代码块」,保证被修饰的代码在同一时间只能被一个线程访问。synchronized修饰代码块时,JVM采用「monitorenter

2020-07-28 22:46:20 196

原创 如何设计一个安全对外的接口?加签与验签了解一下

前言我们在求职面试中,经常会被问到,如何设计一个安全对外的接口呢? 其实可以回答这一点,加签和验签,这将让你的接口更加有安全。接下来,本文将和大家一起来学习加签和验签。从理论到实战,加油哦~密码学相关概念加签验签概念为什么需要加签、验签加密算法简介加签验签相关API加签验签代码实现公众号:捡田螺的小男孩本文已经收录到个人github,文章有用的话,可以给个star呀:https://github.com/whx123/JavaHome密码学相关概念明文、密文、密钥、加密、解密

2020-07-19 08:53:07 650 1

原创 程序员必备基础:Git 命令全方位学习
原力计划

前言掌握Git命令是每位程序员必备的基础,之前一直是用smartGit工具,直到看到大佬们都是在用Git命令操作的,回想一下,发现有些Git命令我都忘记了,于是写了这篇博文,复习一下~https://github.com/whx123/JavaHome公众号:捡田螺的小男孩文章目录Git是什么?Git的相关理论基础日常开发中,Git的基本常用命令Git进阶之分支处理Git进阶之处理冲突Git进阶之撤销与回退Git进阶之标签tagGit其他一些经典命令Git是什么在回忆Gi

2020-06-27 17:33:01 22425 24

原创 Java 异常处理的十个建议
原力计划

前言Java异常处理的十个建议,希望对大家有帮助~本文已上传github:https://github.com/whx123/JavaHome公众号:捡田螺的小男孩一、尽量不要使用e.printStackTrace(),而是使用log打印。反例:try{ // do what you want }catch(Exception e){ e.printStackTrace();}正例:try{ // do what you want }catch(Exceptio

2020-06-14 16:03:14 873

原创 50道Java集合经典面试题(收藏版)

前言来了来了,50道Java集合面试题也来啦~ 已经上传github:https://github.com/whx123/JavaHome1. Arraylist与LinkedList区...

2020-06-12 08:17:03 1910

原创 记一次接口性能优化实践总结:优化接口性能的八个建议
原力计划

前言最近对外接口偶现504超时问题,原因是代码执行时间过长,超过nginx配置的15秒,然后真枪实弹搞了一次接口性能优化。在这里结合优化过程,总结了接口优化的八个要点,希望对大家有帮助呀~数据量比较大,批量操作数据入库耗时操作考虑异步处理恰当使用缓存优化程序逻辑、代码SQL优化压缩传输内容考虑使用文件/MQ等其他方式暂存,异步再落地DB跟产品讨论需求最恰当,最舒服的实现方式嘻嘻,先看一下我们对外转账接口的大概流程吧1.数据量比较大,批量操作数据入库优化前://for循环单笔入

2020-05-31 06:16:07 906

转载 你还在为 TCP 重传、滑动窗口、流量控制、拥塞控制发愁吗?看完图解就不愁了...

正文相信大家都知道 TCP 是一个可靠传输的协议,那它是如何保证可靠的呢?为了实现可靠性传输,需要考虑很多事情,例如数据的破坏、丢包、重复以及分片顺序混乱等问题。如不能解决这些问题,也就...

2020-05-26 23:55:30 664

原创 100道MySQL数据库经典面试题解析(收藏版)
原力计划

前言100道MySQL数据库经典面试题解析,已经上传github啦https://github.com/whx123/JavaHome/tree/master/Java%E9%9D%A2%E8%AF%95%E9%A2%98%E9%9B%86%E7%BB%93%E5%8F%B7公众号:捡田螺的小男孩数据库1. MySQL 索引使用有哪些注意事项呢?可以从三个维度回答这个问题:索引哪些情况会失效,索引不适合哪些场景,索引规则索引哪些情况会失效查询条件包含or,可能导致索引失效如何字段类型

2020-05-24 12:05:20 1363

转载 面试官:不会看 Explain执行计划,简历敢写 SQL 优化?

昨天中午在食堂,和部门的技术大牛们坐在一桌吃饭,作为一个卑微技术渣仔默默的吃着饭,听大佬们高谈阔论,研究各种高端技术,我TM也想说话可实在插不上嘴。聊着聊着突然说到他上午面试了一个工作6...

2020-05-22 00:01:29 413

转载 故事:走进JVM的世界(图文并茂)

走进JVM的世界小强是一个工作3年有余的开发工程师,从他的发量你就可以知道,小强资历还尚浅。程序员惊人发量最近公司没什么事,他也开始无聊起来了。这天下午,同事们在激烈的讨论这业务,但他没...

2020-05-20 00:11:17 483

转载 图文并茂的带你彻底理解悲观锁与乐观锁

这是一篇介绍悲观锁和乐观锁的入门文章。旨在让那些不了解悲观锁和乐观锁的小白们弄清楚什么是悲观锁,什么是乐观锁。不同于其他文章,本文会配上相应的图解让大家更容易理解。通过该文,你会学习到如...

2020-05-19 07:11:51 364

原创 Java经典面试题答案解析(1-80题)

前言前几天,在茫茫的互联网海洋中寻寻觅觅,把收藏的800道Java经典面试题都发出来,有小伙伴私聊我要答案。所以感觉没有答案的面试题是没有灵魂的,于是今天先整理基础篇的前80道答案出来哈...

2020-05-18 00:04:09 2337

转载 求求你了,不要再自己实现这些逻辑了,开源工具类不香吗?

前言最近公司来了一批实习生,阿粉负责带一个。这位小师弟说实话,基本功很扎实,做事也非常靠谱,深得阿粉真传。不过最近给其 Review 代码的时候,阿粉发现小师弟有些代码逻辑有些繁琐,有些...

2020-05-17 06:37:12 358

原创 800道Java后端经典面试题,希望你找到自己理想的Offer呀~
原力计划

前言在茫茫的互联网海洋中寻寻觅觅,我收藏了800+道Java经典面试题,分享给你们。建议大家收藏起来,在茶余饭后拿出来读一读,以备未雨绸缪之需。另外,面试题答案的话,我打算后面慢慢完善在github,希望大家都能找到自己理想的offer呀。Java 基础Java 集合Java 并发 && 多线程JVM 篇数据库缓存/Redis计算机网络消息队列mybatis操作系统SpringNetty/tomcat常用Linux 命令ZooKeeperElasticse

2020-05-16 11:55:32 482

原创 收藏了800道Java后端经典面试题,分享给大家,希望你找到自己理想的Offer呀~

前言在茫茫的互联网海洋中寻寻觅觅,我收藏了800+道Java经典面试题,分享给你们。建议大家收藏起来,在茶余饭后拿出来读一读,以备未雨绸缪之需。另外,面试题答案的话,我打算后面慢慢完善在...

2020-05-16 11:42:20 333

转载 线程池运用不当的一次线上事故

在高并发、异步化等场景,线程池的运用可以说无处不在。线程池从本质上来讲,即通过空间换取时间,因为线程的创建和销毁都是要消耗资源和时间的,对于大量使用线程的场景,使用池化管理可以延迟线程的...

2020-05-15 07:37:06 426

转载 别再问我 new 字符串创建了几个对象了!我来证明给你看!

我想所有 Java 程序员都曾被这个 new String 的问题困扰过,这是一道高频的 Java 面试题,但可惜的是网上众说纷纭,竟然找不到标准的答案。有人说创建了 1 个对象,也有人...

2020-05-12 08:22:23 328

原创 给你的Java程序拍个片子吧:jstack命令解析

前言如果有一天,你的Java程序长时间停顿,也许是它病了,需要用jstack拍个片子分析分析,才能诊断具体什么病症,是死锁综合征,还是死循环等其他病症,本文我们一起来学习jstack命令...

2020-05-10 22:19:44 437

原创 夏天的风,我永远记得~

夜深了,宁静了。朝南的窗,我轻轻地打开了。夏夜的风,温柔且粘人,穿过头发,吻着耳朵,感觉特别舒服。想起了小时候,老家屋子热得发烫~我牵着母亲的大手,抱着小枕头,裹着小凉席,一步两步三步,...

2020-05-09 01:13:07 362

转载 程序员必备的网络基础

1. 请介绍一下OSI,TCP/IP,五层协议?OSI七层模型:应用层,表示层,会话层,传输层,网络层,数据链路层,物理层。TCP/IP网络四层协议:应用层、传输层、网络层、网络接口层。...

2020-05-09 01:13:07 581

转载 再有人问你为什么MySQL用B+树做索引,就把这篇文章发给她

索引这个词,相信大多数人已经相当熟悉了,很多人都知道MySQL的索引主要以B+树为主,但是要问到为什么用B+树,恐怕很少有人能把前因后果讲述的很完整。本文就来从头到尾介绍下数据库的索引。...

2020-05-07 23:22:30 418

转载 有关 HashMap 面试会问的一切

前言HashMap 是无论在工作还是面试中都非常常见常考的数据结构。比如 Leetcode 第一题 Two Sum 的某种变种的最优解就是需要用到 HashMap 的,高频考题 LRU ...

2020-05-05 23:55:37 345

原创 线上问题分析系列:数据库连接池内存泄漏问题的分析和解决方案

前言本文来自好朋友彪哥整理,实际的生产问题分析,绝对干货~一、问题描述上周五晚上主营出现部分设备掉线,经过查看日志发现是由于缓存系统出现长时间gc导致的。这里的gc日志的特点是:1.gc...

2020-05-03 20:16:08 503

原创 Java程序员必备基础结构图
原力计划

前言最近看了深入理解Java虚拟机第三版,整理了一些基础结构图,算是比较全的了,做一下笔记,大家一起学习。1.Java虚拟机运行时数据区图JVM内存结构是Java程序员必须掌握的基础。程序计数器程序计数器,可以看作当前线程所执行的字节码的行号指示器它是线程私有的。Java虚拟机栈线程私有的,生命周期与线程相同。每个方法被执行的时候都会创建一个"栈帧",用于存储局部变量表(...

2020-05-02 21:19:49 984

原创 一份热乎乎的腾讯后端面试真题
原力计划

前言最近有个好朋友换工作了,面了腾讯后端,跟他要了份面试真题,大家一起来探讨一下,哈哈~腾讯后端一面① JVM内存模型这个可以复习一下《深入理解Java虚拟机》第12章(Java内存模型和线程)哈,也可以看看我之前的文章哈JVM常见面试题解析JVM内存结构:Java内存模型图:②cms和g1有没有了解过,它们有什么区别CMS收集器是老年代的收集器,可以配合新生代的Serial...

2020-04-26 08:14:14 984 1

原创 Java程序员必备:序列化全方位解析
原力计划

前言相信大家日常开发中,经常看到Java对象“implements Serializable”。那么,它到底有什么用呢?本文从以下几个角度来解析序列这一块知识点~什么是Java序列化?为什么需要序列化?序列化用途Java序列化常用API序列化的使用序列化底层日常开发序列化的注意点序列化常见面试题一、什么是Java序列化?序列化:把Java对象转换为字节序列的过程反序列...

2020-04-20 07:36:30 850

原创 手把手教你分析Mysql死锁问题

前言前几天跟一位朋友分析了一个死锁问题,所以有了这篇图文详细的博文,哈哈~发生死锁了,如何排查和解决呢?本文将跟你一起探讨这个问题准备好数据环境模拟死锁案发分析死锁日志分析死锁结果环境准备数据库隔离级别:mysql> select @@tx_isolation;+-----------------+| @@tx_isolation |+------------...

2020-04-12 15:29:02 2638

红包随机算法实现

1.基于Java实现的红包随机分配算法, 2.先抢后抢拿到红包的大小的期望是大致相等的

2018-08-15

spring boot 调用微软小冰颜值评分

用Java(spring boot框架)实现,调用微软小冰颜值评分接口,实现上传用户头像,给颜值评分,返回分数结果。

2017-09-25

spring boot (Java)调用微软小冰实现给图片颜值评分

用Java实现的(spring boot 的demo),调用微软小冰接口(爬虫),给颜值评分。用户上传头像文件,可以得到颜值分数

2017-09-25

空空如也

空空如也

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

TA关注的人 TA的粉丝

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