Java核心知识点常考面试题(持续更新中)

Java核心知识点常考面试题(持续更新中)

  • 线程与线程池
  • Java锁机制
    • 轻量级锁
    • 重量级锁

线程与线程池

一、线程

1、线程的状态
在这里插入图片描述
2、线程的创建方式
(1)继承 Thread 类;
(2)实现 Runnable 接口,不带返回值;
(3)实现 Callable 接口,带返回值,阻塞式获取返回值;

public static void main(String[] args) {System.out.println("===开始===");//通过结合FutureTask类实现FutureTask<String> futureTask = new FutureTask<>(() -> {String result = "";//结果处理过程......result = "Hello world!";return result;});Thread thread = new Thread(futureTask);thread.start();try {//阻塞主线程并获取返回值String result = futureTask.get();System.out.println("result = " + result);} catch (InterruptedException | ExecutionException e) {e.printStackTrace();}System.out.println("===结束===");
}

(4)通过线程池创建线。注意:Java原生线程池(阿里官方不推荐使用Executors),原因如下:
在这里插入图片描述

二、线程池

1、线程池的核心参数
(1)corePoolSize:核心线程数。
(2)maxinumPoolSize:最大线程数。
(3)keepAliveTime:空闲线程存活时间。
(4)unit:时间单位(秒、分钟等)。
(5)workQueue:任务队列,存放任务的容器。
(6)threadFactory:线程工厂,可以使用默认的,或自定义的,通常使用默认。
(7)handler:拒绝策略,顾名思义,拒绝线程访问,JKD自带共有四种策略,如下:

1、new ThreadPoolExecutor.AbortPolicy():丢弃任务,并抛出RejectedExecutionException异常
2、new ThreadPoolExecutor.DiscardPolicy():丢弃任务,但是不抛出异常
3、new ThreadPoolExecutor.DiscardOldestPolicy():丢弃队列最前面的任务,然后重新提交被拒绝的任务
4、new ThreadPoolExecutor.CallerRunsPolicy():该任务被线程池拒绝,由调用 execute方法的线程执行该任务。

2、如何设置线程池参数

public static void main(String[] args) {//计算CPU核数int cpuCores = Runtime.getRuntime().availableProcessors();ThreadPoolExecutor threadPool = new ThreadExecutor(corePoolSize,   //核心线程数maxinumPoolSize,  //最大线程数,CPU密集型即高并发(一般为CPU核数),IO密集型(一般为:CPU核数*2)keepAliveTime,  //空闲线程的存活时间unit,  //超时时间单位workQueue,  //工作队列:new LinkedBlockingDeque<>(3),阻塞队列threadFactory,  //Executors.defaultThreadFactory(),默认创建线程的工厂,一般不动handler  //拒绝策略:ThreadPoolExecutor.AbortPolicy(),队列满了还有任务直接抛出异常);
}

3、线程池的状态及说明
线程池的状态及说明

Java锁机制

轻量级锁

一、CAS(Compare And Swap):比较并交换。也被成为:乐观锁、自旋锁。参考文章:https://blog.csdn.net/weixin_43715214/article/details/128255225

重量级锁

一、synchronized 关键字

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/352296.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

IDEA2023.1配置Git

一、前言 在使用新设备整理git项目时&#xff0c;报了以下问题&#xff0c;在整理项目的同时&#xff0c;做下记录。 二、下载git 2.1.官网下载git 官网下载地址&#xff1a; git官网&#xff0c;如下图所示&#xff1a; 如果选方法二&#xff0c; 接下来会让选择系统&#…

【cocos精品】《三国之刃》:腾讯首款三国炫技格斗手游

基于cocos引擎开发的《三国之刃》是腾讯独家代理的三国题材的动作格斗手游。独创的自由组合战技系统&#xff0c;配合特色的兵器和灵兽技能&#xff0c;可搭配出上万种格斗套路&#xff0c;让您的战斗酣畅淋漓又变幻莫测。清爽灵活的操作&#xff0c;无锁定技术PK&#xff0c;更…

java开发街机三国志_入坑必看《街机三国志》游戏初期重点讲解

《街机三国志》为了让新手更好的了解游戏&#xff0c;设立里相关的新手指引&#xff0c;引导新入门的玩家完成各种任务与基础的系统教学。只凭新手教学是没办法在初期阶段积累足够的资源的。本次小编特意整理了一些新手教程中没有提及的重点&#xff0c;希望帮助玩家们更好的开…

搜索引擎三国鼎立:百度 vs 360 vs 搜狗

理论上说&#xff0c;搜索市场不存在平分秋色的可能&#xff0c;不管份额如何接近&#xff0c;最终必然是东风压倒西风&#xff0c;这一点在全球市场都未见过反例。雅虎在日本和台湾独占鳌头&#xff0c;Naver在韩国有压倒性优势&#xff0c;Yandex称霸俄罗斯。谷歌在全球大部分…

街机三国志隐藏人物刘备_隐藏的人物

街机三国志隐藏人物刘备 最初的程序员的故事将永远不为人知 背后没有外套的男人是梅尔凯&#xff08;Mel Kaye&#xff09;&#xff0c;埃德纳瑟&#xff08;Ed Nather&#xff09;为他写了他永恒的程序员绝版经典著作《故事》 。 那一年是1960年&#xff0c;尽管存在有关他编…

Java霸王的大陆梦幻版_三国志霸王的大陆,喜欢三国的进

三国是中国历史上英雄辈出的时代&#xff0c;《霸王的大陆》这款移植自Fc的战棋游戏更是中国手游java游戏的No.1!该游戏内容极其丰富&#xff0c;对玩家的要求很高&#xff0c;因此这完全是一款符合游戏高手要求的大型单机游戏。以下是这款游戏的核心攻略&#xff0c;只要稍加留…

无可用下载链接_经典大全合集500个街机游戏大全下载

经典大全合集500个街机游戏大全下载 WinKawaks1.45模拟器 游戏链接 链接:https://pan.baidu.com/s/1MZ3_Gv825dtswcGXr006zQ 提取码:zhrk 一、游戏介绍

linux模拟器玩三国战记,三国战纪风云再起街机版

三国战纪风云再起街机版带你回忆最初玩三国街机游戏的乐趣,多种对战玩法轻松上手,在三国战纪风云再起街机版手机游戏里面玩家可以随便选择一个角色进入战斗,强烈的打击感绝对让你爱不释手,在指尖畅享超酷的格斗盛宴。 三国战纪风云再起街机版介绍 三国战纪风云再起街机版是…

智勇三国

视频: http://you.video.sina.com.cn/a/4806164-1488862174.html 8M的客户端下载地址: 一,http://yule.hedanwang.cn/sanguozhi/sanguozhi_864.htm 二,QQ群:100410266 的群共享下载 智勇三国是单机游戏三国群英传2的简单化、网络化、智能化。简单化指的是保留精华&#xff0c…

小时候玩的10款经典街机游戏,如今我们都在玩什么?

很多的人的童年&#xff0c;都是伴随着游戏度过的。尤其是8090后。今天就列举10款经典的大型街机游戏&#xff0c;跟大家一起回忆一下童年时光&#xff0c;不信没有你玩过的&#xff01; 1、《拳皇》 小时候小编最喜欢的大型对战格斗型街机游戏之一&#xff0c;一阵猛如虎的操…

toFixed精度丢失问题

bug说明&#xff1a; 10.3950 * 3935.00 用toFixed&#xff08;2&#xff09; 得到的是40904.32 实际应该是40904.33 解决的方法&#xff1a; 第一种&#xff1a; 在main.js中直接复制下面代码即可 Number.prototype.toFixed function (n) {n n || 0let resNum Math.ro…

深浅拷贝及赋值区别理解

浅拷贝&#xff1a; 对象浅拷贝Object.assign() 数组的浅拷贝Array.prototype.slice()与Array.prototype.concat() 解构赋值 1.对于数组/对象中基本数据类型[123,234]&#xff0c;拷贝的是数值&#xff0c;所以修改拷贝后的这个值&#xff0c;原数据不会改变&#xff1b;2.对…

谷歌浏览器手动设置Cookie

1、Chrome中访问地址chrome://flags 2、搜索Partitioned cookies将设置项改为Enabled即可&#xff0c; 3、重启浏览器&#xff0c;手动添加cookie将会保留&#xff0c;且不会标红

JavaScript网页cookie的“简单”设置

今天学习了“网页cookie”的简单设置&#xff0c; 这是一个&#xff0c;登录模型的简单设置&#xff0c;因为连接了"数据库"&#xff0c;刷新的时候会一直“重复”让输入&#xff0c;很繁琐&#xff0c;结果查找了&#xff0c;一些 网页Cookie的设置方法&#xff0c…

HTTP篇之cookie设置(前端和后台)

前台代码&#xff1a; var xhr new XMLHttpRequest(); xhr.open(GET,http://localhost:3000/list); xhr.withCredentials true; xhr.send(); XMLHttpRequest发送请求时需要设置withCredentials属性为true,来允许浏览器在自己的域设置cookie值。 如果withCredentials没有设…

职场已是00后的天下了,起薪20k,想都不敢想

2023年很卷吗&#xff1f;不&#xff0c;只能说你还得学&#xff01; 都说00后已经躺平了&#xff0c;但是有一说一&#xff0c;该卷的还是卷&#xff01; 这不&#xff0c;前段时间我们公司新招来了一个00后小伙&#xff0c;工作都没2年&#xff0c;跳槽到我们公司就起薪20K&…

cookie设置HttpOnly

1.什么是HttpOnly? 如果cookie中设置了HttpOnly属性&#xff0c;那么通过js脚本将无法读取到cookie信息&#xff0c;这样能有效的防止XSS攻击&#xff0c;窃取cookie内容&#xff0c;这样就增加了cookie的安全性&#xff0c;即便是这样&#xff0c;也不要将重要信息存入cookie…

如何为cookie设置HttpOnly

将cookie设置成HttpOnly是为了防止XSS攻击&#xff0c;窃取cookie内容&#xff0c;这样就增加了cookie的安全性&#xff0c;即便是这样&#xff0c;也不要将重要信息存入cookie。 如何在Java中设置cookie是HttpOnly呢&#xff1f; Servlet 2.5 API 不支持 cookie设置HttpOnly …

js登录设置cookie

COOKIE基础及应用 什么是COOKIE 1、记录用户信息&#xff0c; 通过 Cookie 来确定您是否已经登录过 2、比如你访问了购物网站&#xff0c;cookies记录了你的访问行为&#xff0c;广告主就能够根据你的访问行为&#xff0c;向你推送购物类的广告 COOKIE的特性 –同一个网站中,所…

Cookie的路径设置(很重要)

1.浏览器管理Cookie步骤 2.Cookie的路径 该路径可通过setPath("/xxx")进行设置,这个路径直接决定服务器的请求是否会从浏览器中加载某些Cookie。 首先默认情况下&#xff0c;如果不设置Cookie的path&#xff0c;默认是“/项目名/当前路径的上一层地址”&#xff0c;如…