Java之API(上):Boolean

news2024/11/28 2:48:28

一、前言:

  上次我们将到了 java.lang.* 下的包装类:Integer。这次我讲一下基本数据类型中的:布尔型(boolean)对应的包装类(Boolean)。注意:还有对包装类:Integer进行一些补充。

(1) 首先我们一定的学习了解到能够将基本数据类型的值包装为引用数据类型的对象的类称为包装类

二、介绍Boolean包装类中的方法:

  首先我们知道boolean类型的值永远只有两种:"true"和"false",所以说涉及到它的方法不会有太多。相较于包装类Integer对应的int类型的值的"样式"有很多种、包装类Character 对应的char类型的值可以是汉字、可以是数字、也可以是英文字母或者一些特殊符号,所以像这些举例的包装类涉及的方法肯定会多一些。

(1) 构造方法:(下方会解释怎么用)

 1.首先先解释上面第一个构造方法(也是我们最常见最基本的一个),测试如下:

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        //包装类:就是把相应的基本类型的值包装成一个对象
        Boolean bl01 = new Boolean(true); //这里的参数value的类型一定是:boolean
        System.out.println("对象bl01所指向的值为:"+bl01);
        Boolean bl02 = new Boolean(false);
        System.out.println("对象bl02所指向的值为:"+bl02);
    }
}

  代码运行结果:(可以发现输出的:都是各自对象所指向的boolean值) 

2. 接着来看上面第二个构造方法:

<1>它的意思其实是只要参数:String s 的值不为null(空),且不管输入的字符串是大小写,只要是组成"true"这个样子的,它的对象所指向的值都是布尔型"true",测试如下:

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        //无论是全部小写、全部大写还是大小写相互间隔都有的情况下:只要与”true“一样,对象的表示的值就是true
        Boolean b1 = new Boolean("true");
        Boolean b2 = new Boolean("TRUE");
        Boolean b3 = new Boolean("tRUE");
        Boolean b4 = new Boolean("trUe");
        if(b4.equals(true)){ //这个方法后面会讲到原理
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        if(b4){  //彻底的验证构造方法创建的对象指向的值是布尔型
            System.out.println("b4对象指向的值是布尔型值,不是字符串");
        }
        System.out.println("b1,b2,b3,b4对应所指向的值分别是:"+b1+" "+b2+" "+b3+" "+b4);
    }
}

代码运行结果:(可以发现输出的:都是各自对象所指向的boolean值)  

 <2> 当然也是只要不为null(空),且忽略大小写的影响,只要是组成"false"这个样子的,它的对象所指向的值都是布尔型"false",测试如下:

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        //无论是全部小写、全部大写还是大小写相互间隔都有的情况下:只要与”false“一样,对象的表示的值就是false
        Boolean b1 = new Boolean("false");
        Boolean b2 = new Boolean("FALSE");
        Boolean b3 = new Boolean("faLSE");
        Boolean b4 = new Boolean("FALse");
        if(b1.equals(true)){ //这个方法后面会讲
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        if(!b1){  //彻底的验证构造方法创建的对象指向的值是布尔型
            // 注意这里变成!b1(非b1),因为不这样写:因为b1对象指向的值是false,就不会输出提示,改成非变成true就没事了
            System.out.println("b1对象指向的值是布尔型值,不是字符串");
        }
        System.out.println("b1,b2,b3,b4对应所指向的值分别是:"+b1+" "+b2+" "+b3+" "+b4);
    }
}

 代码运行结果:(可以发现输出的:都是各自对象所指向的boolean值)  

<3>也就是如果是空(null)、空格、或者字符串是其他除了"true"与"false"以外的任意字符串等等,它的对象所指向的boolean值都是false。测试如下:

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        //无论是全部小写、全部大写还是大小写相互间隔都有的或者是数字、其他特殊符号的情况下:只要与"true"或者"false"不一样,对象的表示的值就是false
        Boolean b1 = new Boolean("123");  //测试数字
        Boolean b2 = new Boolean("abc");  //测试其他英文字母组合
        Boolean b3 = new Boolean("");  //测试空(null)
        Boolean b4 = new Boolean(" ");  //测试空格
        if(b1.equals(false)){ //这里下面一样会介绍这个方法,其实就是和截图里的解释的意思一样
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        if(!b1){  //彻底的验证构造方法创建的对象指向的值是布尔型
            // 注意这里变成!b1(非b1),因为不这样写:因为b1对象指向的值是false,就不会输出提示,改成非变成true就没事了
            System.out.println("b1对象指向的值是布尔型值,不是字符串");
        }
        System.out.println("b1,b2,b3,b4对应所指向的值分别是:"+b1+" "+b2+" "+b3+" "+b4);
    }
}

  代码运行结果:(可以发现输出的:都是各自对象所指向的boolean值) 

(2) 其他有趣方法:

1.就是上面测试时用到的equals()方法:

言外之意就是讲一个Boolean对象指向的值与参数里的那个对象指向的值如果一样返回true,否则返回false。

<1>其他测试已经在上面测试完,现在展示空(null)与空格情况。

package com.fs.packet;

public class Test_Boolean01 {
    public static void main(String[] args) {
        Boolean b3 = new Boolean("");  //测试空(null)
        Boolean b4 = new Boolean(" ");  //测试空格
        if(b3.equals(false)){
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        if(b4.equals(false)){
            System.out.println("yes");
        }else{
            System.out.println("no");
        }
        System.out.println("b3,b4对应所指向的值分别是:"+b3+" "+b4);
    }
}

代码运行结果:(我们发现了对象为null,或者空格情况下,它与参数对象指向的值:都是false,相同,所以都输出yes)

2. 就是与我们之前讲包装类:Integer 时和它很像的一些方法:(就是基本数据类型对象(引用数据类型)之间的转化时可以用的方法)

这里我简单讲吧:因为讲Integer时讲的很细,自己可以拿方法去试一试

<1>Boolean -> boolean

<2> String -> boolean

<3>

boolean -> String

Boolean -> String

<4>

boolean -> Boolean

String -> Boolean

三、补充上次包装类Integer: 

(1)案例:

package com.fs.packet;

public class Test_Integer01 {
    public static void main(String[] args) {
        //Integer
        int value = 10;
        Integer it = new Integer(value);
        System.out.println("it对象指向的值为:"+it);
        //jdk 1.5 之后
        //可以这么写
        Integer it1 = 20;
        System.out.println("it1对象指向的值为:"+it1);
    }
}

代码运行结果: (结果没有任何问题,分别输出各自对象所指向的值)

原因:

为什么说在jdk1.5之前不行:因为 15 是不是一个基本数据类型,它是值类型,而 it2 是一个对象,因为对象是属于引用类型的,它们两个存的值都不一样,不能这样直接赋值。但是在jdk1.5之后,为了简化我们编程的过程,可以直接这么写,我们把这个过程叫做:自动装箱 。(也就是本来要写二步骤,但是直接可以省略第一步,直接自动包装基本数据类型成对应的对象(引用类型),也就是其他包装类也能这样简写,虚拟机它会在底层,内存自动new一个对象帮你封装,不用自己写)

 

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

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

相关文章

爬楼梯(力扣LeetCode)动态规划

爬楼梯 题目描述 假设你正在爬楼梯。需要 n 阶你才能到达楼顶。 每次你可以爬 1 或 2 个台阶。你有多少种不同的方法可以爬到楼顶呢&#xff1f; 示例 1&#xff1a; 输入&#xff1a;n 2 输出&#xff1a;2 解释&#xff1a;有两种方法可以爬到楼顶。 1 阶 1 阶2 阶 示…

kubernetes架构及核心组件简单介绍

目录 整体架构控制面kube-apiserver访问控制通知 kube-scheduler概述默认调度策略 kube-controller-manageretcd架构Raft协议日志复制 数据面kubeletkube-proxy 整体架构 集群架构图 控制面 控制面是kubernetes的核心组件&#xff0c;负责管理和控制集群的整体行为&#xf…

java: nio之DirectByteBuffer

package nio;import java.nio.ByteBuffer; import java.nio.IntBuffer;public class DirectTest {public static void main(String[] args) {ByteBuffer byteBuffer ByteBuffer.allocateDirect(1024);} }

【计算机视觉】【图像处理综合应用】路沿检测

实验内容&#xff1a;针对给定的视频&#xff0c;利用图像处理基本方法实现道路路沿的检测&#xff1b; 提示&#xff1a;可利用Hough变换进行线检测&#xff0c;融合路沿的结构信息实现路沿边界定位&#xff08;图中红色的点位置&#xff09;。 处理视频文件 处理视频文件的主…

[原创](免改BIOS)使用Clover升级旧电脑-(骨灰级)修改Clover的config.plist文件

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XXQQ: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、Delphi…

AIGC ChatGPT 4 快速整理不规则数据

从业务系统中采集到的数据如下: 序号 省份 英文 2022年销售额 2021年销售额 增量 1 广东guangDOng129068.58 124319.67 4748.91 2 江苏 JiangSu 122825.6 116314.2 6511.4 3 山东ShAnDong 87385 83045.9 4339.1 4 浙江…

云匣子 FastJson反序列化RCE漏洞复现

0x01 产品简介 云匣子是租户连接云资源的安全管理工具&#xff0c;帮助云租户更加安全、精细的管理云上的虚拟机、数据库等资源。 云安宝结合多年的运维和安全实践&#xff0c;将云上的运维和安全有机结合&#xff0c;实现对运维过程的事前规划、事中控制和 事后审计。在此之上…

部署Jenkins

一、介绍 Jenkins 、Jenkins概念 Jenkins是一个功能强大的应用程序&#xff0c;允许持续集成和持续交付项目&#xff0c;无论用的是什么平台。这是一个免费的源代码&#xff0c;可以处理任何类型的构建或持续集成。集成Jenkins可以用于一些测试和部署技术。Jenkins是一种软件允…

大语言模型损失函数详解

我们可以把语言模型分为两类&#xff1a; 自动回归式语言模型&#xff1a;自动回归式语言模型在本质上是单向的&#xff0c;也就是说&#xff0c;它只沿着一个方向阅读句子。正向&#xff08;从左到右&#xff09;预测&#xff1b;反向&#xff08;从右到左&#xff09;预测。…

Qt4利用MVC开发曲线数据编辑器

目录 1 需求 2 开发流程 1 搭建框架 2 构造函数 3 打开工程 4 实现应用程序参数加载 5 QCustomPlot和TableView的联动 6 数据的可视化修改 7 列表点击事件事先键盘控制 8 表格实现复制&#xff0c;粘贴&#xff0c;删除等一系列功能 9 曲线实现自适应范围和统一范围…

【Web】攻防世界Web_php_wrong_nginx_config

这题考察了绕过登录、目录浏览、后门利用 进来先是一个登录框&#xff0c;随便怎么输前端都直接弹窗 禁用js后再输入后登录 查看源码&#xff0c;好家伙&#xff0c;不管输什么都进不去 直接扫目录 访问/robots.txt 访问/hint.php 访问/Hack.php 抓包看一下 cookie里isLogin0…

【JAVA学习笔记】71 - JDBC入门

项目代码 https://github.com/yinhai1114/Java_Learning_Code/tree/main/IDEA_Chapter25/src/com/yinhai/dao_ 一、JDBC概述 1.基本介绍 1. JDBC为访问不同的数据库提供了统一的接口&#xff0c;为使用者屏蔽了细节问题。 2. Java程序员使用JDBC,可以连接任何提供了JDBC驱动…

菜单的hover不同动画背景

CSS常用示例100专栏目录 本专栏记录的是经常使用的CSS示例与技巧&#xff0c;主要包含CSS布局&#xff0c;CSS特效&#xff0c;CSS花边信息三部分内容。其中CSS布局主要是列出一些常用的CSS布局信息点&#xff0c;CSS特效主要是一些动画示例&#xff0c;CSS花边是描述了一些CSS…

虚拟化逻辑架构: LBR 网桥基础管理

目录 一、理论 1.Linux Bridge 二、实验 1.LBR 网桥管理 三、问题 1.Linux虚拟交换机如何增删 一、理论 1.Linux Bridge Linux Bridge&#xff08;网桥&#xff09;是用纯软件实现的虚拟交换机&#xff0c;有着和物理交换机相同的功能&#xff0c;例如二层交换&#…

IT问题解答类型网站源码

问答网是一款为IT工程师提供的问答平台&#xff0c;旨在帮助用户在线获取专业知识和相关问题的答案。在问答网&#xff0c;用户可以轻松找到其他人的问答问题&#xff0c;并在这里寻求解答。如果您有任何想要解决的问题&#xff0c;都可以在此发布问题并得到其他同行的解答。 …

YARN工作流程详解

图1 图2 图1 -作业提交阶段&#xff1a; 1、client 提交job,向 ResourceManager【RM】 申请job_id; 2、RM 返回 job_id 及资源提交路径 给 client 3、client 把job所需的资源提交 到 3中指定的路径中 4、client 上传完成资源后&#xff0c;向RM 发送执行作业请求&#xff0c;RM…

React中通过children prop或者React.memo来优化子组件渲染【react性能优化】

文章目录 前言未优化之前的代码问题解决方案一&#xff0c;通过children prop解决方案二&#xff0c;通过React.memo后言 前言 hello world欢迎来到前端的新世界 &#x1f61c;当前文章系列专栏&#xff1a;react.js &#x1f431;‍&#x1f453;博主在前端领域还有很多知识和…

1.9 字符数组

1.9 字符数组 一、字符数组概述二、练习 一、字符数组概述 所谓字符数组&#xff0c;就是char类型的数组&#xff0c;比如 char a[]&#xff0c;是C语言中最常用的数组类型&#xff0c;先看一个程序 #include <stdio.h> #define MAXLINE 1000 //最大行长度限制 int get…

Telesquare TLR-2005Ksh 路由器 RCE漏洞复现

0x01 产品简介 Telesquare Tlr-2005Ksh是韩国Telesquare公司的一款 Sk 电讯 Lte 路由器。 0x02 漏洞概述 Telesquare TLR-2005Ksh存在安全漏洞&#xff0c;未经授权的攻击者可通过setSyncTimeHost执行任意命令获取服务器权限。 0x03 复现环境 FOFA&#xff1a;app"TELE…

Windows开启SQL Server服及1433端口

需求&#xff1a;Windows开启SQL Server服务及1433端口 目前端口没有启动 解决&#xff1a; 打开SQL Server配置管理器&#xff08;winR&#xff09; 各个sqlserver版本在textbox中输入对应的命令如下&#xff1a; SQLServerManager15.msc&#xff08;对于 SQL Server 2019 &am…