金三银四跳槽季,收到美团、字节、阿里、腾讯4家大厂送来的offer,最终选择了字节(附Java面经)

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

Optimistic Lock: 乐观锁以及乐观锁的实现

什么是乐观锁乐观锁( Optimistic Lock ) 相对悲观锁而言,乐观锁假设认为数据一般情况下不会造成冲突,所以在数据进行提交更新的时候,才会正式对数据的冲突与否进行检测,如果发现冲突了,则让返回用户错误的信息,让用户决定如何去做。应用场景:为什么需要乐观锁?并发冲突在多用户环境中,在同一时间可能会有多个用户更新相同的记录,这会产生冲突。这就是著名的并发性问题。典型的冲突有:1...
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

kafka怎么保证数据消费一次且仅消费一次?使用消息队列如何保证幂等性?

精确一次处理语义(exactly onece semantic–EOS),Kafka的EOS主要体现在3个方面:1)幂等producer 保证单个分区的只会发送一次,不会出现重复消息2)事务(transation):保证原子性的写入多个分区,即写入到多个分区的消息要么全部成功,要么全部回滚3)流式EOS:流处理本质上可看成是“读取-处理-写入管道”。整个过程的操作是原子性。幂等produc...
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

2021全新版对标阿里P9级Java面试手册,已助我砍下字节、蚂蚁、滴滴三家Offer

开源一套金三银四自刷的面试题库,自己感觉还不错,也拿了几个Offer(三个大厂的,字节、蚂蚁、滴滴)!下面直接上干货哈!JVM篇(87道)JVM篇中面试题中的知识点:JVM入门级CLASS文件格式、详解CLASS加载过程、JAVA内存模型、内存屏障与JVM指令、JAVA运行时数据区和常用指令多线程与高并发篇(108道)多线程与高并发篇面试题中的知识点:多线程与高并发基础概念、JUC同步工具、同步容器、线程池、线程顺序执行控制、纤程、JMH、引用类型、Disruptor..
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

蓝桥杯基础练习 芯片测试(Java)

蓝桥杯 基础练习 芯片测试资源限制时间限制:1.0s 内存限制:512.0MB问题描述  有n(2≤n≤20)块芯片,有好有坏,已知好芯片比坏芯片多。  每个芯片都能用来测试其他芯片。用好芯片测试其他芯片时,能正确给出被测试芯片是好还是坏。而用坏芯片测试其他芯片时,会随机给出好或是坏的测试结果(即此结果与被测试芯片实际的好坏无关)。  给出所有芯片的测试结果,问哪些芯片是好芯片。...
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

设计并定义一个图形类(Shape),用主类进行访问(Java)

//自己设计并定义一个“图形类”(Shape),然后写一个主类,在其中创建Shape类//的对象并对各个属性和方法进行访问。特别要求:需要有个方法从外界接受图形的名称。//Shape类属性:name、周长perimeter、面积area//Shape类方法:计算周长count_perimeter、判断多边形是否为正多边形judge、计算面积area//Main类流程:输入图形名称 → 输...
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

E - Max Factor最大素数因数(C++)(制作最大素数因数表)(素数筛选)

题目:To improve the organization of his farm, Farmer John labels each of his N (1 <= N <= 5,000) cows with a distinct serial number in the range 1…20,000. Unfortunately, he is unaware that the co...
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

【架构知识】长文干货!带你了解高并发大对象处理

原创:小姐姐味道(微信公众号ID:xjjdog),欢迎分享,转载请保留出处。任何不保留此声明的转载都是抄袭。常年浸润在互联网高并发中的同学,在写代码时会有一些约定俗成的规则:宁可将请求拆分成10个1秒的,也不去做一个耗时5秒的请求;宁可将对象拆成1000个10KB的,也尽量避免生成一个1MB的对象。为什么?这是对于“大”的恐惧。开源一套以教学为目的系统,欢迎star:github.com/xjjdog/bcma…。它包含ToB复杂业务、互联网高并发业务、缓存应用;DDD、微服务指导。模型驱.
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

蓝桥杯基础练习 2n皇后问题(Java)(初试搜索、回溯)(含递归)

试题 基础练习 2n皇后问题资源限制时间限制:1.0s 内存限制:512.0MB问题描述  给定一个n*n的棋盘,棋盘中有一些位置不能放皇后。现在要向棋盘中放入n个黑皇后和n个白皇后,使任意的两个黑皇后都不在同一行、同一列或同一条对角线上,任意的两个白皇后都不在同一行、同一列或同一条对角线上。问总共有多少种放法?n小于等于8。  输入格式  输入的第一行为一个整数n,表示棋盘的大...
分类: 其他 发布时间: 03-23 10:25 阅读次数: 0

质因数分解(C++)(求最小质因数反求最大质因数)

P1075 质因数分解题目描述已知正整数nn是两个不同的质数的乘积,试求出两者中较大的那个质数。输入格式一个正整数nn。输出格式一个正整数pp,即较大的那个质数。输入输出样例输入 21输出 7说明/提示n <= 2*10^9NOIP 2012 普及组 第一题//直接找最大质因数会超时,所以先求出最小质因数,再用n除以这个数,//便可以得到最大质因数。(因为n规定是由两个不同的质数的乘积,//所以相除后一定为最大质因数。同理,n开方后的数不可能为整数,//所以它的
分类: 其他 发布时间: 03-23 10:24 阅读次数: 0

Leetcode70 爬楼梯(Java)(节省递归时间)(斐波那契数列应用)

题目(Leetcode70题):假设你正在爬楼梯。需要 n 阶你才能到达楼顶。每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢?注意:给定 n 是一个正整数。示例 1:输入: 2输出: 2解释: 有两种方法可以爬到楼顶。1 阶 + 1 阶2 阶示例 2:输入: 3输出: 3解释: 有三种方法可以爬到楼顶。1 阶 + 1 阶 + 1 阶1 阶 + 2 阶2 阶 + 1 阶/**用斐波那契数列更省内存和时间比如说第6阶台阶,其实可以看成是在第4阶
分类: 其他 发布时间: 03-23 10:24 阅读次数: 0

避免写出致命SQL 先来搞懂MySQL回表

1. 先来看句 SQL公司开发同事这么写查询订单的 分页语句:SELECT o1.* FROM orders o1INNER JOIN (SELECT id FROM orders WHERE sn='XD12345678' LIMIT 10000,10) o2ON o1.id = o2.id;复制代码新来的 Java 开发很纳闷,怎么这样多此一举呀!老夫莞尔一笑,先别急着下结论,让我慢慢给你解释。2. 再来对比 SQL先来看一张表 undo_log 的例子:CREATE
分类: 其他 发布时间: 03-23 10:24 阅读次数: 0

Leetcode122 买卖股票的最佳时机 II(Java)(类似微分,以小求大)

Leetcode 122. 买卖股票的最佳时机 II给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。示例 1:输入: [7,1,5,3,6,4]输出: 7解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。随后,在第 4 天(股票
分类: 其他 发布时间: 03-23 10:24 阅读次数: 0

MYSQL 分享一次生产环境的死锁事故原因和排查过程

1. 背景某日线上产生了多封报警邮件, 邮件内容均如下, 由于生产环境这里简化了表格结构如下CREATE TABLE `student` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '自增主键', `name` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '名称', `age` int(3) NOT NULL COMMENT '年龄', `sch
分类: 其他 发布时间: 03-23 10:24 阅读次数: 0

Leetcode 136. 只出现一次的数字(Java)(异或的特点)

Leetcode 136. 只出现一次的数字给定一个非空整数数组,除了某个元素只出现一次以外,其余每个元素均出现两次。找出那个只出现了一次的元素。说明:你的算法应该具有线性时间复杂度。 你可以不使用额外空间来实现吗?示例 1:输入: [2,2,1]输出: 1示例 2:输入: [4,1,2,1,2]输出: 4先排序再遍历搜索//先排序再遍历搜索class Solution { public int singleNumber(int[] nums) { Array
分类: 其他 发布时间: 03-23 10:24 阅读次数: 0

入门到上天,阿里P8大牛推荐的527页Java性能优化实践文档,一网打尽你的知识盲区

前言你如何定义性能?当被问及应用程序的性能时,大部分开发人员会假定他们需要测量某些速度值,比如每秒交易数,或者处理了多少吉字节(GB)数据……,要在尽可能短的时间里完成大量工作。如果你是应用程序架构师,那你可能会测量更广泛的指标。与按直线逻辑执行的程序相比,你或许更关注资源利用率。你可能更重视服务间连接的性能,而不是服务本身的性能。如果你要为公司做出业务决策,应用程序的性能很多时候不是用时间而是用美元来计算的。你可能会与开发人员和架构师争论资源分配,权衡 DevOps 的成本和完成公司工作所需要
分类: 其他 发布时间: 03-23 10:24 阅读次数: 0

Leetcode 168. Excel表列名称(Java)(初试 “ 动态 “ 字符串)

Leetcode 168. Excel表列名称给定一个正整数,返回它在 Excel 表中相对应的列名称。例如,1 -> A2 -> B3 -> C…26 -> Z27 -> AA28 -> AB…示例 1:输入: 1输出: “A”示例 2:输入: 28输出: “AB”示例 3:输入: 701输出: “ZY”/*类似于把10进制转换为26进制但与普通进制转换不一样的是,不能直接把A当0,在%和/运算里面需将n-1*/class
分类: 其他 发布时间: 03-23 10:23 阅读次数: 0

Leetcode 169.多数元素(摩尔投票法)

Leetcode 169.多数元素给定一个大小为 n 的数组,找到其中的多数元素。多数元素是指在数组中出现次数大于 ⌊ n/2 ⌋ 的元素。你可以假设数组是非空的,并且给定的数组总是存在多数元素。示例 1:输入: [3,2,3]输出: 3示例 2:输入: [2,2,1,1,1,2,2]输出: 2【摩尔投票法】//摩尔投票法/*因为必然有一个多数元素(数量>n/2),所以将nums数组看成是一个个人在投票,result是用于说明当前是根据哪一个人(数组哪个元素)的选择来决定赞成
分类: 其他 发布时间: 03-23 10:23 阅读次数: 0

2021金三银四499道Java面试题:JVM+分布式+算法+锁+MQ+微服务+数据库

JAVA基础JAVA中的几种基本数据类型是什么,各自占用多少字节。 String类能被继承吗,为什么。 String,Stringbuffer,StringBuilder的区别。 ArrayList和LinkedList有什么区别。 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当new的时候,他们的执行顺序。 用过哪些Map类,都有什么区别,HashMap是线程安全的吗,并发下使用的Map是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩
分类: 其他 发布时间: 03-23 10:23 阅读次数: 0

Go语言(基础)——切片

基本介绍
分类: 其他 发布时间: 03-23 10:23 阅读次数: 0