范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

面試就业题库(三)

  文章目录
  1. java基础(1) 5.0 多线程系列
  5.0.1 自定义线程类
  5.0.2 线程的生命周期(状态)
  5.0.3 线程池的实现原理?四种线程池?重要参数及原理?任务拒接策略有哪几种?
  5.0.4 线程池的执行流程
  5.1 java内存模型系列
  5.1.0 内存分配
  5.1.1 堆里面的内存分配
  5.1.2 垃圾回收算法解释说明
  1 标记-清除算法
  2 复制算法
  3 标记-整理算法
  4 分代收集算法:
  5.1.3 垃圾回收器说明
  1. CMS收集器
  2. G1收集器5.2 JDK8新特性(大家查下看下)
  2. javaweb(1)
  2.1 javaweb三大组件: Servlet, Filter, Listener
  2.2 Servlet特点,线程是否安全
  2.3 Filter过滤器作用是什么, 后面学习的springmvc有什么关系, 和springmvc的拦截器的区别?
  2.4 Listener的分类, 作用是什么,后期那些框架里面用到了监听器?
  2.5 Cookie 和 Session 区别以及使用场景?
  3. ssm+springboot+springCloud(1.5)
  4. 企业开发的项目: 技术说明(1.5)
  5. 面试总结(3,4)1. java基础(1)
  5.0 多线程系列
  5.0.1 自定义线程类
  1 继承Thread
  2 实现Runnable接口(实现多个线程共享同一个资源)
  3 实现Callable接口(实现执行完线程后,拿到返回值)
  Thread和Runnable接口实现自定义线程类, 区别.
  相同点: 都可以开启多线程,实现功能.
  不同点:
  Thread 不能共享资源.
  Runnable 共享资源.
  场景: 多线程上传(下载)文件, 多线程实现卖票.
  分析: 文件(比如:一个大的文件, 5G)就是一个资源,可以初始化5个线程共享一个文件
  票(比如: 10000张票)就是一个资源,可以初始化100个线程共享10000票
  实现: 通过 Runnable 接口,自定义线程类,去共享资源.
  实现Callable接口的任务线程能返回执行结果;而实现Runnable接口的任务线程不能返回结果;
  1.Callable接口的call()方法允许抛出异常;而Runnable接口的run()方法的异常只能在内部消化,不能继续上抛;
  2.Callable接口支持返回执行结果,此时需要调用FutureTask.get()方法实现,此方法会阻塞主线程直到获取‘将来’结果;当不调用此方法时,主线程不会阻塞!
  {Thread.Runnable接口} 和 Callable实现自定义线程类, 区别.
  5.0.2 线程的生命周期(状态)
  Thread对象共有6种状态:NEW(新建),RUNNABLE(运行),BLOCKED(阻塞),WAITING(等待),TIMED_WAITING(有时间的等待),TERMINATED(终止);状态转换又如图:
  也有一种说法,我认为也可以:
  线程只有"就绪"、"阻塞"、"运行"三种状态(新建[NEW]"和"终止[TERMINATED]"状态的线程并不是线程,只是代表一个线程对象还存在):
  RUNNABLE,对应"就绪"和"运行"两种状态,也就是说处于就绪和运行状态的线程在java.lang.Thread中都表现为"RUNNABLE"
  BLOCKED,对应"阻塞"状态,此线程需要获得某个锁才能继续执行,而这个锁目前被其他线程持有,所以进入了被动的等待状态,直到抢到了那个锁,才会再次进入"就绪"状态
  WAITING,对应"阻塞"状态,代表此线程正处于无限期的主动等待中,直到有人唤醒它,它才会再次进入就绪状态
  TIMED_WAITING,对应"阻塞"状态,代表此线程正处于有限期的主动等待中,要么有人唤醒它,要么等待够了一定时间之后,才会再次进入就绪状态
  一个线程连着调用start两次会出现什么情况?
  不能, 如果调用两次,报非法的状态异常.
  5.0.3 线程池的实现原理?四种线程池?重要参数及原理?任务拒接策略有哪几种?
  自定义线程池,常见的方式
  线程池顶层接口: Executor
  线程池:
  线程池内部维护了一个线程列表,我们使用线程池只需要定义好任务,然后提交给线程池,而不用关心该任务是如何 执行、被哪个线程执行,以及什么时候执行.jdk1.5引入Executor线程池框架Executor线程池框架,有以下四种实现
  任务调度框架: Spring Task框架(用的多),corn 时间表达式 Quratz框架,corn 时间表达式
  比如: 无效订单在30分钟后(从订单创建到持续30分钟结束,订单的付款状态),自动清除 5.0.4 线程池的执行流程
  handler拒绝策略:
  有四种:
  第一种AbortPolicy:不执行新任务,直接抛出异常,提示线程池已满
  第二种DisCardPolicy:不执行新任务,也不抛出异常
  第三种DisCardOldSetPolicy:将消息队列中的第一个任务替换为当前新进来的任务执行
  第四种CallerRunsPolicy:直接调用execute来执行当前任务5.1 java内存模型系列5.1.0 内存分配
  区别: jdk8之后没有永久代, 被元数据替代了 jdk8之后, 常量池,以及class类新存储在元数据存储, jdk8之前在方法区存储. 5.1.1 堆里面的内存分配
  新生代GC(Minor GC):指发生新生代的的垃圾收集动作,Minor GC非常频繁,回收速度一般也比较快(需要有效率的垃圾回收算法: 复制清除算法)。
  老年代GC(Major GC/Full GC):指发生在老年代的GC,出现了Major GC经常会伴随至少一次的Minor GC(并非绝对),Major GC的速度一般会比Minor GC的慢10倍以上。
  新生代—老年代保存对象的过程
  当我们新new对象以后,存在eden区(新生代)
  当eden区空间不足时,采用Minor GC垃圾回收器清理空间
  会将没有清理对象(存活对象)移动到s1区
  当s1区空间不足时,采用Minor GC垃圾回收器清理空间
  会将没有清理对象(存活对象)移动到s2区
  当s2空间不足时,采用Minor GC垃圾回收器清理空间
  说明当前存活的对象已经是经常使用的对象.
  将新生代里面经常使用的对象移动到老年代
  当老年代空间不足时,采用Major GC/Full GC进行回收不使用的对象,清理空间5.1.2 垃圾回收算法解释说明
  新生代空间:
  存储新new对象, 垃圾回收器频繁在新生代进行垃圾回收,需要垃圾回收执行效率要高.
  通常采用标记-清除算法
  老年代空间
  存储大的对象(通常指的大的数组对象)以及存活时间久的对象,不需要频繁的进行垃圾回收.对执行回收效率没有要求.
  通常采用:标记-整理算法(在G1垃圾回收器里面用的比较多)
  1 标记-清除算法
  分为两步:
  先从堆内存中判断已经不再使用的对象,进行标记
  将标记的对象使用垃圾回收器进行清理
  算法分为"标记"和"清除"阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。它是最基础的收集算法,效率也很高,但是会带来两个明显的问题:
  效率问题
  空间问题(标记清除后会产生大量不连续的碎片)
  2 复制算法
  为了解决效率问题,"复制"收集算法出现了。它可以将内存分为大小相同的两块,每次使用其中的一块。当这一块的内存使用完后,就将还存活的对象复制到另一块去,然后再把使用的空间一次清理掉。这样就使每次的内存回收都是对内存区间的一半进行回收。
  优点: 执行效率高
  3 标记-整理算法
  分为3步:
  先从堆内存中判断已经不再使用的对象,进行标记
  将存活的对象进行移动,放在一起
  将标记的对象一一清除
  缺点: 执行效率低
  优点: 堆内存空间是连续的
  根据老年代的特点特出的一种标记算法,标记过程仍然与"标记-清除"算法一样,但后续步骤不是直接对可回收对象回收,而是让所有存活的对象向一段移动,然后直接清理掉端边界以外的内存。
  4 分代收集算法:
  针对不同的堆内存空间的划分采用具体的算法
  新生代: eden区, s1区,s2区
  老年代: 存放存活时间久的和大的数组对象
  当前虚拟机的垃圾手机都采用分代收集算法,这种算法没有什么新的思想,只是根据对象存活周期的不同将内存分为几块。一般将java堆分为新生代和老年代,这样我们就可以根据各个年代的特点选择合适的垃圾收集算法。
  比如在新生代中,每次收集都会有大量对象死去,所以可以选择复制算法,只需要付出少量对象的复制成本就可以完成每次垃圾收集。而老年代的对象存活几率是比较高的,而且没有额外的空间对它进行分配担保,所以我们必须选择"标记-清除"或"标记-整理"算法进行垃圾收集。
  5.1.3 垃圾回收器说明
  1. CMS收集器
  CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。它而非常符合在注重用户体验的应用上使用。
  CMS(Concurrent Mark Sweep)收集器是HotSpot虚拟机第一款真正意义上的并发收集器,它第一次实现了让垃圾收集线程与用户线程(基本上)同时工作。
  从名字中的Mark Sweep这两个词可以看出,CMS收集器是一种 "标记-清除"算法实现的,它的运作过程相比于前面几种垃圾收集器来说更加复杂一些。整个过程分为四个步骤:
  初始标记: 暂停所有的其他线程,并记录下直接与root相连的对象,速度很快 ;
  并发标记: 同时开启GC和用户线程,用一个闭包结构去记录可达对象。但在这个阶段结束,这个闭包结构并不能保证包含当前所有的可达对象。因为用户线程可能会不断的更新引用域,所以GC线程无法保证可达性分析的实时性。所以这个算法里会跟踪记录这些发生引用更新的地方。
  重新标记: 重新标记阶段就是为了修正并发标记期间因为用户程序继续运行而导致标记产生变动的那一部分对象的标记记录,这个阶段的停顿时间一般会比初始标记阶段的时间稍长,远远比并发标记阶段时间短
  并发清除: 开启用户线程,同时GC线程开始对为标记的区域做清扫。
  从它的名字就可以看出它是一款优秀的垃圾收集器,主要优点:并发收集、低停顿。但是它有下面三个明显的缺点:
  对CPU资源敏感;
  无法处理浮动垃圾;
  它使用的回收算法-"标记-清除"算法会导致收集结束时会有大量空间碎片产生。
  2. G1收集器
  G1 (Garbage-First)是一款面向服务器的垃圾收集器,主要针对配备多颗处理器及大容量内存的机器. 以极高概率满足GC停顿时间要求的同时,还具备高吞吐量性能特征.
  被视为JDK1.7中HotSpot虚拟机的一个重要进化特征。它具备一下特点:
  并行与并发:G1能充分利用CPU、多核环境下的硬件优势,使用多个CPU(CPU或者CPU核心)来缩短Stop-The-World停顿时间。部分其他收集器原本需要停顿Java线程执行的GC动作,G1收集器仍然可以通过并发的方式让java程序继续执行。
  分代收集:虽然G1可以不需要其他收集器配合就能独立管理整个GC堆,但是还是保留了分代的概念。
  空间整合:与CMS的"标记–清理"算法不同,G1从整体来看是基于"标记整理"算法实现的收集器;从局部上来看是基于"复制"算法实现的。
  可预测的停顿:这是G1相对于CMS的另一个大优势,降低停顿时间是G1 和 CMS 共同的关注点,但G1 除了追求低停顿外,还能建立可预测的停顿时间模型,能让使用者明确指定在一个长度为M毫秒的时间片段内。
  G1收集器的运作大致分为以下几个步骤:
  初始标记
  并发标记
  最终标记
  筛选回收
  G1收集器在后台维护了一个优先列表,每次根据允许的收集时间,优先选择回收价值最大的Region(这也就是它的名字Garbage-First的由来)。这种使用Region划分内存空间以及有优先级的区域回收方式,保证了GF收集器在有限时间内可以尽可能高的收集效率(把内存化整为零)。
  总结:
  堆内存细化4块空间:
  新生代: eden, s1,s2
  老年代: Generation
  不同的空间采用的算法
  不同的垃圾回收算法特点
  CMS和G1垃圾回收器的区别
  5.2 JDK8新特性(大家查下看下)
  Stream流
  lambda表达式
  接口改变
  新的日期api
  等等其余6个
  2. javaweb(1)
  2.1 javaweb三大组件: Servlet, Filter, Listener
  Servlet作用: 接收请求和响应数据到客户端.
  Filter作用: 拦截请求和响应.场景: 处理全局的中文乱码问题,权限校验,加载配置文件等操作
  实现拦截资源: 静态资源(html, css, js, 图片等等)和动态资源(后台与客户端交互的类,比如: controller)都会拦截
  配置拦截路径: 1. /资源名称 2. /* 拦截所有资源 3. .扩展名, 比如: .html,
  Listener作用: 监听对象状态的改变,以及加载配置文件.
  2.2 Servlet特点,线程是否安全
  2.3 Filter过滤器作用是什么, 后面学习的springmvc有什么关系, 和springmvc的拦截器的区别?
  自定义过滤器: 实现Filter接口,
  有个方法doFilter(req, response): 拦截请求和响应,放行: Filterchain对象放行方法
  SpringMVC大量用到了过滤器,
  比如: CharacterEncodingFilter, 处理乱码问题,以及加载springmvc的配置文件.
  过滤器和springmvc的拦截器有关系有什么区别?
  过滤器是web是三大组件之一,基于web开发环境(web项目).
  springmvc的拦截器和过滤器没有关系,拦截器实现基于代理(默认jdk动态代理)方式实现的.
  2.4 Listener的分类, 作用是什么,后期那些框架里面用到了监听器?
  自定义一个监听器: 实现Listener接口
  监听器:分为三大类,八个监听器.
  监听器: 在spring框架里面,springmvc框架里面使用,springboot框架里面.
  *比如: spring框架,使用ContextLoaderListener在web服务器启动时,读取spring配置文件,初始化bean对象,装配到spring容器中(ConCurrentHashMap)2.5 Cookie 和 Session 区别以及使用场景?3. ssm+springboot+springCloud(1.5)4. 企业开发的项目: 技术说明(1.5)5. 面试总结(3,4)

世体登贝莱变得擅于沟通两年前他基本只跟格列兹曼交谈据西班牙媒体世界体育报报道,巴萨边锋登贝莱展现出了全新的面貌,他在更衣室里也变得比之前更加擅于沟通。在今夏与巴萨续约后,登贝莱拿出了全新的一面,根据巴萨更衣室的消息源透露,球员在更湖记佩林卡需要尽快做出决定这个休赛期是湖人最后的机会直播吧7月31日讯湖人记者NicoleGanglani近日撰文分析了佩林卡和湖人的一些情况。佩林卡保住工作的最好方法,就是做与让他一开始处于热议之中完全相反的事情。最近的交易似乎证Lowe艾顿和太阳的关系早已不可修复直播吧7月31日讯在近日的播客节目中,名记ZachLowe谈到了艾顿和太阳现在的关系。艾顿的情况很奇怪,我和很多NBA人士聊了这件事,得到的反馈是他们之间的关系已经不可修复,两边都4消息!李添荣签AJ,昊文打德鲁联赛,张宁3年续约,NBL有意4新星今天AJ官宣他们已经签约了李添荣,这是一个让人意外的情况。当然李添荣能不能在比赛中穿还不清楚,毕竟这个还是需要申请的。只是这个时候无数人都在质疑李添荣为什么可以签约,可能还是因为球解密体育总局新掌门曾兼冬季中心主任表态要啃硬骨头中国新闻网29日晚,国家体育总局网站总局领导页面更新,此前担任国家体育总局副局长的高志丹显示担任局长党组书记职务,主持总局全面工作。国家体育总局网站截图2016年6月,高志丹被任命女排世界冠军为爱子庆生!一年前奉子退役,3次大赛高光难掩遗憾今年33岁的曾春蕾在社交媒体上公布了一组为儿子庆生的照片,转眼间曾春蕾的孩子都满1周岁了,早在东京奥运会备战之前,曾春蕾就在排超联赛期间意外怀孕,不但无缘出战北京女排的比赛,也间接457记三分!业余联赛爆发小托马斯打出身价,老鹰三少迎来首秀不得不承认的是,在詹姆斯德罗赞的带动下,业余联赛已经吸引了越来越多的球员参加,这也让今年的休赛期,充满了看点!当然,现实的情况是,诸如德鲁联赛和克6联赛,一直都备受职业球员的青睐,南非世界杯最大冤案,兰帕德门线之谜,是报应还是还债?相信大家都看过这样一则百事广告兰帕德在面对卡恩时一脚射门,却发现皮球刚刚碰到了球门线,裁判并没有任何表示。然而,这则广告却在多年之后精准预测了兰帕德的这脚门线冤案。英格兰的希望被拉B费摊手抱怨埃兰加,C罗称赞达洛特为比特犬,曼联缺少右边锋在曼联01输给马德里竞技的比赛过后,滕哈格接受采访时表示曼联错失得分机会是不可接受的,滕哈格认为曼联创造了许多进球机会,但是没有1次破门得分,曼联前场球员把握机会的能力太差了。这场沪媒加的斯未向刘若钒提供协议,仅有意向就让申花放人不实际直播吧7月31日讯据足球报报道,西甲加的斯俱乐部邀请申花前锋刘若钒加盟。新民晚报最新消息称,加的斯只是对申花表达了请刘若钒加盟的意向,并未提供具体的协议。对于加的斯邀请刘若钒加盟一越南国脚阮光海在欧洲联赛首秀,与武磊当初遇到的没有什么两样在今天早上法乙第一轮的比赛中波城队客场04负于了甘冈队,越南国脚阮光海在下半场第59分钟替补登场完成了他在欧洲联赛的首秀。越南国脚阮光海在下半场第59分钟替补登场虽然看的是越南球员
NASA公布SpaceX下一次空间站补给发射时间NASA和SpaceX将于美国东部时间11月26日周六下午2点20分,向国际空间站进行第26次商业补给任务。由于佛罗里达州太空海岸恶劣的天气条件,原定于11月22日的发射计划被取消甄嬛传沈眉庄黑化后手段太残忍看的甄嬛目瞪口呆头条创作挑战赛沈眉庄为什么会黑化?他第一次害人又有多狠毒?华妃把沈眉庄从贵人位份上拉下来后,他心中依旧不解气,于是把染了10亿的垫子给沈梅庄做。沈梅庄如她所愿患上病,要不是她的好姐时间过客我想对你说时光流转,流年暗换,不知不觉,匆匆忙忙又一年。2022年渐渐接进尾声,仔细盘点这一年收入惨淡,破事不断头发更少,衣袋更宽。只能自己安慰自己,人生如逆旅,我亦是行人。无论是孩子何时开始性教育继续上热搜!这个时间这样方法最合适昨天大壮哥聊到了一位单亲妈妈在儿子的书包里翻出避孕套的案例,案例里的妈妈处理还算得当,没有藏着掖着,而是开诚布公的和儿子聊了避孕套的用途和相关的生理卫生知识,但是儿子已经上初中了,多家无卡支付平台宣布暂停服务,恢复时间另行通知近日,无卡支付平台佳付通手机POS机发布公告,暂停系统服务。具体如下同时,富裕钱包也暂停服务,据客服回答技术那边还没有回复,升级好了会通知的。根据企查查显示,富裕钱包APP的主体公学前教育在回归童趣,初等教育还是和时间拼命三天时间,因为标准化评估,走访了9家幼儿园,8家县城,1家乡镇,多数都是近五年内建设的。房子漂亮,装修童趣,器材多样,引得我们考评组4人只能呼豪横。近十年,不管是教学设备,还是教学乘私人飞机去滑雪拉长有效度假时间,滑雪季从机场跑道到雪道长白山万达国际度假区宣布20222023雪季将于11月18日正式开板。板仔们,爱飞嘉iFlyPlus滑雪包机出发。为什么要选择爱飞嘉iFlyPlus私人飞机去滑雪?轻松带上所有户外真割草游戏吸血鬼幸存者(VampireSurvivors)吸血鬼幸存者(VampireSurvivors)中最厉害的角色是谁呢?可能绝大部分人会说是女王西格玛(Sigma)。毕竟西格玛拥有出色的初始属性,主技能君临剑升级为别无他法后,能与听说了吗?彩虹岛手游要新增副本了哈喽,小伙伴们,你们好啊,小编呢还如往常一样,不过今天给小伙伴们带来了一个天大的好消息。不知你们有没有走小道消息中听说彩虹岛手游要第二次大更新了更新确确实实的是要更新,不过你们知道战网国服怎么改成国际服,暴雪战网国际服怎么改国家地区教程日前暴雪宣布将在不久之后暂停大部分游戏的国服服务,于是很多国服的玩家们还想要继续游玩这些游戏的话就只能转战到国际服的平台。但是战网有国服和国际服之分,两边账号不同步,很多玩家不太清七款已经停服的FPS射击网游,在当年都很不错大家好,我是你们的小快乐,又来为大家分享游戏内容了!在早些年前,智能手机还没有像现在这样发达的时候,电脑是大家的主力游戏设备,而且那个时候的电脑网络游戏也特别多,由于深受CF的影响