26年2月北京500人公司 Java开发工程师 一面

  1. Java面向对象思想是什么? 回答:面向对象是把构成问题的事务分解成各个对象,建立对象的目的不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展,可以设计出低耦合的系统。

  2. Java的多态怎么理解?举个例子 回答:多态是同一对象在不同场景下表现出不同形态,包括编译时多态(方法重载)和运行时多态(方法重写)。例如父类引用指向子类对象,调用方法时执行子类实现;再如方法重载,同一个方法名但参数列表不同,编译时根据参数类型决定调用哪个方法。

  3. instanceof关键字的作用是什么? 回答:instanceof是Java中的一个双目运算符,用来测试一个对象是否为一个类的实例。用法为:obj instanceof Class,当obj为Class的对象,或者是其直接/间接子类,或者是其接口的实现类时,返回true,否则返回false。编译器会检查obj是否能转换成右边的class类型,如果不能则直接报错。

  4. Hashcode的作用是什么? 回答:Java的集合有两类,一类是List,另一类是Set。Hashcode的作用是提高集合中查找元素的效率。Hash算法将集合分成若干个存储区域,每个对象可以计算出一个哈希码,根据哈希码可以确定该对象应该存储的区域。当集合要添加新元素时,先调用hashCode方法定位位置,如果该位置有元素则调用equals比较,相同就不存,不相同就散列到其他地址。这样实际调用equals方法的次数就大大降低了。

  5. MySQL中内连接和外连接的区别是什么? 回答:内连接(INNER JOIN)返回两个表中满足连接条件的记录,忽略不

剩余60%内容,订阅专栏后可继续查看/也可单篇购买

本专栏在精不在多,内容分为八股文、大厂真实面经,面试通过后将offer和面试题私发给我,可退还专栏的收益部分费用。欢迎大家共建专栏

全部评论

相关推荐

04-10 17:12
已编辑
重庆大学 Java
1.自我介绍2.如何学习java,是通过学校课程学习还是自学的?3.用户登录校验是如何做的?4.你说用redis对活跃的token实现刷新过期时间,这个功能你是如何实现的?5.频繁的时间戳更新会不会导致redis大量的内存被占用,想别的方案来解决6.redis对key值的过期策略是怎样的?8.介绍你的缓存更新策略吧(我提到redis中的cache Aside策略,补充了消息广播实现本地缓存数据一致性,利用kafka中不同消费组订阅同一topic实现消息广播,某一节点删除缓存时,其他节点都删除本地缓存,从而实现分布式系统本地缓存的一致性)7.JVM中垃圾回收(GC)的策略是怎样的?9.你使用了Redisson实现分布式锁,请解释一下Redisson分布式锁中的看门狗机制10.解释一下Mybatis如何防止sql注入,MybatisPlus中是如何将方法映射为sql的11.你使用了Shardingsphere进行分库分表,那Shardingsphere的底层是怎样的呢11.再介绍一下你项目中的亮点吧(定时对账:在kafka宕机时进行埋点,记录日志。恢复后回滚到之前的库存状态;延迟队列:使用Redisson的延迟队列,为业务设定一个延迟的时间执行)12.你另外一个项目中的Agent是如何设计的13.详细讲讲离线上传中长文本如何分块,固定分块有什么劣势,你如何设计分块方案(面试官补充了语义网络的概念)算法LRU职业规划方向反问面试官人很好,比较看重你实际项目开发中对使用过的技术栈的底层原理的理解以及业务的设计
查看16道真题和解析
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务