
面试真题
文章平均质量分 63
面试真题
长空写代码
这个作者很懒,什么都没留下…
展开
-
分治 | 表达式的不同优先级
题目:给定一个含有数字和运算符的字符串,为表达式添加括号,改变其运算优先级以求出不同的结果。你需要给出所有可能的组合和结果,有效运算符号包含 + - *示例:输入:“2*3-4*5”输出:[-34,-14,-10,-10,10]解释:(2*(3-(4*5)))=-34((2*3)-(4*5))=-14((2*(3-4))*5)=-10(2*(3-4)*5)=-10(((2*3)-4)*5)=10import java.util.HashMap;import java.util.Lin原创 2020-11-26 14:24:57 · 277 阅读 · 0 评论 -
32行Java代码实现甘特图-最短工时算法
一个最短工时的算法,p1,p2,p3,p4为工作,分为10个作业,数字运算采用BigDecimal运算,防止精度丢失。代码public class Test { // p1 p2 p3 p4为工位,数组内的值为作业需要的时间 static BigDecimal[] p1 = {BigDecimal.valueOf(7.988652), BigDecimal.valueOf(8.770062), BigDecimal.valueOf(12.952448), BigDecimal.value原创 2021-05-08 00:47:24 · 726 阅读 · 0 评论 -
LRU算法 经典的垃圾回收算法
常见的垃圾回收算法原创 2020-03-16 09:54:54 · 233 阅读 · 0 评论 -
算法小抄之斐波那契数列 暴力递归+优化
暴力递归public class Test { public static void main(String[] args) { for (int i = 0; i < 20; i++) { System.out.print(test(i) + ","); } } static int test(int a) { if (a == 0 || a == 1) return 1; retur原创 2020-10-21 16:51:31 · 262 阅读 · 0 评论 -
高并发下缓存与数据库双写不一致解决方案
解决方案在高并发场景下,数据库和缓存双写不一致情况,我们可以当写入数据库后删除缓存,当查的时候先查缓存,如果缓存为空再查数据库,最后写入缓存,但是这样还是存在一个问题。如图所示,当出现这种情况时该方案就会出现问题,线程2阻塞一段时间后,又把stock=9有更新到缓存中,而数据库中的stock=10,下一次查时,会查到缓存中的stock=9方案优化对于这种问题,如果业务场景对数据一致性没有那么高,我们可以在更新缓存时设置一个过期时间,过期之后缓存也就不存在了,还有一种我们可以使用延迟双删方案。间原创 2021-02-21 23:41:48 · 534 阅读 · 0 评论 -
系统架构图
原创 2021-03-21 21:16:45 · 290 阅读 · 0 评论 -
数据库主键为什么要用递增的序列?UUID为什么不适合做主键?
数据库主键为什么要用递增的序列?顺序的ID占用的空间比随机ID占用的空间小。原因是数据库主键和索引索引使用B+树的数据结构进行存储,顺序ID数据存储在最后一个节点的最后的位置,前面的节点数据都是满的。随机ID存储时可能会出现节点分裂,导致节点多了,但是每个节点的数据量少了,存储到文件系统中时,无论节点中数据是不是满的都会占用一页的空间。所以所导致空间占用较大。UUID为什么不适合做主键?UUID值由本机Mac地址和时间戳等因素决定,UUID出现重复概率极几乎可以忽略不计。如果需求是只保证唯一性,那原创 2021-02-18 23:57:08 · 1267 阅读 · 4 评论 -
Dubbo理论
一、什么是dubbo?Apache Dubbo (incubating) |ˈdʌbəʊ| 是一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。简单来说 Dubbo 是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。官网:http://dubbo.apache.org/二、软件架构演进1.单体架构特点:所有的功能集成在一个项目工程中。所有的功能打一个war原创 2020-12-07 00:49:55 · 246 阅读 · 0 评论 -
你遇到过缓存雪崩、缓存穿透、缓存击穿么
封面图嗨~大家好啊,我是阿壮,一个后端程序员。Redis 现在成了缓存“专业户”,很多系统的缓存都在使用 Redis,Redis 中缓存雪崩、击穿、穿透也成了老生常谈的问题,今天带大家梳理一下,出现这些问题的原因和解决方案。缓存雪崩出现的原因缓存雪崩出现的原因是当某一时刻发生大规模的缓存失效的情况,比如你的缓存服务宕机了,会有大量的请求进来直接打到 DB 上,这样可能导致整个系统的崩溃。解决方案设置不同的过期时间比较简单且好理解的方案是我们在缓存的过期时间上设置一个 1-5min 的随机原创 2021-08-04 19:48:29 · 205 阅读 · 0 评论 -
搞懂这些SQL优化技巧,面试横着走
本文已收录到阿壮的个人网站: https://jonssonyan.com,欢迎评论转发。嗨,我是阿壮,一个有点意思的程序员。今天和大家分享一下SQL优化。Mysql 性能优化就算通过合理安排资源,调整系统参数使 MYSQL 运行更快,更节省资源。MYSQL 性能优化包括查询速度优化,更新速度优化,mysql 服务器优化等等。此处,介绍以下几个优化。包含,服务器硬件优化,系统配置优化,数据库结构优化,SQL 和索引优化。常见问题阻塞慢查询可以从以下几个方面入手服务器硬件优化系统配置.原创 2021-06-12 16:25:34 · 240 阅读 · 0 评论 -
面试总被问分布式ID怎么办? 甩给他
本文已收录到阿壮的个人网站:https://jonssonyan.com,欢迎评论转发。嗨,大家好,我是阿壮,一个有情怀的程序员。ID是数据的唯一标识,传统的做法是利用UUID和数据库的自增ID,在互联网企业中,大部分公司使用的都是MySQL,并且因为需要事务支持,所以通常会使用Innodb存储引擎,UUID太长以及无序,所以并不适合在Innodb中来作为主键,自增ID比较合适,但是随着公司的业务发展,数据量将越来越大,需要对数据进行分表,而分表后,每个表中的数据都会按自己的节奏进行自增,很有可能出.原创 2021-06-12 16:28:00 · 278 阅读 · 1 评论 -
一文搞懂高频面试题之限流算法
封面图嗨~大家好啊,我是阿壮,一个有情怀的程序员。面试中经常会问到限流的方法有哪些,我整理了常见的限流算法如下固定窗口限流算法滑动窗口限流算法漏桶算法令牌桶算法限流是什么?限流顾名思义就是限流流量,也叫流量控制,在系统面临高并发、大流量请求的情况下,限制新的流量对系统的访问,从而保证系统服务的安全性。举个例子,一个电影院只有 200 个座位,并出售 200 张门票,每个门票代表一个人,代表这个电影院只可以进入 200 人,多余的人就买不到票也就进不了电影院。为什么要实现限流限流起到保原创 2021-08-01 10:58:01 · 503 阅读 · 0 评论 -
惊爆!Redis竟然能做这么多?
众所周知,Redis 在我们实际开发中应用场景很多,不过大部分人只知道用来当作缓存,其实 Redis 还有很多其他的用处。原创 2023-04-06 14:06:59 · 551 阅读 · 0 评论 -
面试遇到MySQL命令行explain怎么办?
explain是MySQL自带的分析sql执行计划的命令行工具,查询到的参数有限,可以帮助我们大致的了解这条sql执行过程中的一些参数,方便我们判断这条sql的执行效率。通常买服务器比如是阿里云,在后台的控制面板会有慢查询的sql。可能会在写sql的时候会自己去测试一下sql的性能。关键是面试还会偶尔问一下,了解一下还是有必要的。具体参数的含义可以参考MySQL的官方文档MySQL5.7 explain 解释: https://dev.mysql.com/doc/refman/5.7/en/expl原创 2021-08-10 17:18:22 · 222 阅读 · 0 评论 -
MariaDB 对比 MySQL
MariaDB 开发的主要目标是减少对 MySQL 的替换,以提供更强大的功能和更好的性能。MariaDB 基于对应的 MySQL 版本。这意味着,MariaDB 版本是在 MongoDB 对应版本发布之后发布的,添加了一些 bug 修复、额外的存储引擎、新特性和性能改进。MariaDB 与 MySQL 区别IndexMariaDBMySQL1MariaDB 是纯开源的。MySQL 采用双重许可授权。2MariaDB 在 GPL、LGPL 或 BSD 下发布。MySQ转载 2021-07-08 15:10:10 · 5548 阅读 · 2 评论 -
MySQL | MySQL中的锁机制(详细)
因为Mysql支持多线程方式,所以可以同时处理多个客户端请求。有时为了防止客户端同时修改数据,我们使用锁操作完成。原创 2020-05-17 00:16:22 · 382 阅读 · 1 评论 -
超详细的MySQL数据库优化知识梳理
1 常见问题阻塞慢查询2 可以从以下几个方面入手服务器硬件优化系统配置优化数据库结构优化SQL和索引通常优化3和43 慢查询日志show variables like 'slow_query_log';# 开启慢查询日志set global slow_query_log=on;# 查询慢查询日志文件存放的位置show variables like 'slow_query_log_file';# 设置慢查询日志文件存放的位置set global slow_query_l原创 2021-02-10 15:48:36 · 221 阅读 · 1 评论 -
Redis理论
Redis基本数据类型字符串:redis没有直接使用C语言传统的字符串表示,而是自己实现的叫做简单动态字符串SDS的抽象类型。C语言的字符串不记录自身的长度信息,而SDS则保存了长度信息,这样将获取字符串长度的时间由O(N)降低到了O(1),同时可以避免缓冲区溢出和减少修改字符串长度时所需的内存重分配次数。链表linkedlist:redis链表是一个双向无环链表结构,很多发布订阅、慢查询、监视器功能都是使用到了链表来实现,每个链表的节点由一个listNode结构来表示,每个节点都有指向前置节点和后置转载 2020-10-29 22:51:35 · 144 阅读 · 0 评论 -
10月Java行情 回暖?
最近面试 Java 开发,看看行情。总的来说没有前几年好,真的是互联网寒冬,面试机会都比以前少了不少,很多互联网公司都在降本增效,只招少量的人。如果你能约到面试就好好珍惜,,能狗就狗到明年再看看,骑驴找马也未尝不可。其实不论互联网,最近几年各行各业都不好过,房价最能反映一个城市的经济状况,看看最近跌成啥样了。另外投简历的时候分享几个技巧。下面我分享一些面试经常遇到的面试题(3-5 年工作经验),希望对大家都能找到满意的工作。原创 2023-10-26 23:41:44 · 639 阅读 · 1 评论 -
最近面试遇到的高频面试题
金九银十真的不存在了么?虽说现在行情是差了一些,面试机会少了一些,但是大部分公司还是或多或少的招人,春招秋招都在进行。所以如果你还没约到面试,不要灰心,多投多面,自然而然面试的感觉也就有了。这篇文章再和大家分享一些我最近面试遇到的面试题,我面试的是 Java 开发岗,1-5 年工作经验,希望对大家有帮助,也希望大家可以找到自己满意的工作。以上就是我最近面试总结的一些常见面试题,被问到的频率还是很高的,希望对大家有帮助。原创 2023-10-26 22:46:08 · 463 阅读 · 1 评论 -
免费简历制作神器
实用工具,效率翻倍原创 2022-09-02 00:48:26 · 672 阅读 · 0 评论