Java初始String和运算符

2023-10-27

1.Sting

在Java中,数据类型分为基本数据类型和引用数据类型。基本数据类型有:4类(即:整型,浮点型,字符型,布尔型),8种(即:byte、short、int、long、float、double)。引用数据类型有:Sting,包装类(Byte、Short、Integer、Long、Float、Double、Character)等。

public class String1 {
    public static void main(String[]args){
        String a="hello";
        String b="World";
        System.out.println(a);
        System.out.println(b);
        System.out.println(a+b);//‘+’表示字符穿的拼接
    }
}

 对于+我有以下理解:

1.当+不与字符串进行相加时,+相当于普通的加法

public class String1 {
    public static void main(String[]args){
        int a=10;
        int b=20;
        System.out.println("int类型数的相加:"+(a+b));
        float c=0.2F;
        float d=0.2F;
        System.out.println("float类型数据的相加:"+(c+d));
        byte e=10;
        byte f=20;
        System.out.println("byte类型数据的相加:"+(e+f));
        short g=10;
        short h=90;
        System.out.println("short类型数据的相加:"+(g+h));
        long i=10L;
        long j=20L;
        System.out.println("long类型的数据相加:"+(i+j));
        double k=10.0;
        double m=20.0;
        System.out.println("double类型数据相加:"+(k+m));
        char A='A';
        char B='B';
        System.out.println("char类型数据相加:"+(A+B));
    }
}

运行的结果如下:

 2.当+和字符串与普通数据类型的数字相加时,相加的结果为字符串。计算时从左向右进行计算的。

public class String1 {
    public static void main(String[]args){
        int a=10;
        int b=20;
        String s="hello";
        System.out.println(a+b+s);
        System.out.println(s+a+b);
        System.out.println(s+b+a);
        System.out.println(s+(a+b));
    }
}

 运行的结果如下:

 在有些情况下,需要将字符串和整形数字之间进行转换:

1.int 转成 String

public class String1 {
    public static void main(String[]args){
        int a=1234567890;
        String s=String.valueOf(a);
        System.out.println(s);
    }
}

 String中的valueOf:

2.String转成int

public class String1 {
    public static void main(String[]args){
        String s="12345";
        int a=Integer.valueOf(s );
        System.out.println(a+30);
    }
}

 int包装类中的valueOf:

 2.运算符

1. 什么是运算符

运算符即,对操作数进行操作时的符号,不同的运算操作的含义不同。’

作为一门计算机语言,Java也提供了一套丰富的运算符来操纵变量。Java中运算符可分为以下:算术运算符(+ - */)、关系运算符(< > ==)、逻辑运算符、位运算符、移位运算符以及条件运算符等。

2.算术操作符

1.基本的四则运算符:加减乘除模(+-*/%)

public class String1 {
    public static void main(String[]args){
        int a=10;
        int b=20;
        System.out.println("a+b="+(a+b));
        System.out.println("a-b="+(a-b));
        System.out.println("a*b="+(a*b));
        System.out.println("a/b="+(a/b));
        System.out.println("a%b="+(a%b));
    }
}

运行的结果如下: 

 注意:

*都是二元运算符,使用时必须要有左右两个操作数

*int / int 结果还是int类型,而且会向下取整

*做除法和取模时,除数不能为0

*% 不仅可以对整型取模,也可以对浮点型取模

*两侧操作数类型不一致时,向类型范围大的提升

2.增量运算符*= -= /= += %= 

 

public class String1 {
    public static void main(String[] args) {
        int a = 10;
        a += 10;//相当于a=a+10
        System.out.println(a);
        int s=10;
        s-=10;//相当于s=s-10;
        System.out.println(s);
        int d=10;
        d*=10;//相当于d=d*10
        System.out.println(d);
        int k=10;
        k/=10;//相当于k=k/10
        System.out.println(k);
        int g=10;
        g%=3;//相当于g=g%3
        System.out.println(g);
    }
}

运行的结果: 

 注意:只有变量才能使用该运算符,常量不能使用。

3.自增/自减运算符++ --

++是给变量的值+1,--是给变量的值-1。

注意: 

*如果单独使用,【前置++】和【后置++】没有任何区别

*如果混合使用,【前置++】先+1,然后使用变量+1之后的值,【后置++】先使用变量原来的值,表达式结束时给变量+1

*只有变量才能使用自增/自减运算符,常量不能使用,因为常量不允许被修改

4.逻辑运算符 

逻辑运算符主要有三个:&& || !,运算的结果都为boolean类型

public class String1 {
    public static void main(String[] args) {
        
        System.out.println("&&的逻辑表达式展示");
    System.out.println(true&&true);
    System.out.println(true&&false);
    System.out.println(false&&false);
    System.out.println(false&&true);
    System.out.println("**********************************************");
    System.out.println("||的逻辑表达式的展示");
   System.out.println(true||true);
   System.out.println(false||true);
   System.out.println(false||false);
   System.out.println(true||false);
   System.out.println("*************************************************");
   System.out.println("!的逻辑表达式展示:");
   System.out.println(!true);
   System.out.println(!false);
   System.out.println("****************************************************");
    }
}

 结果展示:

 注意: 

*对于 && , 如果左侧表达式值为 false, 则表达式结果一定是 false, 无需计算右侧表达式

*对于 ||, 如果左侧表达式值为 true, 则表达式结果一定是 true, 无需计算右侧表达式

*||,&&左侧表达式与右侧表达式都要为布尔表达式

*& 和 | 如果表达式结果为 boolean 时, 也表示逻辑运算. 但与 && || 相比, 它们不支持短路求值

5.位运算符 

 Java 中数据存储的最小单位是字节,而数据操作的最小单位是比特位. 字节是最小的存储单位,每个字节是由8个二进制比特位组成的,多个字节组合在一起可以表示各种不同的数据。

位运算符主要有四个: & | ~ ^ ,除 ~ 是一元运算符外,其余都是二元运算符。 

位操作表示 按二进制位运算. 计算机中都是使用二进制来表示数据的(01构成的序列), 按位运算就是在按照二进制位的每一位依次进行计算. 

1.按位与&:  如果两个二进制位都是 1, 则结果为 1, 否则结果为 0

public class String1 {
    public static void main(String[] args) {

        int a=10;
        int b=20;
        System.out.println(a&b);
    }
}

进行按位运算, 需要先把 10 和 20 转成二进制, 分别为 1010 和 10100

 2.按位或|:如果两个二进制位都是 0, 则结果为 0, 否则结果为 1

public class String1 {
    public static void main(String[] args) {

        int a=10;
        int b=20;
        System.out.println(a|b);
    }
}

运算方式和按位于类似

注意: 当 & 和 | 的操作数为整数(int, short, long, byte) 的时候, 表示按位运算, 当操作数为 boolean 的时候, 表示逻辑运算.

 3.按位取反~:如果该位为 0 则转为 1, 如果该位为 1 则转为 0

public class String1 {
    public static void main(String[] args) {

        int a=0xf;
        System.out.printf("%x\n",~a);
    }
}

注意:

*0x 前缀的数字为 十六进制 数字. 十六进制可以看成是二进制的简化表示方式. 一个十六进制

数字对应 4个二进制位.
*0xf 表示 10 进制的 15, 也就是二进制的 1111
*printf 能够格式化输出内容, %x 表示按照十六进制输出.
*\n 表示换行符

4.按位异或^: 如果两个数字的二进制位相同, 则结果为 0, 相异则结果为 1

public class String1 {
    public static void main(String[] args) {

        int a=0x1;
        int b=0x2;
        System.out.println(a^b);
    }
}

注意:如果两个数相同,则异或的结果为0

6.移位运算

1. 左移 <<: 最左侧位不要了, 最右侧补 0

2. 右移 >>: 最右侧位不要了, 最左侧补符号位(正数补0, 负数补1)

3. 无符号右移 >>>: 最右侧位不要了, 最左侧补 0 

注意:

1. 左移 1 位, 相当于原数字 * 2. 左移 N 位, 相当于原数字 * 2 的N次方
2. 右移 1 位, 相当于原数字 / 2. 右移 N 位, 相当于原数字 / 2 的N次方
3. 由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替
4. 移动负数位或者移位位数过大都没有意义

7.条件运算符

条件运算符只有一个:表达式1 ? 表达式2 : 表达式3
当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;
当 表达式1 的值为 false 时, 整个表达式的值为 表达式3 的值. 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java初始String和运算符 的相关文章

随机推荐

  • 27. 生成CSV文件

    CSV Comma Separated Values 文件中文件字符分隔值 CSV文件以纯文本形式存储表格数据 数字和文本 可以被常见制表工具 excel等 直接读取 目录 1 生成CSV 2 结合django使用csv 2 1 方案1 2
  • vue预渲染prerender-spa-plugin-next 和 vue-meta-info

    prerender spa plugin next实现方法 const defineConfig require vue cli service const PrerenderSPAPlugin require prerender spa
  • 人脸人体同时检测

    from os path import join 6 sets train test trainval val head person glasses hat face mask face 7 classes head person gla
  • SpringMVC常用注解笔记

    SpringMVC常用注解 1 请求映射注解 1 1 Controller注解 6 2 RequestMapping注解 1 3 GetMapping和 PostMapping注解 2 参数绑定注解 2 1 RequestParam注解 2
  • storybook添加全局样式与sass全局变量设置

    storybook组件需要全局样式 只需在 storybook preview js 增加全局样式即可 import src style index scss export const parameters actions argTypes
  • 微型计算机控制理论基础答案,微型计算机控制技术试卷c

    微型计算机控制技术试卷a 潘新民 微型计算机控制技术实用教程 微型计算机控制技术试卷C 一 选择题 本题共10小题 每小题 1 5分 共15分 1 DAC0832的VREF接 5V IOUT1接运算放大器异名端 输入为1000000B 输出
  • 一文教会你:如何使用 HttpRunner v4.0 开展性能测试

    在 HttpRunner v4 0 全新发布 中我们有介绍过 HttpRunner v4 0 期望成为一款专业级的一体化 API 测试工具 特别是针对性能测试能力进行了重大升级 相比于之前的版本 HttpRunner v4 0 在性能测试部
  • C语言中数组名和指针的区别

    关键字 c 注明 转载于新浪 作者名字丢失 魔幻数组名 请看程序 本文程序在WIN32平台下编译 1 include lt iostream gt 2 int main 3 4 char str 10 5 char pStr str 6 c
  • 数据结构——双向循环链表(二)双向动态链表

    双向动态链表才是关键 直接看例子和图示既就可以 主要是自己会画图 然后根据图来写代码 dlist h 头文件 include
  • 自动控制原理知识点梳理——5.线性系统的频域分析法

    前面第二章数学模型有提到频域的频率特性 频率特性也是系统数学模型的一种表达形式 频域分析法是应用频率特性研究线性系统 的一种图解方法 目录 1 知识梳理 逻辑图 2 频率特性的几何表示 2 1 典型环节频率特性曲线的绘制 2 2 幅相频率特
  • 判断实体类对象的属性值是否全部为空(代码+踩坑)

    判断实体类对象的属性值是否全部为空 话不多说 先上代码 public boolean checkObjAllFieldsIsNull Object object 如果对象为null直接返回true if null object return
  • 2019.11.27

    2019 11 27 滑动平均 均值滤波 sliding window 5 impulse fft tmp impulse fft 6k for i 1 sliding window 1 n sliding window impulse f
  • 合宙Air724UG LuatOS-Air LVGL API--对象

    对象 概念 在 LVGL 中 用户界面的基本构建块是对象 例如 按钮 标签 图像 列表 图表或文本区域 属性 基本属性 所有对象类型都共享一些基本属性 Position 位置 Size 尺寸 Parent 父母 Click enable 单
  • Jenkins添加allure测试报告

    构建任务 1 新建item 2 输入任务名称 gt 点击Freestyle project gt 点击确定 3 在任务配置页面对任务进行配置 gt 添加描述 gt 选择高级 4 勾选使用自定义的工作空间 gt 目录输入执行文件的存放路径 5
  • [Pytorch系列-55]:循环神经网络 - 使用LSTM网络对股票走势进行预测

    作者主页 文火冰糖的硅基工坊 文火冰糖 王文兵 的博客 文火冰糖的硅基工坊 CSDN博客 本文网址 https blog csdn net HiWangWenBing article details 121665139 目录 第1章 LST
  • Element-ui踩坑

    Element ui踩坑 验证图片上传 其实 加上 prop就行了 再图上传成功的时候再做个图片验证取消就可以 看着麻烦其实挺简单的
  • jquery导入数据_亿级电商实时数据分析平台构建实战

    基于Flink ClickHouse构建亿级电商实时数据分析平台 PC 移动 小程序 引用网络文章开启本课程的开篇 在大数据分析领域中 传统的大数据分析需要不同框架和技术组合才能达到最终的效果 在人力成本 技术能力和硬件成本上以及维护成本让
  • 合并两个有序数组为一个有序数组

    一 归并排序 问题 两个有序数组 合并成一个有序数组 先依次比较两个数组 按照小的就传入新的数组 当这次比较完之后可能有一个数组的长度很长 留下一些数组 然后在新数组的末尾插入即可 两个有序数组的合并函数 int MergeList int
  • bat面试题 python 单链表反转排序

    单链表反转python实现 单链表的反转可以使用循环 也可以使用递归的方式 1 循环反转单链表
  • Java初始String和运算符

    1 Sting 在Java中 数据类型分为基本数据类型和引用数据类型 基本数据类型有 4类 即 整型 浮点型 字符型 布尔型 8种 即 byte short int long float double 引用数据类型有 Sting 包装类 B