因为面经分为实习和校招,我认为还是需要区别对待。我目前要找的是实习,所以做一下搜集和整理的工作。非常建议自己做一下搜集的工作,因为你能从评论和吐槽中获得更多。

扩展点

  • 你会如何使用XXX
  • 你设计的话,什么时候使用XX,什么时候使用XX(问区别题)
  • 每个术语都会让你先介绍一下的使用场景或者用来干什么的
  • 每个知识点多问为什么,或者多问能不能用其他的代替
  • 背了就全倒出来,只有一点都不会才说不了解,不要谦虚,你说只了解一点点,面试官默认 你不会。

java基础

  • java八大类型和对应字节数***
  • Integer缓冲池?
  • 抽象类和接口区别,从设计模式层面的理解,为什么要有这么2个东西
  • String/StringBuilder****
    • string几种拼接方式区别,+和append底层有没有区别==字符串拼接怎么能优化
    • ==和equals区别
    • 为什么String在Java里不可变? (hash缓存 线程安全 常量池等)
  • 泛型
    • 泛型 List<Integer> 与 List<String> 这两个的getClass是否相对?
    • <? extends String> 有什么作用?
  • 多态
  • 反射**
  • 重载和重写,底层如何实现的
  • equals 和 ==区别
  • final的作用和用法
  • 深拷贝浅拷贝,参数传递,值传递和引用传递的关系,String和char数组作为入参,结果会改变吗***
  • 类修饰词default和protected关系
  • 异常都有几大类?运行时的空指针会抛异常吗?IO Exception异常发生需要自己去捕获?
  • 编译期间需要捕获,运行时不需要捕获
  • 静态变量线程安全
  • Object的基本方法
  • Java序列化,如何不让某个成员序列化
  • comparator排序,对于一个容器,比如set,你想实现自定义排序规则的话怎么做**
  • 说一下byte a = 127; byte b = 127; a+=b和a = a+b的区别分别会出现什么问题。
  • Class.forName和ClassLoader的区别
  • lambda表达式,每个用户有个黑名单标识位,如何用lamda表达式来实现把黑名单标识位为true的过滤出来并得出String的形式
  • 幂等和非幂等了解吗,怎么设计一个幂等接口
  • 受检异常
  • 装箱类型的缓存机制**
  • Exception有哪些?

数据结构

  • 说一种我最熟悉的数据结构,具体到每种api操作,除了链表数组之外的数据结构
  • 讲讲知道哪些数据结构**
  • AVL和红黑树有什么区别?
  • 二三树转变成红黑树的过程
  • 集合框架源码,concurrenthashmap,hashmap,linkedhashmap
  • 实现LRU
  • hashmap(ConcurrentHashMap已成必问)
    • resize死循环**
    • hashtable和hahsmap区别
    • 说说copyOnwriteArrayList以及他们分别采用的并发修改(fast-fail,fast-safe)**
    • 为什么使用红黑树
    • HashMap的数据结构是什么?
    • HashMap当在扩容时候进行put操作时||JDK1.7头插法的缺陷||JDK1.8有那些变化
    • HashMap get/put过程
    • 为什么链表是8次以后就转换为红黑树,什么时候转回链表
    • HashMap的put操作是怎么实现的?
    • HashMap是线程安全的吗,为什么?(引出线程安全的解决方法,hashtable或ConcurrentHashMap)****
    • ConcurrentHashMap是怎么保证线程安全的?
    • concurrenthashmapJDK1.7和JDK1.8也是不一样的*****
    • HashMap如何解决哈希冲突,还有什么方法(开放寻址法,线性探查,二次探查;布谷鸟哈希)
    • HashMap和ConcurrentHashMap的put/get操作
  • ArrayList
    • ArrayList和LinkedList有什么区别,底层怎么实现?
    • ArrayList扩容时做了什么操作?
    • 扩容时是在数组的后面加的吗还是?
    • 数组怎么实现对象排序
  • LinkedhashMap
    • 数据结构
  • 红黑树的细节,有什么特点
  • hash底层是怎么实现的
  • LinkedList 传入 Object 类的元素去查找,执行过程是怎么样的?

操作系统

  • 进程调度,进程状态生命周期图
  • 操作系统组成
  • 进程给线程划分了什么资源
  • 操作系统内存模型不连续空间分配,说说分段,分页,虚拟内存,页淘汰算法
  • fork子进程在linux里时两倍的进程开销吗
  • 操作系统的虚拟内存机制,操作系统的内存管理(伙伴系统,slab缓存)===由锁慢引出的知识点。
  • 线程和进程的区别==肯定不是一句话就能回答这么简单的哈
  • 中断的类型参考
  • 进程之间怎么通信的
    • (管道,socket, 共享存储,消息队列)
  • 进程切换会发生什么
    • 用户态与内核态的区别
  • 僵尸进程怎么产生的
  • 一个进程最大能占有多大的内存空间

并发

  • 为什么要线程安全
  • 为什么要同步,同步的方式有哪些
  • Java有哪些锁同步机制
  • 死锁的条件,你是如何排查死锁的(重点在于你)
  • 介绍线程池******必背的哈
    • 为什么使用线程池(如果服务器性能足够好下)**
    • 怎么实现一个线程池
    • 线程池怎么调度(看看源码)线程池提交任务后,线程池内部工作流程详细讲一下**。
    • 线程池构造参数,为什么不推荐使用Executors类构造线程池?
    • 如何确定线程池的线程数量
  • 介绍进程,线程,协程,区别哪个效率高,为什么
  • 为什么需要锁
  • 说说AQS**
  • 说说CAS****
    • Unsafe类实现CAS?
    • 直接使用Unsafe会有什么问题吗?
    • 锁为什么慢,操作系统调度为什么慢
  • volatile关键字,(x86CPU层面解读==要有时间能说出CPU协议更牛逼了)
  • Atomic Integer和Integer区别,Atomic Integer原理**
    • 讨论各种同步锁的性能,i++操作用Synchronize锁吗?
  • 列举常用的并发工具,指JUC包里面的类
    • 同步器Semphore CountDownLatch CylicBarrier 中有无条件队列
  • synchronized实现原理****
    • synchronized怎么保证可见性,在占有锁这个线程占有锁之前,有其他线程复制了变量到工作内存中,那么占有锁的线程改完的结果其他线程能立即可见吗
    • final修饰什么的时候能够保证可见性
  • Reentranlock底层实现****
  • 优化方案,采用reentranlock的condition实现
  • 多线程画出状态图*****
  • ThreadLocal原理
    • ThreadLocal模式出现内存泄露吗?**
    • ThreadLocal怎么用的
    • 实现原理
    • 可以反过来项目的时候自爆知识点
  • 各种锁 悲观锁和乐观锁
  • 线程池阻塞队列满了怎么办:详细说了拒绝策略和FixedCachePool的无界队列造成的OOm(当到了最大线程数时如何处理)==很喜欢问线程池爆了怎么办****(你通常用哪个策略?)
  • 进程A里有两个线程a1和a2,线程a1 里面出现了一个除0的算术异常,a2会怎么样
  • 有十个线程,现在有五个线程要进来,怎么做到这个约束

JVM

  • 内存泄漏如何发现,举例子(你自己遇到过吗?),怎么排查,OOM异常||内存溢出和泄露有区别吗?日志->jconsole->jmap->jvisuavm******
  • CMS和G1垃圾回收算法**** G1解决了CMS的缺点吗
    • 让我自己实现垃圾回收算法的标记过程。我说BFS,他让我描述算法的细节。然后让我用DFS做一遍。
    • 优缺点,都针对什么区
    • 哪个版本的JDK用哪个收集器
    • 年轻代存活的对象为啥不直接放老年代
  • JVM内存区域,每个部分都要详细说说***
    • 堆和栈的区别
    • 哪些是线程公有,哪些是线程私有的
    • 程序计数器在进入native方法后的值是怎样的
  • 堆外内存**
  • 垃圾回收原理,全流程要掌握*****
    • JVM年轻代和年老代的对象是怎么转换的吗
    • 什么时候MinorGC,什么时候FullGC?
  • 说一下ClassLoader,类加载过程***
  • 讲讲JVM创建对象过程
  • 双亲委派机制
    • 怎么自己写一个java.lang.Object****
    • 如何打破
    • 为什么要引入双亲委派机制**
  • 静态内部类会被编译成几个class?为什么内部类可以访问外部类的private的方法
  • 我在jvm上运行一段java程序输出一条语句,它是怎么输出到屏幕上的
  • 线程的生命周期
  • JVM有哪些优化配置参数,JVM还是要考参数,尤其你拿JVM作为项目更会考了**
  • 有jvm调优过吗
  • 如何避免full gc
  • 大型复杂项目之中,不停进行内存回收,jvm怎么调优
  • new一个对象出来,内存是怎么分配的,堆区是分块的吗
  • 如果执行一个方法,速度很慢
    • 大对象gc
    • 慢查询
  • 缓存在Java内存模型的哪块区域?说说Java 内存模型?1.7-1.8Java内存模型有什么变化?
    • 内存模型是指Java有一个统一的主内存,主内存中存放了所有的变量。同时每一个线程都有一个自己的工作内存,当线程需要对变量进行操作的时候,总是先从主内存中把变量取到工作内存,再在自己的工作内存里对变量做操作,并在某一个不确定的时间将变量值刷新到主内存。
    • 本地内存是JMM的 一个抽象概念,并不真实存在。它涵盖了缓存、写缓冲区、寄存器以及其他的硬件和编译器优化。
  • Java 里面如果有一个线程阻塞了或者内存泄漏,怎么找出哪个地方阻塞了,有什么工具可以查看,一般怎么处理这样的问题
  • Synchronized加在不同的位置会有不同的效果能说一下吗?什么时候加在方法,什么时候加在语句块上

数据库

  • 数据库范式,数据库为什么要有范式***(可能很多时候都是答题的中心思想)
  • 数据库设计,你会怎么设计数据库表(回到范式题)
  • 数据库各种锁+使用场景(乐观锁 悲观锁...)***
  • 我们的数据库当中如何做的优化?举案例。==引索引
  • MyISAM和InnoDB区别,你平时是怎么选择的**
    • 为什么不支持行锁,myisam的优点
    • 如果是存储日志,用什么存储引擎比较合适
  • mysql底层是什么,为什么效率高,主键能不能太大,为什么,如果太大,底层数据结构会不会变化,为什么
  • mysql join的底层原理是什么,有哪几种(不是左右连接这种)==左连接右连接的区别
  • MySQL 索引原理***
    • 聚簇索引和非聚集索引***

      • 可以有多个聚簇索引吗?
    • auto_increment有什么好处
    • 数据结构,为什么要这样使用,B+树历史必问的啦,B+为什么不用B-
    • 索引失效情况,什么情况下会放弃使用索引**
    • 用过的InnoDB索引?优势何在?(应该先问是按逻辑方面还是物理方面...)
    • 联合索引怎么使用
    • “like”查询在什么时候能够用上索引,什么时候用不上
    • 为什么“%”开头的模糊查询索引会失效
    • 一个表十几个字段,怎么建立索引==真实情况下如何考虑整个表的构建==性别这种索引放在前面还是后面
    • 用户的性别字段适不适合添加索引***
  • SQL语句(基本数据库语句,通常是考连接语句join,groupby)
    • 写sql 学生成绩教师三个表、 查询平均成绩大于等于60分的同学的学生编号和学生姓名和平均成绩和对应的老师***
    • 写sql 找出语文成绩及格平均成绩不及格的学生姓名语文成绩
    • SQL各种连接的概念,区别。连接后的行数和列数
    • 交换性别值;交换职务值(学生,老师,教授)性别反转 表中有个字段性别 = 'm' 代表男性 'f'代表女性,一句sql反转过来
  • 事务*****===极其重要,因为实际业务事务回滚的常见,所有面试官都对这个了如指掌
    • 特性/概念,具体介绍
    • 事务隔离级别,隔离级别是怎么实现的*****
    • 场景题@Transaction的原理,还有比如在一个类中两个方法,一个是B方法,一个是C方法,B上没有注解,C上有那么在外面调用B方***有事务,为什么,根据底层原理能不能推断出来(给提示问你能不能推断出来)
    • 回滚是用来做什么用的?
  • 脏读,幻读,不可重复读****
    • 试验RR级别下出现幻读**
  • MVCC **
  • mysql有什么优化策略
  • mysql连接池的作用
  • mysql调优?
    • explain,如何分析一条SQL的索引使用情况(细问到Explain 中的字段)==索引命中
    • MySQL查询非常慢时,如何排查原因
    • MySQL执行的比较慢,怎么去分析慢的问题?除了慢查询日志和explain还有什么?
  • MySQL的主从复制原理,如何实现
  • 数据库中一行记录大小10K,一个表只有主键索引,可以存多少条数据?你有没有试过数据库一个表中最多可以插入多少数据
  • SQL注入了解吗,怎么解决?
    • 现在有个用户登录界面,怎么用SQL注入攻击
  • 什么样的查询会有回表查询
  • 有表(create_time, online_time, type, isDeleted),type取值在0~4之间,isDeleted取值为0,1 其中有查询where online_time = xxx and create_time > xxx and type = 1 and isDeleted = false 怎么建立索引?如果整个数据库有1亿条,type为1的数据只有100条,要不要给type建立索引。
  • B+树和为什么用B+树,演变的过程******
  • MySQL 怎么数据数据备份,数据备份机制有哪些,分布式怎么数据备份,非分布式怎么数据备份(我说的是快照 + 日志),主服务器挂掉了怎么办,怎么找到另一个master 来顶替
  • 像8亿个用户的数据,怎么存
  • 临时表一般用来做什么的?

Redis

  • redis高并发

    • 如果有10w请求插入Redis,如何优化?
    • 1w条的插入和更新有什么区别
  • 怎么保证redis的时效性(双写)
  • redis数据类型源码级别**
    • zset底层实现,为什么,效率是多少
    • 存验证码的话用的哪个数据类型
  • redis集群
    • 哈希一致性
  • redis持久化方式,aof文件比较大怎么办
  • Redis缓存怎么解决数据一致性**
  • redis原理
  • redis场景题
  • 说说redis和mysql区别,从而引出redis和mysql的使用场景**
  • 缓存击穿,雪崩,穿透怎么处理说一说
  • 集群模式说一说
  • redis的过期机制有几种, 过期清除怎么实现的**
  • 分布式锁了解吗?
    • 数据库实现的分布式锁,如果出现异常没有删除状态怎么办

SM

  • 代理模式怎么实现**

    • 静态代理,jdk动态代理和cglib动态代理 问的很细(jdk为什么一定要实现接口,如果不实现接口会出现什么问题
  • MyBatis的原理分析,Mybatis执行流程
    • Mybatis问你觉得从哪体现的优缺点
    • Mybaits里面参数#和$有什么区别,要举一个sql注入攻击的例子+如何防止注入*****
    • MyBatis 里 Mapper 实现原理?用 Mapper 接口的实例就可以操作数据库,怎么实现的?
  • spring常用的注解,有没有扩展过spring自己的功能
  • Spring底层问题
    • spring bean生命周期**
    • spring aop,ioc实现原理** ==请举生活中aop/ioc的一个例子,那你讲讲怎么使用IOC 容器,你怎么实现 IOC?除了反射
    • 介绍一下Spring AOP,AOP是如何实现的。JDK动态代理和CGLIB动态代理的区别?***
    • 如何记录bean里方法执行的次数?
      • 可以用AOP实现:定义切面,方法执行后对一个全局变量累加
      • 多线程会不会有问题
      • 答会,ThreadLocal,每个线程可以独立计数
    • 循环依赖,动态代理
    • .Spring的@Autowired、@Resource分别有什么作用?内部如何实现的?
  • spring 拦截器知识
  • 什么样的bean你会设置为延迟加载
  • Spring的事务传播机制 敖丙问过
  • SpringMVC执行原理
  • springboot启动流程
    • springboot启动类放置目录在哪里
    • spring boot加载bean过程springboot特点

网络

  • http原理

    • http缓存,http完整流程*** Cookie的传输过程?Cookie失效
    • 从网页输入一个url到得到回应的过程+用到的协议说一说(顺带问了springmvc的流程==装杯)***
    • HTTP报文格式什么样
    • HTTP请求头中表示请求数据格式的是哪个
    • HTTP返回码有哪些?206
    • 非对称加密算法
    • GET和POST的区别
    • HTTP客户端怎么判断浏览器返回的响应是完整的
    • HTTP中哪些是长连接、哪些是短连接
  • https原理,HTTPS怎么建立的连接,其中用到对称加密还是非对称加密;
  • tcp原理
    • tcp连接三次握手,释放四次挥手,为什么是三次而不是四次或是两次****

      • 每次握手发送的参数,timewait和closewait状态含义2MSL含义
      • TCP挥手可以三次吗?FIN 和 ACK 不能一起发吗?
    • TCP中有哪些涉及到超时的
    • 拥塞避免
    • TCP的滑动窗口机制
  • http tcp联系和区别
  • NIO了解吗,说了buffer、channel,还有Seletor(浅)然后说如果客户端线程被系统释放了,丢失的这个上下文怎么办,提到了BIO,知识盲区,很尴尬墨迹了半天说不会**(阿里好像很喜欢问这个地方,然而我并不会netty)
    • poll 和 epoll 的区别
    • NIO 底层 Linux 用的 epoll 了解吗
    • NIO 那个多路复用器 selector 怎么做的?
    • 哪些通道可以注册到多路复用器上
  • OSI七层模型,每一层的作用,五层网络模型,HTTP属于哪一层
  • Cookie和session的区别。****包含了含义说明
  • 集群下服务器端如何区别不同的用户,session非常多的情况下

Linux

  • Linux查看文件第n行
  • 查看端口的占用情况***
  • 一个日志文件有20G, 机器内存只有8G,怎么找到有失败的信息
  • 一般如何查看日志
  • swap 区是用来干啥的,工作机制是什么
  • 怎么看系统调用
  • Linux文件系统原理/inode和datablock那一块的知识点
  • linux查询tcp连接处理CLOSE_WAIT的状态的数目
  • Linux查看进程,删除过期文件
  • 平时怎么用linux做定时任务的
  • 进程fork的过程还是要了解一下
  • 介绍一下你用过的Linux命令
  • linux五种io模型
  • Linux 里的内存分为哪几个区域?
  • 服务器CPU利用率过高怎么排查==服务器负载过高怎么排查***
  • 怎么查看进程CPU情况?IO swap 占用很高是什么意思**
  • 改变用户权限的命令是什么;chmod 后面跟四位数字是什么操作?

设计模式

  • 说说你知道的设计模式(你要结合spring具体场景讲,追问spring为什么要使用这个设计模式)***

    • 工厂模式、适配器模式
  • 单例模式那几种实现和优缺点都要知道****
    • 手写双重检查锁单例模式****
    • spring单例模式怎么实现的
  • 五大设计原则也要记住,在答别的题不会时就扯这五个原则

项目

  • 项目你觉得最大的难点
  • 项目你学到了什么
  • 项目你是如何优化的

智力题

  • 四个小朋友,准备四个礼物, 随机抽, 所有人都抽到不是自己准备的礼物的概率
  • 赛马, 25匹马, 5个赛道, 知道每场第一的具体成绩, 至少跑多少场可以找到最快的三匹

手写系列

  • 手写jdk中的优先级队列 PriorityQueue**
  • 手写代码 实现阻塞队列,ArrayBlocking源码****
  • 手撕一个阻塞队列,生产者生产0~100的随机数,消费者消费后将其存储到一个list,需要保持list中元素保持递增。(信号量+线程安全)
  • 两个栈实现一个队列
  • 手写构建二叉树,排序二叉树和堆的区别、使用场景
  • 实现一个Java栈结构 ==话说这种一般能用的数据结构是什么?
    • 里面有一个max函数,可以以O(1)的复杂度找出栈中最小的元素
  • 写一个生产者消费者模型
  • 快排和堆排的区别,

    • 手写快排,堆排。泛型快排**学到了装杯的东西
    • 快排时间复杂度,为什么不稳定?稳定的排序算法是什么
    • jdk 中有哪些包使用了哪些排序算法
  • leetcode155 最小栈
  • 手写算法求最长子序列
  • 求下一个大的数
  • 剑指offer62:圆圈剩下的数字
  • twoSum
  • 如何查询一个文件内的重复最多的次数的数字,如何高效实现,时间复杂度,空间复杂度、
  • 镜像二叉树
  • 矩阵顺时针转90度
  • 判断回文字符串
  • [1,2,3,2,3]找出其中只出现一次的数(让用位操作去实现)
  • 1亿个int short类型的数据进行排序
  • 10w个手机号找一个
  • 合并链表
  • 海量集合A和B求交集
  • leetcode1247
  • 美团外卖有100台服务器,美团财务只有2台,美团财务要对每笔订单记账???怎么做,我实在不会,bala了一下消息队列,说先存着,慢慢处理。。。。。面试官说消息队列是搞存储的吗?我说只存个编号。
  • 线上一台MySQL服务,随着时间增加SQL性能越来越差,排查思路
  • 如果说有一个操作需要创建一个对象,这个对象很大,需要消耗很多资源,如果说每调用一次方法就创建一个对象的话,开销太大,如果把它定义成一个静态变量,又会产生并发问题,那么多线程并发操作的时候就需要加锁,降低效率。怎么优化才能既不用加锁又能提高并发访问的效率
    • (1)利用“资源池”的思想,,用一个资源池,存放10个该对象,每次创建的时候从池中获取,降低并发度
    • (2)ThreadLocal:看倒是看过,就是没想到。知识还是要融会贯通呀
  • 存储了0-100的数据,如何删除其中小于10的数字(其实问的是list中如何删除元素——迭代器)
    • 为什么不能在遍历list的时候删除其中的元素呢
  • 如果现在有8G内存,一个程序很大,由于还要留下一部分内存供其他程序使用,那么如何控制这个程序使其占用的内存不能超过6G呢?考JVM参数
  • 基于B+树索引的特点,更新操作慢,现在有这样的需求,就是存储日志文件(一般来说日志文件只有在出错的时候才会去看它,平时基本上不会去查)应该如何设计索引的数据结构?》》就还是用树来存储,只是不维护索引顺序
  • 环形链表判断有环,环入口节点
  • 岛屿数量leetcode 200) DFS秒解
  • 数组实现栈(入栈、出栈、扩容)
  • 除了垃圾回收,还有那些工作会造成CPU负载过高(其实这里给出的是一个场景,就是让描述一下除了垃圾回收之外,还有那些工作会让线上CPU占用到百分之90-100,并且给出排查过程。
  • 希尔排序、快速排序、归并排序的细节,时间复杂度和空间复杂度;
  • aaaaaabbbbbbzzzz.....zzzccccccc这样的字符串有100kb,怎么压缩?记录每个字母出现的开始位置即可
  • hashmap实现一个缓存,要求有过期时间
    • 初始化的时候有个aliveTime,用两个hashmap一个用来存key~ value,一个用来存key~createTime,然后put的时候两个map都存一下,获取的时候先get一下createTime,判断时间有没有超过aliveTime,超过就返回null,否则返回value就好啦(时间是用Date类来获取的)
  • 链表两个节点一反转:1->2->3->4变成2->1->4->3(编程题)
  • 给定一个数组判断是不是二叉搜索树的后序遍历的结果(编程题)
  • 求数组中子数组的和的最大值
  • 求二维数组中子矩阵和的最大值
  • 求二维数组中子矩阵的积的最大值
  • Leetcode的430题. Flatten a Multilevel Doubly Linked List
  • (编程题)数组中找出最小的k个数,空间复杂度O(1)
  • (编程题)二维数组,每一行从左到右递增,从上到下递增,判断给定的数是否存在
  • (编程题) 1,0,0,1,1,0,1变成0,0,0,1,1,1,并保证稳定
  • (编程题) 给定一个数组,求子数组的最大和
  • (智力题)1-1000个数,每次删除奇数位置的数(位置从1开始计数),最后剩下哪个数
  • 一个系统在注册账号的时候需要完成若干操作,比如创建账号、验证身份信息、发送欢迎邮件等等,又希望这些操作尽量快的完成,你怎么设计
  • 二叉树翻转
  • 编程题:手写一个栈实现
  • 编程题:表达式求值利用栈
  • 编程题:找到树中两个节点的最短路径
  • 有1G数据,但是只有128M内存,要排序,怎么排
  • TOP K问题,时间复杂度
  • 一个有序的数组,找出两个不同的数使其等于n。如果数组是无序的怎么做
  • 写个可变数组的add方法
  • 写个环形数组
  • 100万个数统计 找出最大100个数 ==最大堆或者最小堆都可以用
  • 10亿个整数找最大的100个?
  • 怎么快速求出 比指定数大 的 最小的 2 的 n 次方
  • 海量数据20亿 还是40亿来着,怎么确认一个指定数字是否存在
  • 给出1-n,提供一个接口判断是不是bad,只要一个数是bad后面都是bad,一开始我以为是无序的,直接循环o(n),她说优化一下,我就觉得再优化就是logn了应该是二分,再仔细看了下题才发现是有序的
  • 链表表示数,两个链表相加返回一个新链表
  • 1. 删除链表中重复的节点,有点小问题改过来以后他说做的挺快那我们就再写一道(??)
  • 2.二叉树的最小高度(注意是最小,不是普通的那种)
  • 算法题,给定一个精度求一个数的平方根

代码题

  1. 以下代码题输出什么?(巨坑,输出100,从泛型+向上转型+map+equals原理上想) 因为i-1转integer,所以不会删除
Map<Short, String> map = new HashMap<>(); for(short i = 0; i <100; i++) { map.put(i, String.valueOf(i)); map.remove(i-1);
}
System.out.println(map.size());

2. 这是一个多叉树,Node应该是这样,当时并没有给,这是我觉得是这样的,当时只给了方法和说明是多叉树

 Node <T>{
T value;
Node[] children; } public Integer getValue(Node<Integer> root, int level, int index){ } 

找到第 i 层的第 index 个结点的值,如果没有,返回null,时间复杂度是多少

3.

思考:

public class ServiceA {public void methodA() {this.methodB();}public void methodB() {}
}public class ServiceB {@Autowired private ServiceA serviceA;public void methodC() {serviceA.methodA();}
}

假设ServiceA的每个方法都被织入了一个Around Advice,分别打印方法开始和方法结束的日志信息,请问调用methodC方***打印出几行日志?
ServiceB的serviceA引用的对象和methodA中的this是一回事吗?是什么关系?在JDK和CGLIB动态代理下会因此而发生变化吗?

只会打印出methodB进入和methodB退出的日志

人生题

  • 最近在看什么书,对自己有什么提升
  • 最近了解的新技术,怎么了解的,用它做了什么(我当时答得docker,导师项目中用到的)
  • 去实习想学到什么东西
  • 学的最好的课==引导面试官的机会

反问面试官

  • 您觉得我有哪些方面需要提高 如何提高(让他给你建议) ,这个问题可以折射出你这次面试的评价 ,如果面试官对你满意的话 他会直说的 ,同时也可以知道自己的薄弱点 ,通过面试官的建议来针对性的提高。所以如果是正常面试的话我就会问面试官这个问题
  • 还可以问面试官部门的业务 ,他们部门主要使用的框架 ,还有就是可以试探一下有没有下一次面试
  • 让他给你的建议主要是 思维 基础 方面如何提高 ,或者如何横向扩展/深入扩展知识面 这种问题 。(但是不要问面试中出现的问题,比如面试中有个问题没答上 ,千万别问)
  • 算法:前序和后序遍历构建二叉树

没看懂的考点

  • 谈一下Java后端编译优化。

    • Java分层编译,0、1、2、3、4是啥?
    • 方法内联,分支预测。
    • 如果通过JIT日志分析出来没有优化,怎么在代码中体现?
    • 什么时候会进行内联优化?
    • 介绍一下虚方法表。
  • 刚二面完:就三题

    • 第一题:一个超大的文件,文件每行是一个数字,找出出现频次最高的5个数字

      • 分块->hash->大顶堆
    • 第二题:10亿个手机号找一个?
      • 10亿个手机号的文件转储,如何压缩,同时要能够计数,就是给出一个手机号,判断出现过没,出现过给出出现次数?
      • CIDR压缩-》字典树-》数组存储-》按手机号号段

参考来源

  1. 京东Java岗实习一二面经(已上岸)_笔经面经_牛客网
  2. 21字节Java实习面经_笔经面经_牛客网
  3. 21字节Java实习面经_笔经面经_牛客网
  4. 字节跳动 Java后端开发 实习生 三轮面经
  5. 快手实习Java开发面经_笔经面经_牛客网
  6. 京东数科2020届Java实习生一面_笔经面经_牛客网
  7. 京东数科2020届Java实习生一面_笔经面经_牛客网
  8. 蚂蚁金服暑期实习Java后端一面挂经新鲜出炉_笔经面经_牛客网
  9. 蚂蚁金服Java研发岗实习内推面经_笔经面经_牛客网
  10. 字节跳动实习生Java一二面面经_笔经面经_牛客网
  11. 两次阿里妈妈Java实习面经_笔经面经_牛客网
  12. 美团java实习面经-刚面完_笔经面经_牛客网
  13. 阿里Java实习面经(慢更)_笔经面经_牛客网
  14. 阿里实习java三面凉经_笔经面经_牛客网
  15. 阿里Java暑假实习最短一面_笔经面经_牛客网
  16. 阿里实习Java面经_笔经面经_牛客网
  17. 阿里妈妈实习Java一面面经_笔经面经_牛客网
  18. 阿里钉钉java后端暑期实习面经(一面&预面)_笔经面经_牛客网
  19. https://www.nowcoder.com/discuss/380495?type=post&order=create&pos=&page=1&channel=-2&source_id=search_post&subType=2
  20. 阿里 一二面 java工程师实习
  21. 阿里企业金融 java实习一面面经 + 算法面
  22. 百度Java实习面经_笔经面经_牛客网
  23. 受师姐委托来写阿里巴巴政务钉钉JAVA实习(一二面)面经_笔经面经_牛客网
  24. 阿里Java工程师实习一面凉经_笔经面经_牛客网
  25. 爱奇艺Java后台实习生二面_笔经面经_牛客网
  26. 【Java实习面经】【字节跳动】【阿里】【腾讯】【百度】_笔经面经_牛客网
  27. 美团后台开发Java 实习面经_笔经面经_牛客网
  28. 美团实习到店后端Java 两轮面经已oc
  29. 阿里蚂蚁金融java后台开发实习生一面_笔经面经_牛客网
  30. CVTE Java实习一面面经_笔经面经_牛客网
  31. 蘑菇街Java后端开发实习岗一面+二面+HR面_笔经面经_牛客网
  32. 阿里猫超JAVA实习一面_笔经面经_牛客网
  33. 阿里实习java电话一面_笔经面经_牛客网
  34. 字节跳动 java后台实习生 一二三+HR面面经 (已oc)
  35. 腾讯 WXG 微信事业群 Java 后台开发实习一面,已凉
  36. 腾讯暑期实习Java开发后台岗位一面面筋_笔经面经_牛客网
  37. 2020年美团Java暑期实习一面面经_笔经面经_牛客网

java JLabel改变大小后如何刷新_java实习面经整理相关推荐

  1. java JLabel改变大小后如何刷新_到底一行java代码是如何在计算机上执行的

    不知道你是否思考过,每次我们在IDEA中右键Run Application启动主方法,假如程序运行正常,控制台也打印出了你所要打印的信息,在这个过程中你知道这台计算机上那些硬件及其软件都是以什么样的方 ...

  2. java JLabel改变大小后如何刷新_【基本功】Java动态追踪技术探究

    引子 在遥远的希艾斯星球爪哇国塞沃城中,两名年轻的程序员正在为一件事情苦恼,程序出问题了,一时看不出问题出在哪里,于是有了以下对话: "Debug一下吧." "线上机器, ...

  3. java jlabel 字体大小_java-如何在更改字体大小时更改JLabel的大小...

    我有一个JLabel. JLabel的代码如下. panelmain = new JPanel(); panelmain.setLayout(null); panelmain.setPreferred ...

  4. java jlabel图片大小_java – 调整图片大小以适应JLabel

    大纲 以下是要遵循的步骤. >将图片作为BufferedImage读取. >将BufferedImage的大小调整为另一个大小为JLabel的BufferedImage. >从调整大 ...

  5. java jlabel 字体大小_java – 如何在调整大小时更改JLabel字体大小以填充JPanel可用空间?...

    通过使用 FontMetrics和 TextLayout,您可以获得此输出(请阅读代码中的注释) 我建议在两个方向上添加几个像素 将ComponentListener添加到容器,并在component ...

  6. java jlabel 字体大小_java – 如何更改所有私有JLabel的字体大小

    我见过类似的问题,例如this,但在我的情况下,我有25个私有JLabel,我在声明时给出了一个值.我在构造函数中使用GridBagLayout将这些JLabel添加到JPanel.如果我按照链接中给 ...

  7. java鼠标改变窗口大小监听事件_java – 当用户拖动鼠标时,监听JFrame调整事件大小?...

    当用户单击JFrame的角落来调整大小并拖动鼠标时,JFrame会根据用户拖动时鼠标的当前位置重绘.你怎么听这些事件? 下面是我目前尝试的: public final class TestFrame ...

  8. JAVA确保垃圾回收后结束程序_Java垃圾回收机制(转)

    1. 垃圾回收的意义 在C++中,对象所占的内存在程序结束运行之前一直被占用,在明确释放之前不能分配给其它对象:而在Java中,当没有对象引用指向原先分配给某个对象的内存时,该内存便成为垃圾.JVM的 ...

  9. java 中导出word后压缩文件_Java批量导出word压缩后的zip文件案例

    一.js代码,由于参数比较大所以利用form表单使用post导出 function export_word(){ var selectedRows = $("#dg").datag ...

最新文章

  1. Android数据库高手秘籍(三)——使用LitePal升级表
  2. 【C】——如何用线程进行参数的传递
  3. flannel源码分析--main
  4. Subset-Sum Problem 子集和问题
  5. presto-docker运行
  6. java高级用法之:调用本地方法的利器JNA
  7. SAP Commerce Cloud 导入消费OCC API需要使用的credentials
  8. idea java主题_IDEA变身超级形态,需要这个酷炫主题
  9. ET199加密狗是如何复制
  10. 网络蛋白质组学在计算机中应用,蛋白质组学分析灵芝酸D的细胞毒性机制和计算机预测其可能的作用网络...
  11. 《如何撰写和发表SCI期刊论文》阅读笔记
  12. Python学习之路(四)——Python核心编程3(面向对象、模块_包_异常)
  13. 数据库表,excel,cvs 联系人转vcf
  14. sudo报错及在linux上启动jar包时报错java.net.UnknownHostException
  15. Xcode 报错 ERROR ITMS-90096
  16. 史上首例!阿里程序员写的代码,被国家博物馆收藏了!
  17. 华安证券手机网上开户流程
  18. 大学计算机原理知识点,四川大学计算机组成原理知识点
  19. 机器学习5—分类算法之随机森林(Random Forest)
  20. 歌曲用计算机弹出来网红英语歌,最近抖音很火的英文歌

热门文章

  1. 解决虚拟机设置共享文件夹失败,/mnt目录为空
  2. 微信小程序链接外部服务器接口
  3. 蛙跳算法 c语言,罗永浩2020直播带货成绩正式公布
  4. 交换机组播风暴_用思科交换机杜绝局域网广播风暴
  5. 06人月神话读书笔记之二
  6. HTML文件无法显示IE图标的解决方法
  7. BufferQueue has been abandoned
  8. Redis 3.2.3 crashed by signal: 11 服务宕机问题排查
  9. 开始开发IAP ANE
  10. mysql update报错