
工作面试
文章平均质量分 82
分享面试经验以及相关题目
镰刀韭菜
视野,意志,品格;目标,坚持,实践
展开
-
2018年4月17日,电话面试
首先,面试官很nice,非常感谢能够有这样一次面试经历,非常感谢面试官耐心的面试,让我得到锻炼和提升的机会。下面就面试中的一些问题作出总结:1.重视数据结构和常用算法,2.学习要有明确的路线,明确的目的,3.不能简单地仅仅调用SDK,而且还要了解代码的实现原理。下面是面试的问题:自我介绍(讲自己做的一些事情)数据库(MySQL),如何设计数据库?Web框架(Spring框架,IOC)? 控制...原创 2018-04-17 21:18:35 · 339 阅读 · 0 评论 -
2018暑期实习生 58集团后台开发工程师(实习)技术一面
String、StringBuffer与StringBuilder String的内部结构是通过StringBuilder实现的。使用private final char value[]来实现字符串的存储,而且在String对象创建之后,就不能在修改此对象中存储的字符串内容,也就是说String类型是不可变的(immutable),所以经常改变内容的字符串最好不要用 String。 如...原创 2018-05-10 13:53:06 · 719 阅读 · 0 评论 -
【Java】Java开发工程师面试题目
在Java平台中,一个线程就是一个对象,Java虚拟机会为每个线程分配调用栈(Call Stack)所需的内存空间。调用栈用于跟踪Java代码(方法)间的调用关系以及Java代码对本地代码(Native Code,通常是C代码)的调用。另外Java平台中每个线程可能还有一个内核线程与之对应。原创 2022-12-22 20:55:47 · 406 阅读 · 0 评论 -
【Java面试进阶】谈一谈你是怎么做性能优化的?
谈一谈你是怎么做性能优化的?1. 性能优化的背景2. 性能优化的流程2.1 准备阶段2.2 测试阶段2.3 注意事项3. 性能瓶颈分析工具箱3.1 一张神奇的图3.2 分析CPU&线程参考资料1. 性能优化的背景性能问题,可能是由多方面的因素共同作用的结果:代码质量一般、业务发展太快、应用架构设计不合理等,这些问题处理起来一般耗时较长、分析链路复杂,大家都不愿意干,因此可能会被一些临时性的补救手段所掩盖,如:系统水位高或者单机的线程池队列爆炸,那就集群扩容增加机器;内存占用高/高峰时段 OOM,转载 2021-09-29 21:13:14 · 689 阅读 · 0 评论 -
【Java面试进阶】关于HashMap容量初始化的几个问题
关于HashMap容量初始化的几个问题size和capacityloadFactor和threshold为什么要设置HashMap的初始化容量呢?HashMap中容量的初始化HashMap中初始容量的合理值总结首先,HashMap中定义了如下变量:其中,我们主要关注:size、loadFactor、threshold、DEFAULT_LOAD_FACTOR和DEFAULT_INITIAL_CAPACITY.HashMap类中有一下主要成员变量:transient int size:记录了Ma转载 2021-09-26 20:17:53 · 809 阅读 · 0 评论 -
【Java面试进阶】谈一谈为什么使用三目运算符时必须要注意类型对齐?
谈一谈为什么使用三目运算符时必须要注意类型对齐?三目运算符自动装箱和自动拆箱问题重现原理分析小结扩展思考首先学习一下阿里巴巴的Java开发手册:这里涉及到了几个重要的概念,分别是"三目运算符",”自动拆装箱“。三目运算符在《The Java Language Specification》中,三目运算符的官方名称是 Conditional Operator ? :,一般称呼为条件表达式,详细介绍在JLS 15.25中,这里简单介绍下其基本形式和用法:三目运算符是Java语言中的重要组成部分,它也是转载 2021-09-24 19:55:22 · 520 阅读 · 0 评论 -
【Java面试进阶】为什么日期格式化时必须要使用y表示年,而不能用Y?
谈一谈为什么日期格式化时必须要使用y表示年,而不能用Y?SimpleDateFormat日期和时间模式表达方法什么是Week Year?ISO 8601一般开发中进行日期格式化的时候都会使用SimpleDateFormat工具。原文连接:https://developer.aliyun.com/article/769529SimpleDateFormatSimpleDateFormat是Java提供的一个格式化和解析日期的工具类,它允许进行格式化(日期 -> 文本)、解析(文本 ->转载 2021-09-22 13:25:27 · 722 阅读 · 0 评论 -
【Java面试进阶】谈一谈为什么禁止使用Apache BeanUtils进行属性的copy?
谈一谈为什么禁止使用Apache BeanUtils进行属性的copy?转载 2021-09-22 12:45:07 · 1026 阅读 · 0 评论 -
【Java面试进阶】谈一谈如何正确的创建一个BigDecimal?
谈一谈如何正确的创建一个BigDecimal?为什么要禁止使用double直接构造BigDecimal?为什么说double不精确?BigDecimal是如何保证精确的?标度到底是什么?BigDecimal(double)有什么问题?总结为什么要禁止使用double直接构造BigDecimal?BigDecimal(double)存在精度损失风险,在精确计算或值比较的场景中可能会导致业务逻辑异常。比如,BigDecimal g = new BigDecimal(0.1F);实际的存储值为:0.10000转载 2021-09-15 10:57:13 · 3472 阅读 · 0 评论 -
【分布式面试题】5.集群、分布式、SOA、微服务的概念及区别?
5.集群、分布式、SOA、微服务的概念及区别?集群分布式SOA微服务集群不同服务器部署同一套应用服务对外提供访问,实现服务的负载均衡或者互备(热备、主从等),指同一种组件的多个实例,形成的逻辑上的整体。单个节点可以提供完整服务。集群是物理形态。分布式服务的不同模块部署在不同的服务器上,单个节点不能提供完整服务,需要多节点协调提供服务i(也可以是相同组件部署在不同节点,单节点间通过交换信息协作提供服务),分布式强调的是工作方式。分布式系统的设计目标:可扩展性:通过对服务、存储的扩展来提高系统的处原创 2021-09-14 13:58:14 · 397 阅读 · 0 评论 -
【分布式面试题】4. 负载均衡策略有哪些?
4. 负载均衡策略有哪些?负载均衡策略1. 轮询法2. 加权轮询法3. 随机法4. 加权随机法5. 源地址哈希法6. 最小连接数法负载均衡策略1. 轮询法将请求按顺序轮流地分配到后端服务器上,它均衡地对待后端的每一台服务器,而不关心服务器实际的连接数和当前的系统负载。2. 加权轮询法不同的后端服务器可能机器的配置和当前系统的负载并不相同,因此他们的抗压能力也不相同。给配置高、负载低的机器配置更高的权重,让其处理更多的请求;而配置低、负载高的机器,给其分配低的权重,降低其系统负载,加权轮询能很好地处原创 2021-09-14 13:57:22 · 551 阅读 · 0 评论 -
【面试题】Java常见面试题集锦
Java常见面试题集锦面试题模块这份面试题,包含的内容了十九了模块:Java 基础、容器、多线程、反射、对象拷贝、Java Web 模块、异常、网络、设计模式、Spring/Spring MVC、Spring Boot/Spring Cloud、Hibernate、Mybatis、RabbitMQ、Kafka、Zookeeper、MySql、Redis、JVM 。如下图所示:具体面试题...原创 2021-09-14 13:51:10 · 3655 阅读 · 0 评论 -
【Java面试进阶】谈一谈为什么禁止使用BigDecimal的equals方法做等值比较?
谈一谈为什么禁止使用BigDecimal的equals方法做等值比较?使用equals做等值比较会怎么样?BigDecimal的equals原理是什么?为什么标度不同?如何比较BigDecimal?总结BigDecimal是一种java.math包提供的一种可以用来进行精确运算的类型。比如在进行金额表示、金额计算等场景,不能使用double、float等类型,而是要使用对精度支持的更好的BigDecimal,而且其内部自带了很多方法,如加,减,乘,除等运算方法都是可以直接调用的。当然除了需要用BigDe原创 2021-09-14 13:19:20 · 353 阅读 · 0 评论 -
【Java面试进阶】谈谈为什么禁止使用Executors创建线程池?
谈谈为什么禁止使用Executors创建线程池?什么是Executors?Executors存在什么问题?Executors为什么存在缺陷?如何正确创建线程池?首先,可以通过Executors静态工厂构建线程池,但是一般不建议这样使用。什么是Executors?Executors是一个Java中的工具类。提供工厂方法来创建不同类型的线程池。如下所示:从源码中可知,Executors的创建线程池的方法,创建出来的线程池都实现了ExecutorService接口。常用方法有以下几个:newFixe原创 2021-09-13 22:26:12 · 4809 阅读 · 0 评论 -
【Java进阶面试】如何实现一个避免消息重复消费的方案?
如何实现一个避免消息重复消费的方案?问题描述1. 发送时消费重复2. 投递时消息重复3. 负载均衡时消息重复方案1:简单的消息去重解决方案方案2:并发重复消息方案3:Exactly Once问题描述消息中间件是分布式系统常用的组件,在系统异步化、解耦以及削峰等方面有广泛的用途。通常认为消息中间件是一个可靠的组件,也就是说只要把消息投递到消息中间件,消息就不会丢失。因此可以认为:消息肯定会至少保证消息能够消费者成功消费一次,这是消息中间件最基本的特征之一。也就是AL LEAST ONCE,即消息至少会被原创 2021-09-02 00:22:07 · 2030 阅读 · 0 评论 -
【MySQL】MySQL实战:批量SQL插入性能优化
MySQL实战:批量SQL插入性能优化1. 使用一条SQL语句插入多条记录2. 在事务中进行插入处理在一些数据量较大的系统中,经常会面临的问题就是查询效率低下,数据入库时间长,特别是报表系统,每天的数据导入花费的时间可能会长达几个小时。因此优化数据库插入性能就变得很重要了。经过对MySQL InnoDB的一些性能测试,总结了一些提高insert效率的方法,分享如下:1. 使用一条SQL语句插入多条记录常见的插入语句为:insert into `insert_table` (`datetime`,原创 2021-08-26 08:13:23 · 1176 阅读 · 0 评论 -
【Spring面试题】100道Spring面试题及答案(1)
100道Spring面试题及答案1. 谈谈你理解的Spring是什么?2. Spring的优缺点是什么?3. 什么是Spring IoC容器,有什么作用?优点是什么?4. IOC的优点是什么?5. 什么是Spring的依赖注入(DI)?6. Spring IoC的实现机制是什么?7. IoC和DI的区别是什么?8. 紧耦合和松耦合有什么区别?如何编写松耦合的代码?9. Spring框架提供的容器有哪些?10. BeanFactory的作用11. BeanFactory和FactoryBean的区别12. B原创 2021-08-25 22:18:52 · 1170 阅读 · 0 评论 -
【Java基础面试】Java基础问题
Java基础问题1. == 和 equals 的区别是什么?2. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?3. final 在 java 中有什么作用?4. String 属于基础的数据类型吗?5. Java 中操作字符串都有哪些类?它们之间有什么区别?6. String str="i"与 String str=new String("i")一样吗?7. 抽象类必须要有抽象方法吗?8. 普通类和抽象类有哪些区别?9. 抽象类能使用 final 修饰吗?10. 接口原创 2021-08-24 22:47:10 · 1275 阅读 · 7 评论 -
【设计模式】常用的设计模式汇总
常用设计模式汇总单例模式观察者模式装饰者模式适配器模式工厂模式代理模式单例模式简单地说,单例模式就是一个应用程序中,某个类的实例对象只有一个,不能去new,因为构造器是被private修饰的,一般通过getInstance()方法来获取它们的实例。getInstance()返回值是一个对象的引用,并不是一个新的实例,所以不能错误地理解成多个对象。单例模式实现如下:public class Singleton { private static Singleton singleton;原创 2021-08-24 22:32:15 · 499 阅读 · 5 评论 -
【Java基础面试】Java有线程安全的set吗?
Java有线程安全的set吗?CopyOnWriteArraySet是线程安全的吗?CopyOnWriteArraySet是如何保证写入时的线程安全的?背景在多线程环境下,要使用线程安全的集合,例如ConcurrentHashMap是线程安全的HashMap,CopyOnWriteArrayList是线程安全的ArrayList。那么HashSet对应的线程安全集合是什么呢?Java有没有提供相关的默认实现呢?CopyOnWriteArraySet是线程安全的吗?在Java的concurrent包中原创 2021-08-24 11:39:07 · 826 阅读 · 0 评论 -
【Java基础面试】说一说Java反射机制的应用场景
说一说Java反射机制的应用场景反射的优势和劣势反射的应用场景JDBC的数据库连接Spring框架的使用背景:实体类中的set方法涉及到了业务逻辑,因此在给对象赋值的过程中不能使用set方法,为了实现功能,采用了反射的机制给对象属性赋值。因此下面分为两点对反射机制进行分析:反射的优势和劣势反射的应用场景反射的优势和劣势实际上,反射机制就是上帝模式。如果说方法的调用是Java正确的打开方式,那么反射机制就是上帝偷偷开的后门,只要存在对应的class,一切都能够被调用。静态和动态的概念:静原创 2021-08-24 09:11:24 · 367 阅读 · 0 评论 -
【分布式面试题】3.简述zab协议
3. 简述zab协议概述消息广播崩溃恢复Zookeeper概述zab协议是为分布式协调服务Zookeeper专门设计的一种支持崩溃恢复的原子广播协议,实现分布式数据一致性。所有客户端的请求都写入到Leader进程中,然后由Leader同步到其他节点,称为Follower。在集群数据同步的过程中,如果出现Follower节点崩溃或者Leader进程崩溃时,都会通过zab协议来保证数据一致性。zab协议包括两种基本的模式:崩溃恢复和消息广播消息广播集群中所有的事务请求都由Leader节点来处理,其他服原创 2021-08-20 20:44:42 · 358 阅读 · 0 评论 -
【分布式面试题】2. 简述raft算法
2.简述raft算法简述raft算法概念何时出发选举?选举过程日志序列同步安全原则简述raft算法概念分布式一致性算法:raft会先选举出leader,leader完全负责replicated log的管理。leader负责接受所有客户端更新请求,然后复制到follower节点,并在“安全”的时候执行这些请求。如果leader故障,followers会重新选举出新的leader三种状态:一个节点任一时刻处于三者之一leader:处理所有的客户端请求(如果客户端将请求发给了Follower原创 2021-08-20 18:40:43 · 947 阅读 · 0 评论 -
【分布式面试题】1. 简述paxos算法
1. 简述paxos算法简述paxos算法简述paxos算法Paxos算法解决的是一个基于消息传递来解决分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据框系统中,如果各个节点的初始状态一致,每个节点执行相同的操作序列,那么他们最后能够得到一个一致的状态。为了保证每个节点执行相同的操作序列,需要在每一条指令上执行一个“一致性算法”,以保证每个节点看到的指令一致。paxos协议用来解决的问题可以用一句话来简化:将所有节点都写入同一个值,且被写入后不再更改。在Paxos算法中,有三原创 2021-08-19 18:27:10 · 881 阅读 · 0 评论 -
【面试题】某司社招面试题目整理及答案
阿里巴巴社招面试题目整理及答案原创 2020-09-29 16:46:00 · 950 阅读 · 0 评论 -
【面试题】如何从100亿个URL中找出相同的URL?
如何从100亿个URL中找出相同的URL?题目描述初步分析解题思路方法总结原文地址:8rr.co/FR7V题目描述给定 a、b 两个文件,各存放 50 亿个 URL,每个 URL 各占 64B,内存限制是 4G。请找出 a、b 两个文件共同的 URL。初步分析每个URL占64B,那么50亿个URL占用的空间大小约为320GB。5,000,000,000×64B≈5GB×64=320GB5, 000, 000, 000 \times 64B ≈ 5GB \times 64 = 320GB5,000转载 2020-09-02 17:11:03 · 1362 阅读 · 0 评论 -
【面试】网易游戏面试题目整理及答案(5)
网易游戏面试题目整理及答案(5)操作系统Linux部分框架其他操作系统编译原理相关从用户态到内核态的汇编级过程中断以及系统调用全局变量和局部变量都保存在哪儿LRU(O(1)时间复杂度)进程间通信如何从用户态到内核态介绍进程跟线程,进程之间的通信Linux部分部署项目怎么写shell脚本查看进程用什么指令(jps?)jps是java进程的,非java进程用什么看?Linux系统,怎么找到某个端口运行的程序的绝对地址ps指令软连接和硬链接,linux 目录默认inod原创 2020-07-06 16:30:31 · 3217 阅读 · 0 评论 -
【面试】网易游戏面试题目整理及答案(4)
网易游戏面试题目整理及答案(3)算法部分操作系统Linux部分框架其他算法部分堆排序求二叉树深度Top k问题二叉树的镜像如何判断链表有没有环如何用两个栈表示一个队列不用中间元素交换两个元素的方法,(答:使用异或),又问:不使用异或有什么缺点。。亿级元素top k,答:k大小小顶堆,又问:如何多线程改进递归翻转链表多个有序数组合并为一个顺时针打印数组写二分查找(写完了问为什么要left+(right-left)/2(答怕溢出)i原创 2020-06-29 13:51:56 · 2725 阅读 · 0 评论 -
【面试】网易游戏面试题目整理及答案(3)
网易游戏面试题目整理及答案(3)数据库部分MySQL 事务MySQL锁机制数据库部分MySQL 事务事务的隔离级别有哪些?MySQL的默认隔离级别是什么?什么是幻读,脏读,不可重复读呢?MySQL事务的四大特性以及实现原理。MVCC熟悉吗,它的底层原理?答:MySQL 事务主要用于处理操作量大,复杂度高的数据。事务是由一组SQL语句组成的逻辑处理单元,具有4个属性,通常简称为事务的ACID属性。A (Atomicity) 原子性:整个事务中的所有操作,要么全部完成,要么全部不完成,不可能停滞原创 2020-06-15 18:20:26 · 5502 阅读 · 0 评论 -
【面试】网易游戏面试题目整理及答案(2)
网易游戏面试题目整理及题目(2)Java部分数据库部分算法部分操作系统Linux部分框架其他参考资料Java部分多线程安全问题答:首先,了解什么情况下会产生线程安全问题?同时满足以下两个条件时:①多个线程在操作共享的数据。②操作共享数据的线程代码有多条。当一个线程在执行操作共享数据的多条代码过程中,其他线程参与了运算,就会导致线程安全问题的产生。解决思路:将多条操作共享数据的线程代码封装起来,当有线程在执行这些代码的时候,其他线程不可以参与运算。当前线程把这些代码都执行完毕后,其他线程才可以原创 2020-06-09 19:50:18 · 4405 阅读 · 0 评论 -
【面试】网易游戏面试题目整理及答案(1)
网易游戏面试题目整理及题目Python部分Java部分数据库部分算法部分计算机网络操作系统Linux部分框架其他参考资料Python部分迭代器生成器,生成器是如何实现迭代的?答:迭代器iterator:迭代器就是实现了迭代方式的容器,iterable对象一般只能按默认的正序方式进行迭代,你可以通过为其添加__next__()/next()方法来定制不同的迭代方式,这样通过next方法封装起来的迭代对象生成器就被称作迭代器。与iterable相比iterator多了一个next()方法,next()方原创 2020-06-08 22:56:58 · 8439 阅读 · 0 评论 -
【面试】网易游戏社招一面总结
网易游戏社招一面总结基本情况问题列表Java部分Python部分Linux部分计算机网络部分基本情况面试岗位:Python游戏开发岗面试方式:视频面试面试官数量:2人面试感觉:首先,开场之后,无需自我介绍,从简历开始问,这一点很有技术范儿。面试过程中,两位面试官交叉提问,并且在回答过程中根据技术点随时打断补充提问,很像是一个开发小组在就有个问题讨论。另外在回答问题过程中,可能有些问题回答不上来,面试官还能够给与一点提示,这一点感觉非常好。最后,虽然自己水平很差,但是能够有这样的交流,收获满满,也非原创 2020-05-15 20:05:08 · 4338 阅读 · 0 评论 -
【面试】阿里巴巴Java经典面试题整理及答案详解
Java开发工程师-面试题目集锦Java的数据结构有哪些?线性表,链表,栈,队列,图,树什么是OOP?面向对象编程面向对象编程的原则有哪些?单一职责原则:一个类中应该是一组相关性很高的函数、数据的封装! 开闭原则;对扩展开放,对修改关闭,即在设计一个模块的时候,应当使这个模块可以在不被修改的前提下被扩展。 里氏替换原则:所有引用基类的地方必须能透明地使用其子类的对象。只...原创 2020-03-05 13:54:35 · 3356 阅读 · 0 评论