美文网首页
面试-基础篇

面试-基础篇

作者: 阿亮私语 | 来源:发表于2018-03-20 09:55 被阅读318次

前言

上一篇文章我们完成了简历的编写,接下来就该进行技术了,技术这块主要会围绕如下几个方面。

1、java基础

  • 集合框架
    • list与set的区别
    • ArrayList、LinkedList、Vector的区别
    • Map、Set、List、Queue、Stack的特点与用法
    • map在for循环状态下使用remove()为何会抛出异常
    • set与list的区别
      结合使用场景去描述
    • 线程安全的集合类以及优化,cow模式
    • hashmap的实现
      此处需要深入了解源码,及hashmap多线程环境下会出现什么问题,这个几乎是必问,结合jdk1.7与jdk1.8的区别
    • hashtable与concurrenthashmap
      concurrenthashmap结合源码,jdk1.7与1.8的区别
    • 线程安全的各种集合类,cow模式等
  • final关键字,finally关键字
  • 异常的分类及处理,结合aop
  • 面向对象的五大职责
    结合项目或者某些源码进行描述
  • classloader的加载机制
  • 重写equals时为何要重写hashcode(),不重写会出现什么问题
  • java基础类型的向上转型,丢失精度问题
  • String类为何是不可变的,string的equals方法是如何实现的?
  • 接口与抽象类的区别,为何要这样设计?
  • 重载与重写
  • IO的优化,NIO
  • Object有哪些通用方法?
  • String、StringBuffer与StringBuilder的区别
  • 一致性hash
  • Java对象的生命周期

2、多线程与并发

  • wait()和notify()
  • 多线程环境下让3个线程依次按顺序执行,如何实现?
  • 创建线程的几种方式,应用场景?
    继承thread类,实现runnable或者callable接口
  • 线程和进程有什么区别?
  • 用 wait-notify 写一段代码来解决生产者-消费者问题?
  • 用java写一个线程安全的单例模式
    double check和枚举类型两种方式,延伸会问为何要double-check,枚举为何是线程安全的
  • notify()与notifyAll()有什么区别?
  • 如何获得线程的堆栈信息?
  • 线上服务器cpu 100%了,该如何排查问题?
  • i++ 操作在多线程环境下会出现什么问题?怎么解决?
    考虑使用AtomicInteger等相关的类
  • fork-join框架是什么?
  • 可重入锁是什么,有哪些?
  • 同步方法与同步代码块,有何区别,使用场景?
  • 同步代码块中抛出异常会发生什么?
  • volatile 变量和 atomic 变量有什么不同?
  • ReentrantLock与synchronized
  • 启动线程的方法是哪个?
  • 同步类容器和并发类容器有何区别,使用场景分别是?
  • CyclicBarrier 和 CountDownLatch 有什么不同?
  • java内存模型
  • 线程优化的方案
    可以参考cow模式,以及concurrenthashmap的优化锁力度等方面入手
  • volatile与synchronized
  • ThreadLocal线程局部变量
  • 多线程的设计模式
    Future-task,master-worker,Guarded Suspension,生产者消费者等
  • 设计一个高并发的系统,需要考虑哪些点?
  • 什么是线程池,你在项目中使用过哪些?
    线程池的几种方式要记清楚,底层使用的都是同一个构造方法,要清楚的知道每个参数的含义,线程池大小的优化,从io密集型和计算密集型方面去回答
  • 线程池中任务满了,会怎么处理?
  • 什么是阻塞式方法,自己去设计一个该怎么实现?
  • CountDownLatch
  • 队列(有界和无界)如何实现?

数据结构与算法

  • 两个有序的数组合并成一个数组,写代码实现?
给两个数组分别定义一个下标,最大长度是数组长度减一,按位循环比较两个数组,较小元素的
放入新数组,下标加一(注意,较大元素对应的下标不加一),直到某一个下标超过数组长度时
退出循环,此时较短数组已经全部放入新数组,较长数组还有部分剩余,最后将剩下的部分元素
放入新数组,大功告成。
  • 反转一个链表
  • 斐波那契数列
两种方式实现,递归和非递归
  • 树相关的数据结构
此处会问二叉树,排序树,avl树,红黑树,B树,B+树等相关的应用场景
  • 各种排序算法需要简单了解下
冒泡,快速排序,堆排序,二分法等等相关的都需要了解下

相关文章

  • 面试-基础篇

    前言 上一篇文章我们完成了简历的编写,接下来就该进行技术了,技术这块主要会围绕如下几个方面。 1、java基础 集...

  • 2022 Android面试题(含答案)

    此面试题合集分为9个部分:Java基础、Android基础、UI控件篇、网络通信篇、架构设计篇、性能优化篇、源码流...

  • Java面试题总结从基础特性到MySQL数据库到多线程到框架

    Java面试 2016年9月11日 1 Java基础特性 Java基础 面试题目总结 首先参考 骆昊的 上中下三篇...

  • 面试篇-Java基础

    本问很多内容摘录和参考自下面的文章,感谢他们的共享: 面经整理-Java基础 https://blog.csdn....

  • 面试 (一) : 基础篇

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。• 深拷贝同浅拷贝的区别:浅拷...

  • 面试篇:JAVA基础

    1. Java基础数据类型 2. Java容器 2.1 Iterable 接口 Iterable是一个超级接口,被...

  • 【JAVA】面试-基础篇

    集合框架 面试题:你说说collection里面有什么子类。其实面试的时候听到这个问题的时候,你要知道,面试官是想...

  • android阿里面试java基础锦集

    接着上一篇 android阿里面试锦集 今天给大家带来一篇 android阿里面试java基础锦集。很多知识都是T...

  • 答“卓同学的 Swift 面试题”--中篇

    接上篇,答“卓同学的 Swift 面试题”--上篇面试题链接:卓同学的 Swift 面试题 在上篇中,回答了基础篇...

  • 安卓面试题 进阶篇

    关于安卓面试题部分目前整理了两篇: 基础篇 进阶篇 Handler、Looper、MessageQueue构成的安...

网友评论

      本文标题:面试-基础篇

      本文链接:https://www.haomeiwen.com/subject/fodvqftx.html