一、基础相关

1、什么是构造函数?

  • 创建新的对象,构造函数被调用
  • 每个类都有构造函数,默认是无参的构造函数

2、接口和抽象类的区别?

  • 类但继承多实现
  • 接口中所有的方法都是抽象的,抽象类中可以写抽象方法也可以写非抽象的方法,基于此策略,可以玩运用模版方法模式来设计场景
  • 接口本身也是抽象的,抽象类中可以实现接口,而不需要实现接口方法
  • 接口和抽象类不可以实例话

3、进程和线程的区别?

  • 放在内存中可执行的一段代码,叫做进程。进程,操作系统资源分配的最小单位,具有独立的地址空间,进程的功能是资源管理和线程管理。线程,CPU调度程序独立运行的最小单位。线程(TCB线程控制块,包含栈、PC程序计数器、本地地址空间)有自己的工作空间,各个线程也会共享进程的工作空间内存,这样线程之间就可以通讯了。JMM内存模型...进程间的通讯tcp。进程之间是隔离的,一个进程崩溃了不会影响其他进程,由于一个线程可以访问进程的内存空间,一个线程崩溃了,可能会导致进程崩溃。
  • 线程创建和切换比进程要快。线程切换不需要切换页表,进程创建需要向CPU申请分配资源,此时CPU 可能需要内存分配过长(连续不连续内存分配),线程创建是在已经分配好资源的进程上去申请资源就好了。

4、什么是死锁?

  • 互斥(在一个时间点只有一个进程使用资源)、持有并等待|循环等待(哲学家思考问题,需要两个资源,我拿了一部分资源,在等待另一个资源)、无抢占(自己主动释放资源,不会被强制下线)
  • 两个进程活着线程,都在等待对方释放资源,两边一直僵持着

5、什么线程饥饿?

  • 各个线程占用并等待,一个线程需要两个资源,自己占用一个资源,等待另一个资源,那么这些进程就一直在等待,饥饿现象,升级就是死锁。

6、如何确保N个线程可以访问N个资源同事又不导致死锁?

  • 死锁预防:一定不会存在死锁,执行过程中我总共需要4个资源,过程一需要1个资源,过程二需要2个资源,过程三需要1个资源,我全部要拿到,拿不到就等待。效率有些低。
  • 死锁避免:确保不会出现环形等待,执行过程共要10个资源,过程1需要3个资源,过程中2需要4个资源,过程3需要3个资源,如果到过程1,操作系统判断,当前可用资源总和是否满足该进程所需资源2,若不满足,当前进程等待(避免环形等待),若满足则分配(因为过程2一定会执行完毕把资源释放掉)
  • 答案:指定各个线程获取锁的顺序。悲观锁。

7、HashMap、Hashtable区别

  • map允许kv null
  • table线程安全

8、ArrayList、LinkedList区别

  • ArrayList底层是数组,访问复杂度o(1),
  • LinkedList链表,访问复杂度o(n),插入快,不需要重新计算大小扩容和更新索引,更占内存,每个节点存储了前后节点的引用。

9、==与equals

  • ==用于数据类型比较和引用内存地址比较
  • equals数据类型比较,string是常量池内的,特殊的引用类型,可以用==和equals

10、多线程thread、runnable,.run和.start方法

  • start启动创建一个线程
  • run调用方法而已

11、HashMap

参考

二、框架技术

1、springmvc工作原理

  • 客户端发送http给web服务器,web服务器对服务端请求地址解析,如果匹配DispatchServlet的请求路径,则交给DispatchServlet处理
  • DispatchServlet找到对应的请求handler处理,在handler里面,可以写我们自己的逻辑,类似于netty
  • handler处理完成,返回ModelAndView给DispatchServlet
  • DispatchServlet通过视图解析器返回视图给客户端

2、spring容器

  • Ioc,aop框架
  • ioc控制反转,对象创建责任反转,BeanFactory是IOC容器的核心接口,负责实例话、定位、配置应用程序中的对象

三、JVM

1、堆外内存(直接内存)&堆内存

参考一

参考二

(1)、什么是堆外内存?

  • java可以通过Unsafe(native方法)和NIO包下的ByteBuffer来操作堆外内存

(2)、堆外内存和堆内存有哪些联系?

  • 不是堆内存就是堆外内存,堆外内存也称作直接内存

(3)、堆外内存的回收

  • 会被回收,JVM设置的堆外内存大小调整,-XX:MaxDirectMemorySize,到达一个阈值之后就会触发回收。1.8之后,存放方法区的数据主要类的元信息,回收时不受jvm垃圾回收器管理

(4)、为什么用堆外内存

  • 直接分配在物理内存中,不占jvm堆空间,其可申请的最大内存受操作系统限制
  • 读写快,创建和销毁慢,适合做缓存,像ehcache缓存数据就可以存放在堆外内存。

一、阿里外包面试题解析相关推荐

  1. 多个for语句嵌套执行顺序_阿里真实面试题解析之实现多个线程顺序执行的几种方式...

    前几天有一位同事在阿里一面的时候被问到这么一个多线程问题:如何保证多个线程的顺序执行.当时他没有回答上来,所以为了避免大家以后遇到同样的面试题还是回答不上来,今天我们就来分析解答下这个问题. 问题缘由 ...

  2. Java类的连接与初始化 (及2013阿里初始化笔试题解析)

    2019独角兽企业重金招聘Python工程师标准>>> Java虚拟机通过装载.连接.初始化来使得一个Java类型可以被Java程序所使用,如下图所示,其中连接过程又分为验证.准备. ...

  3. 外包的水太深了,18k的阿里外包不太敢去.....

    有挺多测试员曾在BAT.网易这些大厂做过外包,想必大家也是非常关心此类问题,我就想介绍下"什么是外包?","外包公司的现状",就"为什么这么多人鄙视外 ...

  4. 如何获得阿里技术offer:从《阿里DBA面试题》体味阿里社会招聘

    数据库管理员(Database Administrator,简称DBA),是从事管理和维护数据库管理系统(DBMS)的相关工作人员的统称,他属于运维工程师的一个分支,主要负责业务数据库从设计.测试到部 ...

  5. 美团Android开发工程师岗位职能要求,高级面试题+解析

    前言 不知道大家面试的时候,有没有遇到这种情况,面试工资谈的是10K,最后干着40K的活!说着冠冕堂皇,提升大家能力的话,做着死命压榨员工,996成了程序员心里的魔咒! 初级安卓开发工程师(10K-1 ...

  6. mysql腾讯面试题_2020腾讯阿里精选面试题100+(包含答案)

    前言 武功再高,也怕菜刀,确认过眼神,你得是对的人才行.就算是技巧,也要建立在硬核实力上面. 本文总结的是关于BAT的精选面试题 由于面试题较多,篇幅过长.就没有一 一展示出来了,面试题获取看我个人介 ...

  7. 在阿里外包是一种什么样的体验?

    在阿里外包是一种什么样的体验? 停更了好久,来迟啦.不过依托于前面文章,粉丝数居然不降反升,感谢感谢大家~ 至于为啥好久没更新了,这篇文章就是答案. 开始吧~有点长,耐心看撒~. 从来之前的炎炎夏日酷 ...

  8. 程序员吐槽培训班简历造假,经验包装竟拿到阿里外包26k的offer

    关于程序员速成培训班的传言和八卦很多,近日,又有一个程序员发帖吐槽培训班简历造假,两个大四学生报了个培训班,竟然给包装成有三年工作经验的人,更离谱的是,竟然还拿到了阿里外包26k的offer-- 许多 ...

  9. 史上最全阿里 Java 面试题总结及答案

    史上最全阿里 Java 面试题总结及答案 qq_35151346 于 2019-08-06 13:26:53 发布 33740 收藏 817 分类专栏: 面试题 文章标签: 阿里巴巴 面试题 答案 j ...

最新文章

  1. Caffe部署中的几个train-test-solver-prototxt-deploy等说明二
  2. 【BZOJ 1528】 1528: [POI2005]sam-Toy Cars (贪心+堆)
  3. “对技术没有好奇心”真的是很失败的一件事情
  4. 双11特刊|购物车实时显示到手价,看云原生内存数据库Tair如何提升用户体验?
  5. 在openEuler上做开发?这个大赛拿出30万寻找开源的yyds
  6. python获取路径下所有文件_Python 之 glob读取路径下所有文件夹或文件方法
  7. EXCEL 连接符的使用
  8. 【Bash百宝箱】shell作业控制(jobs、bg、fg)
  9. 如何解决RS485 通讯接口被主站占用的问题
  10. 安全事件应急响应工具箱
  11. TiDB 在马上消费金融核心账务系统归档及跑批业务下的实践
  12. C - Fewest Flops
  13. 天津2019全国计算机二级,2019年上半年全国计算机等级考试报名啦
  14. rk3288 ddr 开发指南
  15. win10 chrome被毒霸2345劫持主页处理过程与结果
  16. 【大学生必备神器网站】免费论文下载、免费2T网盘、各类免费课程、在线高数引擎...收藏了4年的宝藏学习网站最全の整理推荐!
  17. 关于华三WLAN调试空口利用率居高不下的调试心得
  18. 基于webmagic的种子网站爬取
  19. POE网络变压器的检测要求及具体测试标准
  20. UAC协议基础第一篇: UAC类设备相关的描述符

热门文章

  1. 钉钉的想象力,向企业服务第一平台进阶
  2. python 波动率锥_推广 || “上海财大”期权实战技巧特训班(六月)
  3. 二进制和字符串之间的互相转换 及 json文件和csv文件
  4. HDU 4741 Save Labman No.004(计算几何)
  5. SCJP考题中的陷阱---来自水木清华BBS
  6. 分享一些videoaudio格式
  7. mysql编译安装脚本(附详解)
  8. Qt使用MySql数据库
  9. 微信中直接下载app的解决方法,如何解决微信中无法直接下载app的问题
  10. Android5.0、6.0、7.0去除WIFI感叹号