×

boolean类型 java bool

在java中boolean具体怎么使用?面试题:线程池有几种实现方式,线程池的七大参数有哪些

admin admin 发表于2022-06-13 06:28:39 浏览128 评论0

抢沙发发表评论

在java中boolean具体怎么使用


boolean是java中的布尔型(逻辑型)数据类型,在java中boolean值只能是true和false,而不能用0和1代替,并且一定要小写。

布尔值 true 代表“真”,false 代表“假”。一般关系运算符会返回布尔值的结果。另外,数值的 0、-0、特殊值的 null、NaN、undefined 以及空字符(““)都会被解释为 false ,其他值则会被解释为 true 。

扩展资料

java中创建boolean对象的方法:

1、使用关键词 new 来定义 Boolean 对象。下面的代码定义了一个名为 myBoolean 的逻辑对象:

var myBoolean = new Boolean()

var myBoolean = new Boolean()

注释:如果逻辑对象无初始值或者其值为 0、-0、null、““、false、undefined 或者 NaN,那么对象的值为 false。否则,其值为 true(即使当自变量为字符串 “false“ 时)!-bool

2、下面的所有的代码行均会创建初始值为 false 的 Boolean 对象。

var myBoolean = new Boolean();

var myBoolean = new Boolean(0);

var myBoolean = new Boolean(null);

var myBoolean = new Boolean(““);

var myBoolean = new Boolean(NaN);

3、下面的所有的代码行均会创初始值为 true 的 Boolean 对象:

var myBoolean = new Boolean(1);

var myBoolean = new Boolean(true);

var myBoolean = new Boolean(“true“);

var myBoolean = new Boolean(“false“);

var myBoolean = new Boolean(“Bill Gates“);

参考资料来源:百度百科——Boolean


面试题:线程池有几种实现方式,线程池的七大参数有哪些


在Java编码的过程中,我们经常会创建一个线程来提高程序的执行效率,虽然这样实现起来很方便,但是会有一个问题:如果并发的线程数多,并且每个线程都是执行一个时间很短的任务就结束了,这样会造成频繁的创建和销毁线程从而导致降低系统的效率。
那么问题来了,有没有办法可用复用创建好的线程呢,也就是线程执行完一个任务后,不被销毁,继续执行其他的任务?

在Java可以通过线程池来实现这样的效果。
下面从三个方面和大家一起来探讨一下Java线程池相关的内容。
1.Java中的ThreadPoolExecutor类。
2.Java中4种线程池的使用。
3.Java线程池常用参数如何设置。

一、Java中的ThreadPoolExecutor类

A.ThreadPoolExecutor的重要参数

1.corePoolSize:核心线程数
核心线程会一直存活,及时没有任务需要执行。
当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理。
设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭。
2.queueCapacity:任务队列容量(阻塞队列)
当核心线程数达到最大时,新任务会放在队列中排队等待执行。
3.maxPoolSize:最大线程数
当线程数》=corePoolSize,且任务队列已满时。线程池会创建新线程来处理任务。
当线程数=maxPoolSize,且任务队列已满时,线程池会拒绝处理任务而抛出异常。
4.keepAliveTime:线程空闲时间
当线程空闲时间达到keepAliveTime时,线程会退出,直到线程数量=corePoolSize。
如果allowCoreThreadTimeout=true,则会直到线程数量=0。
5.allowCoreThreadTimeout:允许核心线程超时
6.rejectedExecutionHandler:任务拒绝处理器。

B.ThreadPoolExecutor执行过程

1.当线程数小于核心线程数时,创建线程。

2.当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。

3.当线程数大于等于核心线程数,且任务队列已满。(1)若线程数小于最大线程数,创建线程。(2)若线程数等于最大线程数,抛出异常,拒绝任务。

二、Java中4种线程池
Java通过Executors提供四种线程池,分别为:
newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。
newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。
newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。
newSingleThreadExecutor 创建一个单线程化的线程池,它只会用唯一的工作线程来执行任务,保证所有任务按照指定顺序(FIFO, LIFO, 优先级)执行。
-java

请教,java.lang.StackOverflowError如何个处理,什么原因


StackOverflowError 一般是程序里可能是有死循环或递归调用所产生的。你可以检查一下你的代码,看看有哪里出现了死循环或者是递归调用使用不当,做适当修改即可