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

面試就业题库(三)

  文章目录
  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)

大屏手机如何选?这三款机身薄颜值高,很适合大屏用户自从手机进入全面屏时代以来,手机的尺寸与屏幕就整体得以提升,小屏手机逐步被市场淘汰。其实不仅小屏手机不好买,大屏手机也很少,现在的手机屏幕基本都维持在6。5英寸的黄金尺寸。最近就有发挥新型实体企业效能,京东京东方海信的以实助实探索与平台企业不同,京东是一家同时具备实体企业基因和属性拥有数字技术和能力的新型实体企业。京东根植于实体经济,成长于实体经济,服务于实体经济,无论是在乡村振兴中,还是为大型企业数字化转未来十年,对话式计算环境计算和云PC会把世界变成什么样?来源计算机世界对话式计算环境计算和云PC的融合可能会在十年内彻底重塑科技界。新冠肺炎疫情已对IT行业的变革速度产生了深远的影响。现在我们比以往任何时候都更流行远程连接。视频会议迎来苹果12真的香吗?这些性能确实让人心动,看完这些再买也不迟苹果12是4G和5G信息时代之间的过渡点。12是第一代5G,所以在选择12之前,我想给大家介绍一下这12的相关性能。介绍如下这款手机一共有四种型号,分别是12mini1212Pro小米卢伟冰那条发后秒删的微博,到底说了什么?近一周,手机厂商们相当忙,忙着准备发布会,忙着举办发布会忙着关心友商的新品发布会。而在百忙之中,小米高级副总裁中国区总裁卢伟冰卢总抽空发了一条微博。卢总表示探讨和咨询一个问题大家买投资7分甜的雷军派送3。7亿元红包这件事对茶饮人有3个启发中国饮品快报当我们做感恩顾客的活动时,如果活动对谁都有效,或许那只是一次清仓大处理。8月11日,1011分,我的手机里下载并安装了小米商城。驱使我这样做的原因,只有一个,雷军在小米AI时代我们的生活应该是什么样的?AI时代我们的生活应该是什么样的?充满黑科技?还是空前颠覆?在技术通往星辰大海的路上与我有关或许是最完美的表达让我们等待科技最真情的告白吧!距离百度世界大会还有两天01百度世界大会中国该不该让美企打包回国?众所周知,个人数据信息一旦泄露,我们的日常生活将会受到严重的影响和干扰。比如,身份信息泄露,被不法分子利用,我们自己和家人将可能受到诈骗者的侵扰相信我们多数人,都曾有过被垃圾信息甚小米平板5系列迎来首销!骁龙870加持首发1999元起CNMO新闻此前的8月10日,小米带来了小米MIX4小米平板5系列等大量新品。8月16日,这些新品正式迎来首销。其中小米平板5系列今天上午10点开启首销,首发1999元起。小米平板小米致歉因不符合国家相关规定,小米MIX4防丢模式刚发布就被叫停物联网智库整理发布导读近日,小米在微博上发布声明称小米MIX4的防丢失模式中提供了无卡联网服务,此服务技术方案不符合国家相关规定,尚未获准在手机产品中应用,因此小米将取消该服务上线小米一直想做成高端手机,你觉得高端手机必不可少的硬件是什么?自从红米和小米分开之后,雷总就有意地想把小米做成高端的手机,但是从一开始的note系列再到MIX系列,感觉高端梦一直不是很顺利,知道小米10系列的出现,小米才慢慢地将高端系列做起来
国民神车走入清华?第三代哈弗H6定义智能时代的神车新标准Withgreatpowercomesgreatresponsibility。(能力越大责任越大)这句话是漫画蜘蛛侠中的经典台词。这样的压力正是长城哈弗团队真切感受到的。作为一款国华为nova8Pro新版上市,售价3699元,有哪些看点?最近,华为nova8Pro新版上市,支持4G全网通,售价3699元,成为华为中端手机的新选择。实际上,华为最近有不少新机上市,但大家也都看到了一个特点,就是采用的处理器支持4G网络全面迈进电动化新时代本田中国发布全新纯电动车品牌eN本田中国以eN系列正式开启了电动化品牌的新纪元,凭借本心尽致的eN系列产品全新的生产营销和服务体制为中国消费者提供超越期待的全新价值体验。本田将着力于环境与安全两大领域,为实现20强大的不只是动力东风风神AX7马赫版能否再担品牌冲量重任中国汽车市场除了新能源汽车发展的速度在不断加快之外,另一个现象就是SUV车型一直都在持续地推陈出新。本月吉利博越X刚刚上市,长安欧尚X7PLUS也即将登场,而在9月底上市的东风风神开启独立运营!R品牌更名飞凡汽车,抢占中高端智能电动车市场10月29日,R品牌迎来重要发展里程碑,拟设立飞凡汽车科技公司(以下简称飞凡汽车)以独立公司的方式进行市场化运作。飞凡汽车由上汽集团投资成立,注册资本70亿元人民币,其中上汽集团出比亚迪新能源汽车高歌猛进9月销量背后藏着怎样的奥秘?2021年前三季度已经过去,在疫情反复和芯片短缺的影响下,今年的车市表现一直都不太乐观。但是,到了临近年底的发力时刻,不少车企也是想尽办法保证在金九银十之际在销量上创造出更好的成绩融合创新打破壁垒比亚迪e平台3。0重塑智能电动汽车提过国内新能源汽车企业,相信大家首先想到的自然是比亚迪,在许多人心中已经留下了比亚迪等同于新能源的主观印象。从刀片电池的横空出世,到超级混动DMi的惊艳亮相,比亚迪在技术上的每一次抓住618最后两天,这两款高性价比旗舰机不容错过618刚兴起的时候,购物节只有6月18日一天,而且促销的产品以数码电子产品为主。但是,随着某些因素的影响,现在每年的整个6月上旬都演变成了购物季,真的等到6月18日这天,618已经2021世界显示产业大会将于6月下旬在合肥举行今日,2021世界显示产业大会新闻发布会在北京召开,由工业和信息化部安徽省人民政府主办的2021世界显示产业大会将于6月17日18日在安徽省合肥市举行。据主办方介绍,本次大会主题是将年轻人客厅打造成剧幕影院,75英寸创维剧幕影院A3即将开卖将客厅打造成剧幕影院,几乎是所有年轻人的共同梦想。下班回到家,或是周末躺在沙发上,享受影院震撼观影体验的同时,又能拥有不被打扰的静谧空间,所有的疲惫都能在治愈的观影过程中得到释放这一揽子解决上云后顾之忧锐捷三擎云桌面正式发布6月30日,锐捷网络举办海纳百川,三擎聚变为主题的媒体发布会,正式对外发布新一代云桌面解决方案锐捷三擎云桌面解决方案。会上针对三擎云桌面的终端云化引擎桌面云化引擎和应用云化引擎这三