Java面试题

  1. 重写equals方法时,必须同时重写hashCode方法?

○是√

○否

  1. 当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B?

○是

○否√

  1. 下列哪个对象不可用于线程同步的实现?

○ReentrantLock

○Semaphore

○CountdownLatch

○FutureTask

○ThreadLocal√

  1. 下面哪个Set的插入和遍历顺序是一致的?

○LinkedHashSet√

○HashSet

○AbstractSet

○TreeSet

  1. 以下关于final关键字说法错误的是?

○final是java中的修饰符,可以修饰接口、抽象类√

○final修饰的类肯定不能被继承

○final修饰的方法不能被重载

○final修饰的变量不允许被再次赋值

  1. 请选择Java线程的几种实现方式?

□Runnable接口√

□继承Thread类√

□使用Excutor框架√

□Serializable接口

□Callable接口√

  1. 关于分布式系统里保证数据一致性的描述正确的是?

□可用synchronized关键字保证

□可以基于数据的版本号来实现乐观锁√

□调整数据库事务的隔离级别为串行化√

□推荐用Redis实现分布式锁√

  1. 在下列场景下,哪种排序是最快的?

场景:在一个数组里,大多数的数据是有序的,少部分是乱序的。

□冒泡排序

□选择排序

□插入排序√

□归并排序

□快速排序

  1. Redis支持的数据结构有?

□String√

□List√

□Set√

□Hash√

□Tuple

  1. 下列哪些与数据库性能优化相关?

□拆分联合索引以应对多变的SQL√

□使用外键

□Explain (Plan) √

□将嵌套查询中返回结果集较小的查询作为子查询√

□精准查询放在前,范围查询放在后面√

□尽量避免having语句√

Leave a Reply