java面试
文章平均质量分 73
Dream_xun
越努力,越幸运!
展开
-
15个常用的sql优化技巧
原文:https://www.cnblogs.com/12lisu/p/15535940.html作者:苏三说技术前言sql优化是一个大家都比较关注的热门话题,无论你在面试,还是工作中,都很有可能会遇到。如果某天你负责的某个线上接口,出现了性能问题,需要做优化。那么你首先想到的很有可能是优化sql语句,因为它的改造成本相对于代码来说也要小得多。那么,如何优化sql语句呢?这篇文章从15个方面,分享了sql优化的一些小技巧,希望对你有所帮助。1. 避免使用select很多时候,我们写sql语原创 2022-03-15 01:00:50 · 36741 阅读 · 10 评论 -
判断一个数是否为整数、正整数、小数通用算法
思路用它本身减去它保留0位小数(建议不要四舍五入,直接舍去小数部分)的值和0去比较如果大于0,说明这个数是小数如果等于0,说明这个数是整数不会出现小于0的情况。如果还要判断是否是正整数,那么在加一个条件,这个数是否大于0public class TestMain { public static void main(String[] args) { BigDecimal a = BigDecimal.valueOf(12.00); BigDecimal b原创 2022-01-07 15:35:20 · 6967 阅读 · 0 评论 -
一文搞懂双亲委派原则
原文链接:https://mp.weixin.qq.com/s/6nJ-6cDLW6TfysWV5ZB3Iw作者:三太子敖丙大家在开发过程中经常碰到一些类加载的问题,比如:ClassNotFoundExceptionCause:java.lang.ClassNotFoundException:Cannotfindclass:com.cc.ANoClassDefFoundErrorCause:java.lang.NoClassDefFoundError:Cannot...原创 2021-03-21 15:26:37 · 693 阅读 · 0 评论 -
缓存双写一致性问题:先操作数据库还是先操作缓存?
原文连接:https://mp.weixin.qq.com/s/2ZvPScfbpl85ZGCDbifY1w作者:捡田螺的小男孩前言在分布式系统中,缓存和数据库同时存在时,如果有写操作,先操作数据库还是先操作缓存呢?本文将分5种方案展开阐述对比,谢谢阅读~github地址,衷心感谢每一颗star❝https://github.com/whx123/JavaHome❞缓存维护方案一如果是一读(线程B)一写(线程A)操作,「先操作缓存,再操作数据库」。流程图如下所示:原创 2020-11-04 00:21:56 · 346 阅读 · 0 评论 -
白话讲线程池原理
原文连接:https://mp.weixin.qq.com/s/2dlWmcE3YZkPtU7mzTk8wQ作者:捡田螺的小男孩本文以程序员做需求的例子,比喻线程池的工作过程。以故事白话的方式展开,跟大家阐述线程池工作原理,以方便大家更好理解线程池,谢谢阅读哈~ 什么是线程池? 什么是核心线程? 什么是阻塞队列? 什么是非核心线程? 什么是空闲存活时间? 什么是饱和策略? 线程池工作原理流程图&源码概览 github地址,原创 2020-11-03 23:37:54 · 155 阅读 · 0 评论 -
深入分析ReentrantLock理解AQS同步队列的细节和设计模式
参考文章:https://www.jianshu.com/p/baeb74654df8https://blog.csdn.net/l18848956739/article/details/98037356ReentrantLock介绍ReentrantLock 叫互斥锁也叫可重入锁,ReentrantLock采用内部自己定义的一个抽象静态类Sync 来管理锁,ReentrantLock 内部通过继承Sync抽象静态类,实现了两种锁一种是公平锁,一种是非公平锁,Sync是如何来管理锁,这里就会涉及原创 2020-09-27 01:39:28 · 651 阅读 · 0 评论 -
再有人问你什么是ThreadLocal,就把这篇文章甩给他!
原文链接:https://blog.csdn.net/Lammonpeter/article/details/105175187作者:itlemon前言ThreadLocal是JDK1.2提供的一个工具,它为解决多线程程序的并发问题提供了一种新的思路。使用这个工具类可以很简洁地编写出优美的多线程程序,解决共享参数的频繁传递与线程安全等问题。如果开发者掌握了ThreadLocal用法与原理,那么使用起来将得心应手,那么请跟随本文的节奏,拨开迷雾,探究本质吧!本文将带领读者深入理解Threa原创 2020-08-10 01:24:53 · 180 阅读 · 0 评论 -
分布式id生成策略,我和面试官扯了一个半小时
原文链接:https://mp.weixin.qq.com/s/yIE5NOj7nqCu2AnWCte1Rg作者:非科班的科班面试官:小伙子,你还记得我吗?我是上次面试你的那个面试官。我心想:我去,怎么会不记得,我又不是青年痴呆,上次害我画了那么多图,还使劲敲了一个多钟的电脑,满脑子都是你的阴影。我:记得记得,您好,很高兴能通过二面,能够继续和您交流技术问题。我违背良心说这话真的好吗,姑且就那么一次吧,面个试都那么难?面试官又快速的扫了一下的简历,可能上次看过一次,都快过了一个多星.原创 2020-07-18 17:36:21 · 243 阅读 · 0 评论 -
全网最全 | MySQL EXPLAIN 完全解读
原文链接:https://mp.weixin.qq.com/s/dy6zLFpPrOCyp4yBcM2DZg作者:IT牧场EXPLAIN作为MySQL的性能分析神器,读懂其结果是很有必要的,然而我在各种搜索引擎上竟然找不到特别完整的解读。都是只有重点,没有细节(例如type的取值不全、Extra缺乏完整的介绍等)。所以,我肝了将近一个星期,整理了一下。这应该是全网最全面、最细致的EXPLAIN解读文章了,下面是全文。文章比较长,建议收藏。TIPS本文基于MySQL 8.0编写,理论原创 2020-07-18 17:01:39 · 431 阅读 · 0 评论 -
看懂这6张图,理解JVM内存布局就没问题了!
原文链接:https://segmentfault.com/a/1190000021424972作者:Richard_Yi 转载于:https://mp.weixin.qq.com/s/7bGtO9NfakQNHHcT26Ia7Q目录:目录前言概览一、Heap (堆区)1.1 堆区的介绍1.2 堆区的调整1.3 堆的默认空间分配1.4 堆溢出 演示创建一个新对象 内存分配流程二、Metaspace 元空间三、 Java 虚拟机栈1. 局部变量表.原创 2020-05-18 01:50:09 · 540 阅读 · 0 评论 -
Java Hashmap基础知识。学习笔记
一.Hashmap基础知识1.Hashmap的底层数据结构是什么?数组+链表+红黑树(jdk>1.7,产生hash冲突时,链表长度>=8时候,链表转换为红黑树)2.为啥使用hash值计算索引?Put一个key,value的时候:根据key计算出一个hash散列值作为map中的元素下标,Index=hash%length 得到下标,这样查找非常快3.什么是hash...原创 2020-04-18 22:44:29 · 324 阅读 · 0 评论 -
Spring事务失效的八大原因,吊打面试官
原文链接:https://blog.csdn.net/youanyyou/article/details/103871083事务失效的八大原因:1、数据库引擎不支持事务2、没有被 Spring 管理3、方法不是 public 的4、自身调用问题5、数据源没有配置事务管理器6、不支持事务7、异常被吃了8、异常类型错误总结1、数据库引擎不支持事务这...原创 2020-01-23 11:13:43 · 539 阅读 · 0 评论 -
nginx 反向代理和负载均衡策略实战案例
引言作者:glmapperhttps://juejin.im/post/5adc425f518825670f7b6fc8先来看下nginx在web服务器排名上的趋势:存在即合理,那为什么要使用nginx呢?这得看看nginx能帮我们做些什么。首先,nginx能做反向代理【关于反向代理和正向代理此处不做说明了,感兴趣的小伙伴自行谷歌】;比方说,我想在本地使用 www.gl...原创 2019-09-26 18:15:33 · 200 阅读 · 0 评论 -
分布式ID生成方案总结,分布式ID生成策略
ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是Mysql,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对数据进行分表,而分表后,每个表中的数据都会按自己的节奏进行自增,很有可能出现ID冲突。这时就需要一个...原创 2019-09-26 17:44:20 · 232 阅读 · 0 评论