美团面试:String 为什么 不可变 ?(90%答错了,尼恩来一个绝世答案)
本文原文链接 45岁老架构 尼恩说在前面 在45岁老架构师 尼恩的读者交流群(100+)中,最近有小伙伴拿到了一线互联网企业如得物、阿里、滴滴、极兔、有赞、希音、百度、网易、美团、蚂蚁、得物的面试资格,遇到很多很重要的相关面试题: String 为什么 不可变? String .intern() 的原理是什么? 最...
面试官:try-catch 到底写在循环里面好,还是外面好?大部分人都会答错!
在程序开发中,异常处理是一个重要的主题,而 try-catch 语句用于捕获并处理异常。关于 try-catch 的位置问题,在面试过程中常常会成为讨论的焦点。许多人可能认为将 try-catch 放在循环外部是最佳选择,但实际上,这个问题并没有绝对的答案。 在这篇文章中,我们将探讨将 try-catch 放在循环内部与外部的优缺点,并提供相应的应用场景,以帮助你在面试中更好地...
面试官:MySQL 自增主键一定是连续的吗?大部分人都会答错!
测试环境:MySQL版本:8.0数据库表:T (主键id,唯一索引c,普通字段d)如果你的业务设计依赖于自增主键的连续性,这个设计假设自增主键是连续的。但实际上,这样的假设是错的,因为自增主键不能保证连续递增。推荐一个开源免费的 Spring Boot 实战项目:https://github.com/javastacks/spring-boot-best-practice一、自增值的属性特征:1....
面试官:@Configuration 和 @Component 注解的区别?大部分人都会答错!
一句话概括就是 @Configuration 中所有带 @Bean 注解的方法都会被动态代理,因此调用该方法返回的都是同一个实例。理解:调用@Configuration类中的@Bean注解的方法,返回的是同一个示例;而调用@Component类中的@Bean注解的方法,返回的是一个新的实例。注意:上面说的调用,而不是从spring容器中获取! 见最下面的示例 1 及 示例 2下面看看实现的细节。....
面试官:private 方法可以被代理吗?别答错了。。
JDK动态代理中:抽象类不可以被代理 没有接口不可以被代理在 Java 8之前,接口可以有常量变量和抽象方法。我们不能在接口中提供方法实现。如果我们要提供抽象方法和非抽象方法(方法与实现)的组合,那么我们就得使用抽象类。在 Java 8 接口引入了一些新功能——默认方法和静态方法。Java 9 不仅像 Java 8 一样支持接口默认方法,同时还支持私有方法jdk1.9接口中可以有static、d....
面试官:MySQL 中的 varchar 最多能存储多少个字符?大部分人都会答错。。。(3)
3.4 记录为NULL,innodb如何处理?——NULL值列表能仔细看到这里,你肯定是个高手了。如果你和我一样开发规范中不推荐NULL,一般都写NOT NULL,其实记录中就不存在NULL值列表了,也节省了空间。如果表中的某些列可能存储NULL值,把这些NULL值都放到「记录的真实数据」中存储会很占地方,所以dynamic行格式把这些值为NULL的列统一管理起来,存储到NULL值列表中,它的处....
面试官:MySQL 中的 varchar 最多能存储多少个字符?大部分人都会答错。。。(2)
3.3 varchar(M) 能存多少个字符,为什么提示最大16383?首先要理解varchar(M)的M是说字符个数,而不是字节。为什么不能varchar(20000)之类的,是20000个字符放不下吗?为什么提示只能最大16383个字符呢?这个数字是怎么算出来的?这个我就得和你好好唠嗑了!varchar是变长的,「varchar(64)」 能存放0~64个字符不等,并不一定是存了最大64个字....
面试官:MySQL 中的 varchar 最多能存储多少个字符?大部分人都会答错。。。(1)
1. InnoDB是干嘛的?InnoDB是一个将表中的数据存储到磁盘上的存储引擎。2. InnoDB是如何读写数据的?InnoDB处理数据的过程是发生在内存中的,需要把磁盘中的数据加载到内存中,如果是处理写入或修改请求的话,还需要把内存中的内容刷新到磁盘上。读写磁盘的速度非常慢,和内存读写差了几个数量级,所以当我们想从表中获取某些记录时,InnoDB存储引擎将数据划分为若干个页,以「页作为磁盘和....
面试官:为什么要尽量避免使用 IN 和 NOT IN?大部分人都会答错...
WHY?IN 和 NOT IN 是比较常用的关键字,为什么要尽量避免呢?1、效率低项目中遇到这么个情况:t1表 和 t2表 都是150w条数据,600M的样子,都不算大。但是这样一句查询 ↓select * from t1 where phone not in (select phone from t2)直接就把我跑傻了。。。十几分钟,检查了一下 phone在两个表都建了索引,字段类型也是一样的....
面试官:如果要存 IP 地址,用什么数据类型比较好?99%人都会答错!
在看高性能MySQL第3版(4.1.7节)时,作者建议当存储IPv4地址时,应该使用32位的无符号整数(UNSIGNED INT)来存储IP地址,而不是使用字符串。 但是没有给出具体原因。为了搞清楚这个原因,查了一些资料,记录下来。相对字符串存储,使用无符号整数来存储有如下的好处:节省空间,不管是数据存储空间,还是索引存储空间便于使用范围查询(BETWEEN...AND),且效率更高通常,在保存....
本页面内关键词为智能算法引擎基于机器学习所生成,如有任何问题,可在页面下方点击"联系我们"与我们沟通。
Java面试那些事儿
手把手带您学习Java,开启编程之路。
+关注