# 百度面试题

高级JAVA

# 自我介绍 一面

# 对象相等的判断,equals方法实现

参考答案


public boolean equals(Object anObject) {
        if (this == anObject) {
            return true;
        }
        if (anObject instanceof String) {
            String anotherString = (String)anObject;
            int n = value.length;
            if (n == anotherString.value.length) {
                char v1[] = value;
                char v2[] = anotherString.value;
                int i = 0;
                while (n-- != 0) {
                    if (v1[i] != v2[i])
                        return false;
                    i++;
                }
                return true;
            }
        }
        return false;
    }

说明:如果两个对象等价,前提是它们一定为相同的类型

  • 判断引用值是否相等,相等即t返回rue,不用往下走;

  • 判断类型是否匹配,类型相同,长度相等,逐个比较字符是否一样,完全符合,则返回ture,一旦不对,返回false;

  • 类型不匹配,返回false。

总结

  • 引用不同,不相等;

  • 类型不同,不相等;

  • 长度不等,不相等;

  • 字符不对等,不相等;

  • 排除所有不符合的情况,即相等。

# Hashcode的作用,与 equal 有什么区别

参考答案

  • hashCode是用于查找使用的,而equals是用于比较两个对象的是否相等的。

  • hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的;

  • 如果两个对象相同,就是适用于equals(java.lang.Object) 方法,那么这两个对象的hashCode一定要相同;

  • 如果对象的equals方法被重写,那么对象的hashCode也一定要重写,并且产生hashCode使用的对象,一定要和equals方法中使用的一致,否则就会违反上面提到的第2点;

  • 两个对象的hashCode相同,并不一定表示两个对象就相同,也就是不一定适用于equals(java.lang.Object) 方法,只能够说明这两个对象在散列存储结构中,如Hashtable,他们“存放在同一个篮子里”。

# Java中CAS算法

参考答案

# G1回收器讲一下

参考答案

# HashMap,ConcurrentHashMap与LinkedHashMap的区别

参考答案

# 如何在多线程环境下使用Map

参考答案

# ConcurrentHashMap原理

参考答案

# ConcurrentHashMap如何加锁

参考答案

# 多线程并发的同步实现

参考答案

多线程并发的同步实现,有两个方法,每个方法里有a部分代码和b部分代码,我要让两个线程分别执行两个方法,并且让他们运行完a部分代码再一起向下执行,如何实现。

# TCP连接中的三次握手

参考答案

TCP连接中的三次握手和四次挥手,四次挥手的最后一个ack的作用是什么,为什么要time wait,为什么是2msl。

# aio,nio,bio的了解

参考答案

# ReetrantLock和synchronized的区别

参考答案

# Java有哪些悲观锁的实现

参考答案

# Java有哪些类实现了乐观锁

参考答案

# 谈谈Spring两大特性,AOP和IOC 二面

参考答案

# Spring的初始化过程

参考答案

# Spring bean的生命周期

参考答案

# 多个RPC请求进来,服务器怎么处理并发

参考答案

# MySQL的索引实现原理

参考答案

# 聚合索引和非聚合索引的区别

参考答案

# MySQL有哪几种join方式,底层原理是什么

参考答案

# MySQL的引擎讲一下,有什么区别,使用场景

参考答案

# 数据库的事务,四个性质说一下

参考答案

# 常见的分布式事务解决方案有哪些

参考答案

# 介绍项目,以及画相关的分布式架构图 三面

参考答案

# 数据库的备份和恢复怎么实现的

参考答案

数据库的备份和恢复怎么实现的,主从复制怎么做的,什么时候会出现数据不一致,如何解决?

# Netty的实现原理

参考答案

# 分布式下Redis如何保证线程安全

参考答案

# Redis怎么做持久化?两种持久化的区别

参考答案

# MongoDB、Hbase、Memcached、Redis的应用场景和区别

参考答案

# Docker平时怎么使用的

参考答案

# 并发mysql的场景,查询优化怎么做

参考答案

# 设计一个高并发高可用的架构方案,关键核心设计

参考答案