Java初级试题(编程、简答、选择)

编程题

  1. 求正整数n以内的不含n的所有孪生素数个数。

  2. 编写程序用递归求n的阶乘。1!+2!+…+10!。

  3. 1~100共100个自然数,随机放入一个有98个元素的数组a[98]中,找出没有被放入的那两个数。

  4. 判断一个int型数字是否是2的整数次幂。

  5. 两个字符串
    word1=“abcdefg”word2=“cde”
    如何只对word1进行修改成为word2?

简答题

  1. 二叉树的前中后序遍历。

  2. 常见的web前后端性能优化方法。

  3. 常见的web服务器攻击方式有哪些?

  4. http协议的请求方法?

  5. 从输入URL到整个网页加载完毕及显示在页面上的整个流程。

  6. 三种用例工厂模式。

  7. 有关时间复杂度。

  8. 三角形的每个顶点有一只蚂蚁,它们向任意方向行走,问不相撞的概率是多少。

OFFER大挑战选择题

第一套

  1. 哪一个传递参数有大小限制?
    A get
    B post
  2. kafka 可以脱离 zookeeper 单独使用吗?
    A 能
    B 不能
  3. spring 事务实现方式有几种?
    A 5
    B 4
    C 3
    D 2
  4. 在 hibernate 中哪一个允许映射值为 null?
    A Integer
    B int
  5. synchronized 和 ReentrantLock 哪一个必须手动获取释放锁?
    A synchronized
    B ReentrantLock
    C 都可以
    D 都不可以
  6. AIO 的作用是什么?
    A 实现了异步非堵塞
    B 想一想
    C 静一静
    D 啥也没用
  7. 使用什么关键字实现接口?
    A implements
    B extends
    C public
    D 啥也不用
  8. 哪一个不是 hibernate 工作的内容?
    A 读取并解析配置文件
    B 打开 Session
    C 创建事务
    D 渲染前端页面
  9. kafka 同时设置了 7 天和 10G 清除数据,到第五天的时候消息达到了 10G,这个时候 kafka 将如何处理?
    A 清空数据
    B 存储数据
    C 交换数据
    D 切换数据
  10. 常见的创建线程有几种方式?
    A 1
    B 3
    C 无数种
    D 你猜

第二套

  1. HashMap 和 Hashtable 哪一个是线程安全?
    A HashMap
    B Hashtable
    C 都是
    D 都不是
  2. ArrayList 和 LinkedList 哪一个是双向链表的数据结构实现?
    A ArrayList
    B LinkedList
    C 都是
    D 都不是
  3. mybatis 有几种执行器(Executor)?
    A 6
    B 4
    C 3
    D 2
  4. 两个对象的 hashCode()相同,则 equals()也一定为 true,对吗?
    A 对
    B 不对
  5. 哪一个不是 spring 的主要模块?
    A spring core
    B spring dao
    C spring web
    D GitChat
  6. 下列哪一个是后进先出检索元素?
    A 队列
    B 栈
  7. 下列哪一个不是 final 在 Java 中的作用?
    A 不能被继承
    B 不能被重写
    C 能被修改
    D 不能被修改
  8. rabbitmq 有几种重要的组件?
    A 6
    B 2
    C 1
    D 0
  9. kafka 可以脱离 zookeeper 单独使用吗?
    A 能
    B 不能
  10. mysql 问题排查都有几种手段?
    A 6
    B 4
    C 3
    D 2

第三套

  1. 常见的创建线程有几种方式?
    A 1
    B 3
    C 无数种
    D 你猜
  2. spring 支持几种 bean 的作用域?
    A 5
    B 4
    C 3
    D 2
  3. mysql 的事务隔离在文件里的配置值有几种?
    A 6
    B 4
    C 3
    D 2
  4. rabbitmq 避免消息丢失有几种方法?
    A 6
    B 4
    C 3
    D 2
  5. 动态代理是什么?
    A 运行时动态生成代理类
    B 动态查询电话
    C 动态注解对象
    D 动态测试
  6. try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
    A 会
    B 不会
  7. redis String类型的 value 值最大可以存储多少 MB?
    A 4086
    B 512
    C 128
    D 52
  8. rabbitmq 有几种重要的组件?
    A 6
    B 2
    C 1
    D 0
  9. 和 volatile 哪一个不能保证原子性?
    A synchronized
    B volatile
    C 都可以
    D 都不可以
  10. mybatis 有几种执行器(Executor)?
    A 6
    B 4
    C 3
    D 2

知识点

1. Spring中Bean的五个作用域

当通过spring容器创建一个Bean实例时,不仅可以完成Bean实例的实例化,还可以为Bean指定特定的作用域。Spring支持如下5种作用域:

  • singleton:单例模式,在整个Spring IoC容器中,使用singleton定义的Bean将只有一个实例
  • prototype:原型模式,每次通过容器的getBean方法获取prototype定义的Bean时,都将产生一个新的Bean实例
  • request:对于每次HTTP请求,使用request定义的Bean都将产生一个新实例,即每次HTTP请求将会产生不同的Bean实例。只有在Web应用中使用Spring时,该作用域才有效
  • session:对于每次HTTP Session,使用session定义的Bean豆浆产生一个新实例。同样只有在Web应用中使用Spring时,该作用域才有效
  • globalsession:每个全局的HTTP Session,使用session定义的Bean都将产生一个新实例。典型情况下,仅在使用portlet context的时候有效。同样只有在Web应用中使用Spring时,该作用域才有效

2. Mysql的事务隔离级别有几种

隔离性(Isolation)
如果没有隔离性会发生如下问题:

  1. 数据丢失:A事务撤销时,把已经提交的B事务的更新数据覆盖了。
  2. 脏读:脏读主要是读取到了其他事务的数据,而其他事务随后发生回滚。MySQL通过三级封锁协议的第二级解决了脏读,在一级的基础上,要求读取数据 A 时必须加 S 锁,读取完马上释放 S 锁。
  3. 不可重复读:不可重复读是读取到数据后,随后其他事务对数据发生了修改,无法再次读取。MySQL通过三级封锁协议的第三级解决了不可重复读。在二级的基础上,要求读取数据 A 时必须加 S 锁,直到事务结束了才能释放 S 锁。
  4. 幻读:幻读是读取到数据后,随后其他事务对数据发生了新增,无法再次读取。在InnoDB引擎Repeatable Read的隔离级别下,MySQL通过Next-Key Lock以及MVCC解决了幻读,事务中分为当前读以及快照读。
    • 快照读(snapshot read) ——通过MVCC来避免幻读
    • 简单的select操作(不包括 select … lock in share mode, select … for update)
    • 当前读(current read) ——通过Next-Key Lock 来避免幻读 Next-Key Lock即间隙锁(Gap Lock)+行锁 (Record Lock);

3. RabbitMQ避免消息丢失的方法有几种?

RabbitMQ一般情况很少丢失,但是不能排除意外,为了保证系统高可用,我们必须作出更好完善措施,保证系统的稳定性。

  1. 消息持久化
  2. ACK确认机制
  3. 设置集群镜像模式
  4. 消息补偿机制
发布了144 篇原创文章 · 获赞 117 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41306364/article/details/103025381