1、 有以下方法的定义,请选择方法的返回类型
    Returntype method(byte x,double y){
    Return(short)x/y2
    }
    A、 byte B、short C、int D、double

    2、 在java的线程中,以下哪个可以休眠一段时间,然后恢复运行
    A、 run B、setPrority C、yield D、sleep

    3、 在java web项目中,要完成界面跳转,但是需要不改变浏览器地址栏中的地址,应该使用下列哪行代码
    A、 request.getRequestDispatcher(path).forward(request,response)
    B、 response.sendRedirect(path)
    C、window.location=path
    D、path

    4、 log4j日志级别依次是

    5、 介绍下java的类加载器的体系架构和原理

    6、 简单介绍下权限控制的RBAC模型

    7、 如何使用ajax的异步传输

    8、 Hashtable中放入null会报异常吗?

    9、 GC是什么?GC的基本原理是什么?GC可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收

    10、写一段代码,实现银行转账功能:
    接口定义如下:
    public interface ITransfer {
    /**
    银行内部转账,从转出帐号中扣除转账金额,给转入帐号增加转账金额,需要保证以上两个操作
    要么同时成功,要么同时失败
    fromAccountId 转出帐号
    outAccountId 转入帐号
    amount 转账金额
    /
    publicvoid transferInner(String fromAccountId,String outAccountId,BigDecimal amount);


    /**
    外部转账-转出,从转出帐号中扣除转账金额
    fromAccountId 转出帐号
    amount 转账金额
    /
    publicvoid transferOut(String fromAccountId,BigDecimal amount);


    /**
    外部转账-转入,从转入帐号中增加转账金额
    outAccountId 转入帐号
    amount 转账金额
    */
    publicvoid transferIn(String outAccountId,BigDecimal amount);
    }

    请编写你的实现类,实现上述接口

    自我介绍,项目经验,为啥离职等原因

    1. 介绍一下Collection集合
      List ArrayList, LinkedList,
      Set HashSet, treeSet, TreeSet 基于什么实现
      介绍一下Map集合,每个区别
      HashMap(), HashTable,treeMap,linkendHashMap, linkedHashTable
      EnumMap,

    2. 线程的实现方式:(面试官问了三个,目的是想听第三个)
      1、继承Thread类实现多线程
      2. 实现Runnable接口方式实现多线程
      3. 使用ExecutorService、Callable、Future实现有返回结果的多线程 问的特别细

      1. 线程启动是用那个? startrun的区别?
      2. 线程启动 startrun 是复写线程具体实现的步骤
      1. Java并发编程:线程间协作的两种方式:waitnotifynotifyAllCondition 问的特别细
      2. 让某个线程等待,应给怎么执行,如何唤醒,如何唤醒所有的,线程怎么实现生产者和消费者
      1. 什么是线程池,介绍一下ThreaLocal
      1. 怎么给线程加锁?
      2. synchronized lock接口 ReentrantLock ,怎么写,怎么实现,应该注意哪些,问的特别细节
    3. java多线程 怎么预测执行的结果 ?

    8 如何写代码来解决生产者消费者问题 (线程中的)

    1. java中的弱引用和强引用,需引用

    2. Java 中的 ConcurrentHashMap

    3. Java 中的volatile

    4. Java中你怎样唤醒一个阻塞的线程
      (线程这块有好多,有些已经想不起来了)

    5. 注解,怎么自定义一个注解,@Retention具体有哪些 @Target具体有哪些 ,@Inherited
      注解实现的原理, 注解都可以获取到哪些 ,包括访问权限,参数类型,方法签名等很多

    6. Spring框架,Spring Aop

    7. Hibernate, Hibernate 的一级缓存,二级缓存

    8. 有2个类,怎么用Spring Aop 去实现以下,多这两个类中的方法,添加一些属性
      Spring Aop 实现的原理,会涉及到 JDK 代理,和Spring 代理,Spring Bean的实现原理(反射,得讲详细点)
      怎么用Aop实现针对不同的类中的一些方法,执行特定的代码,[
      定义一个注解,然后加在要执行的类的某个方法上面,然后再利用Spring Aop 切面反射去执行]
      Spring事务介绍

    9. HiberNate的三种状态(持久,瞬时,游离),相互转换

    10. Hibernate的load和get方法

    19.Hibernate的SqlSession,Session这些等,懒加载等

    1. 设计模式具体怎么写,口述,具体描述:
      单例模式的几种写法
      策略模式
      适配器模式
      工厂模式
      构建者模式
      观察者模式
      代理模式(jdk代理,还会问到静态代理,以及 Spring的代理等)

    2. java面向对象的重构和重载

    3. js闭包,js 匿名类,js的实现继承的写法

    4. vue.js会让你详细讲一下 webpack打包的, nodeJs ,vue好React的区别,详细描述

    25 .jvm内存结构模型,堆和栈,不是简单的那种描述,而是要描述堆长什么样子,栈长什么样子,画图等

    26 怎么实现分库分表大数据查询

    1. 怎么定义包,具体描述代码,怎么定义package的输入和返回值,java 调用packag的时候如何接收返回的package,具体描述, Oracle 中的function

    2. Jdbc 链接数据库的具体过程

    3. 线上vue项目如何发布解决

    4. 项目采用分层结构

    5. 动态数据源切换,SpringJdbc,mybatis 提问

    6. 目前会的一些框架等,详细描述一下在项目中怎么用

    7. 事务的隔离机制

    8. jdbc sql ? 从几开始, 最后取值从几开始
      ThreadLocal的作用是提供线程内的局部变量,这种变量在线程的生命周期内起作用,减少同一个线程内多个函数或者组件之间一些公共变量的传递的复杂度

    1、 cookie和session的作用,区别,应用范围。Session的工作原理
    2、 spring有哪些不同类型的IOC方式
    3、 简述spring boot和spring的关系
    4、 请列举使用过的spring cloud组件,并简述组件的作用
    5、 请列举mybatis和hibernate的相同与不同点
    6、 Angular2+中怎样实现路由按需加载组件
    7、 请简述数据库索引的利弊
    8、 请列举使用过的设计模式,并简述其作用
    9、 请列举使用过的持续集成工具,并简述其作用
    10、两个文件按行合并:
    A.txt,内容是
    a
    b
    c
    B.txt,内容是
    d
    e
    f
    请编写程序输出到c.txt,内容为
    a d
    b e
    c f
    如果是大文件的情况,请简要描述提高合并效率的思路

    1、 简述ArrayList,LinkedList区别,HashMap和HashTable的区别?
    2、 简述java synchronized关键字的用法:synchronized加在普通类方案,静态类方法,类代码块之前,分别有什么作用?synchronized关键字在什么情况下能够保证线程安全,什么情况下不能保证?
    3、 简述线程sleep和wait区别?
    4、 谈谈你对NIO模型的理解?
    5、 谈谈对数据库悲观锁和乐观锁的理解,什么情况下应该用悲观锁,什么情况下应该用乐观锁?
    6、 简述一下处理哈希碰撞的几种常见方案?
    7、 谈谈死锁发生的原因,程序中或数据库中怎么避免死锁?
    二、代码编写
    1、用任意程序语言(可以用伪代码)写一个线程安全的单例模式,要求性能尽可能优化*(假设该单例每秒要调用上万次)
    2、对一个数据集合给定如下原子操作:
    data get(id) 通过id在数据集合中取一个数据
    void lock(id) 锁定一个数据
    void unlock(id):解锁一个数据
    voidoperate(Data) 对一个数据进行业务操作
    void flush(id) 将业务操作的结果写回给数据集合
    (1)写出一段伪代码,制造一次死锁
    (2)写出一段伪代码,可以实时监测该数据集合的死锁情况,并解除死锁
    三、数据库
    产品表

    productid 产品名 单价
    1 name1 110
    2 name2 220
    3 name3 330
    4 name4 440

    销售表

    ProductID 客户名 订货数量 销售单价
    2 m 2 250
    1 n 3 110
    3 n 1 300
    4 m 2 400

    (1)将销售表中m客户的产品名为name2的销售单价更换为产品表中相应的单价
    (2)写出查询销售表中各客户各自的销售总金额的sql语句
    (3)写出查询销售总量第一名和第三名的客户的销售总金额的sql语句
    2、简述左连接,内连接以及全连接的区别,在什么情况下左连接操作和内连接操作的结果相同
    3、聚族索引和非聚族索引的区别是什么,索引的底层实现原理是什么?

    1、自己实现一个阻塞队列,包含put、offer(tiemout),take,poll(timeout)接口
    2、已有dataSource,自行实现一个简单的连接池,包含分配连接和回收连接
    3、自行实现一个有序的List,包含add,remove接口
    4、自行实现一个简单的LRUMap
    5、两个线程:线程A、线程B,一个固定容量为50的队列List list
    线程A不停生产100内随机数据,判断如果数据不在list中,就将数据加入list中
    线程B不停生产100内随机数据,判断如果数据不在list中,就从lsit中删除数据