阿里飞猪Java后台-电话面(40min)已凉
共 2154字,需浏览 5分钟
·
2021-03-22 15:05
自我介绍
本硕就读院校,参加过的竞赛、项目
C语言和Java语言的核心区别,有什么特点?
C面向过程,Java面向对象
C需要自己管理内存,Java自动实现(挖了个坑)
C不能跨平台,Java可以跨平台
Java资源(内存)管理是怎么管理的?
Java的内存管理就是对象的分配和释放问题。(两部分)
分配 :内存的分配是由程序完成的,程序员需要通过关键字new 为每个对象申请内存空间 (基本类型除外),所有的对象都在堆 (Heap)中分配空间。
释放 :对象的释放是由垃圾回收机制决定和执行的,这样做确实简化了程序员的工作。但同时,它也加重了JVM的工作。因为,GC为了能够正确释放对象,GC必须监控每一个对象的运行状态,包括对象的申请、引用、被引用、赋值等,GC都需要进行监控。
Java跨平台的核心是什么?
Java虚拟机
数据结构中的常见排序算法
冒泡、快排、直接插入排序、归并排序、堆排序、选择排序(时间复杂度、稳定性)
假如机器内存500M,比较大的文件超过500M,文件中放的整数,对整数找出N个最小的,怎么做?
将文件分割,用归并排序
用堆排序,大顶堆和小顶堆,能找到前N个
追问:内存有限的话怎么办?(没答上来...)
Java里的接口和抽象类的区别?
抽象类中可以有抽象方法,也可以有非抽象方法共存
接口,jdk1.8之前只能有抽象方法,jdk1.8之后可以存在一个默认default方法
抽象类只能单继承,接口可以实现多个父接口
抽象类可以存在普通成员变量,接口只能存在static final的变量,必须初始化
final关键字定义一个变量或对象,不可变是什么不可变?
问懵了,没答上,答了个地址不可变
C中有指针,指向地址,java定义对象的这个存储结构是不是这样?
补充
Java内存划分为5个部分:
1、栈:存的都是方法中的局部变量,方法的运行一定要在栈当中。
局部变量:方法的参数,或者是方法内部的变量
作用域:一旦超出作用域,立刻从栈内存消失
2、堆:凡是new出来的东西,都在堆中
堆内存里面的东西都有一个地址值:16进制
3、方法区:存储.class相关信息,包含方法的信息
4、本地方法栈:与操作系统相关
5、寄存器:与CPU相关
答了JVM中的方法区、堆、栈
Java中的集合,哪些线程安全,哪些不安全?
说了Map、Collection(List、Set)
HashMap、Hashtable、HashSet等
HashMap不安全、Hashtable安全、ConcurrentHashMap安全、ArrayList不安全、Vector安全(弃用)
线程安全是底层什么在起作用?
回答了加锁可以实现,在就没问了
回答了同步
追问:同步是指用锁还是别的什么?
HashMap和ConcurrentHashMap底层有哪些不一样的?
HashMap:数组+链表(jdk1.7)+红黑树(jdk1.8)
ConcurrentHashMap:Segement+HashEntry(jdk1.7),数组+链表+红黑树(jdk1.8)
想追问红黑树、B+、B、平衡二叉树之类的
抽了,说了个没有太深入了解,以为会问一些东西,结果直接过了
Java多线程里创建线程池,提供哪些接口?
补充
说了个ThreadPoolExecutor........
newCachedThreadPool 创建一个可缓存的线程池,如果线程池长度超过处理需求,可灵活回收空闲线程,若无可回收,则新建线程
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行
newSingleThreadExecutor 创建一个单线程化的线程池,它只会唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO,LIFO,优先级)执行
使用线程池的时候,最关心的是什么,线程池会导致内存溢出,怎么防止?
........
答:排队策略,超过限制,被拒绝。
设置核心参数,设置线程数
代码上做清除(答了些啥...)
创建一个无限队列,会出现内存溢出么,怎么解决?
最大线程数100,在重复的加入任务,造成阻塞,一直加会导致内存溢出么,有什么方法防止一直加?
超过线程池大小直接屏蔽么?
项目问题,哪个项目遇到技术挑战的,怎么解决的?
最后唠了15多分钟
获取往期更多最新面试题资料,直接转发一下这篇文章+关注公众号【Java烂猪皮】关注后回复【666】即可获取哦~
腾讯、阿里、滴滴后台面试题汇总总结 — (含答案)
面试:史上最全多线程面试题 !
最新阿里内推Java后端面试题
JVM难学?那是因为你没认真看完这篇文章
关注作者微信公众号 —《JAVA烂猪皮》
了解更多java后端架构知识以及最新面试宝典
看完本文记得给作者点赞+在看哦~~~大家的支持,是作者源源不断出文的动力