Java初始String和运算符

简介: Java初始String和运算符
+关注继续查看

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));
    }
}

运行的结果如下:

image

 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));
    }
}

运行的结果如下:

image

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

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:

image

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:

image

 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));
    }
}

运行的结果如下: 

image

 注意:

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

*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);
    }
}

运行的结果: 

image

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

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("****************************************************");
    }
}

结果展示:

image

 注意: 

*对于 && , 如果左侧表达式值为 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

image

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

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

运算方式和按位于类似

image

注意: 当 & 和  | 的操作数为整数(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 的值. 

相关文章
|
5天前
|
JSON Java 数据格式
Java jackson 由String转成List和各种对象
时间久了,会忘记具体怎么转,记录一下,后面方便使用
19 1
|
1月前
|
JSON Java fastjson
Java String转JSONObject时保持顺序不变
Java String转JSONObject/JSONArray时保持顺序不变
Java String转JSONObject时保持顺序不变
|
1月前
|
存储 安全 Java
Java中的String、StringBuffer和StringBuilder
其实可以看出,java底层实现字符串+的时候其实是用StringBuilder的append()来实现的,如果有字符串的连续+,jvm用StringBuilder append也可以实现优化。
33 0
|
2月前
|
安全 Java API
Java的第十篇文章——常用类下(String、大数类、日期类和包装类)
Java的第十篇文章——常用类下(String、大数类、日期类和包装类)
|
2月前
|
安全 Java API
Java的第八篇文章——Object类、String类和StringBuilder类
Java的第八篇文章——Object类、String类和StringBuilder类
|
2月前
|
存储 算法 Java
Java中String的那些事?
Java中String的那些事?
26 0
|
2月前
|
Java
【Java用法】Java中String类型和int类型互转的所有方法
【Java用法】Java中String类型和int类型互转的所有方法
30 0
|
2月前
|
Java 编译器
|
3月前
|
Java
java关于时间比较|String转Date|Date转String|指定时间加上指定天数后的日期|当时时间加上指定天数后的日期等的方法
java关于时间比较|String转Date|Date转String|指定时间加上指定天数后的日期|当时时间加上指定天数后的日期等的方法
java关于时间比较|String转Date|Date转String|指定时间加上指定天数后的日期|当时时间加上指定天数后的日期等的方法
|
3月前
|
Java
Java String类和StringBuffer类的区别
Java String类和StringBuffer类的区别
热门文章
最新文章
相关产品
云迁移中心
推荐文章
更多