Java-数据类型与运算符

目录

一.数据类型

1.变量与类型

1.数据类型大小

2.字符型数据类型

3.布尔型数据类型

4.字符串类型变量

5.变量的作用域

6.变量命名规则

2.常量

1.字面值常量

2.fanal关键字修饰的常量

3.数据类型转换

1.自动类型转换

2.强制类型转换

3.数值提升

二.运算符

1.算术运算符

2.关系运算符

3.逻辑运算符

1.&&:逻辑与

2.||:逻辑或

3.!:逻辑非

4.注意事项

4.位运算符

1.& 按位与

2.| 按位或

3. ^ 按位异或

4.~ 按位取反

5.移位运算

6.条件运算符

7. 运算优先级

三.关键字


 一.数据类型

Java的数据类型分为基础数据类型和引用类型。基本数据类型有八种,分别是byte、short、int、long、float、double、char、boolean。(ps:这八种数据类型都是变量)引用类型有String、接口、枚举等。

1.变量与类型

1.数据类型大小

首先我们需要知道Java的字符类型使用的是Unicode编码方案,每个Unicode码占用16个比特位。Unicode码字符集包括拉丁文、英文、中文。Java的数据类型都是有取值范围的,存储的时候不要超过取值范围。设n为数据类型所占的比特位,则该数据类型的取值范围为-2^(n-1)——2^(n-1)-1。以int为例,int占4个字节,即32个比特位,则int的取值范围是-2^31——2^31-1。

下面是通过代码得知各个数据类型的大小

public static void main(String[] args) {//1个字节等于8个比特位
        System.out.println("byte:"+Byte.SIZE/8);
        System.out.println("char:"+Character.SIZE/8);
        System.out.println("short:"+Short.SIZE/8);
        System.out.println("int:"+Integer.SIZE/8);
        System.out.println("float:"+Float.SIZE/8);
        System.out.println("long:"+Long.SIZE/8);
        System.out.println("double:"+Double.SIZE/8);
    }

2.字符型数据类型

Java 中使用 单引号 + 单个字母 的形式表示字符字面值。

public static void main3(String[] args) {
        char ch = '王';//2个字节
        char ch2 = 67;//会解析成对印的字符,而不是数字67
        System.out.println(ch);
        System.out.println(ch2);
    }

当然,执行javac的时候也可能出现错误:未结束的字符文字。这时候只需要在javac后加上-encoding UTF-8即可。

3.布尔型数据类型

boolean 类型的变量只有两种取值, true 表示真, false 表示假。需要注意的是,Java中布尔类型不能和int类型互换,即不存在1表示true,0表示false的说法。在JVM的规定中,并没有明确规定布尔类型的大小,有的说法是一个比特位,有的说法是一个字节,各位读者见仁见智。具体用法如下列代码所示

public static void main(String[] args) {
        boolean flg = true;
        System.out.println(flg);
    }

4.字符串类型变量

Java 使用 双引号 + 若干字符 的方式表示字符串字面值。如开篇所示,String不是基本数据类型,而是引用数据类型。可以通过看储存的是否是一个地址来判断是否是引用类型。

    public static void main(String[] args) {
        String str = "你好啊";
        System.out.println(str);
    }

需要注意的是,字符串中的一些特定的不太方便直接表示的字符需要进行转义。

转义字符含义
\n换行
\t水平制表符(TAB)
\'单引号
\"双引号
\\反斜杠(/)

 字符串还可以通过“+”将两个字符串进行拼接,也可以将字符串和整数进行拼接

public static void main(String[] args) {
        String a ="Hello";
        String b ="World";
        System.out.println(a+b);
    }

5.变量的作用域

变量的的作用域只需要找相应的花括号,与C语言相似。

6.变量命名规则

1. 一个变量名只能包含数字, 字母, 下划线(虽然$也能命名,但建议不要这样做)

2. 数字不能开头

3. 变量名严格区分大小写

4.变量名使用小驼峰,类名使用大驼峰

2.常量

常量在编译的时候已经确定其值,而变量在运行的时候才知道其值。常量不能在程序运行过程中发生修改。

1.字面值常量

即确定的如123、123.0、true、10.0L等

2.fanal关键字修饰的常量

Java中的final与C语言中的const意义相同

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

 此时会显示编译出错,因为常量不能在程序运行过程中发生修改。

3.数据类型转换

1.自动类型转换

自动类型转换会将由低到高,如int会自动转换为long,而不能转换为byte

2.强制类型转换

那么由高到低的就不能转换了吗?其实不然,比如,我们可以使用强制类型转换将long转为int,但是可能会造成精度缺失等问题。

public class TestDemo {
    public static void main(String[] args) {
        long x = 500;
        int y =(int) x;
        System.out.println(y);
    }
}

注意:如果试图将一个数值从另一个类型转换为另一个类型,而又超出了目标类型的表示范围,结果就会截断成一个完全不同的值,如(byte)500=-12

public class TestDemo {
    public static void main(String[] args) {
        long x = 500;
        byte y =(byte) x;
        System.out.println(y);
    }
}

3.数值提升

当两个不同大小的数据类型进行计算的时候,系统会自动把范围小的提升为范围大的。

public static void main(String[] args) {
        int a = 10;
        double b = 10.0;
        System.out.println(a+b);
    }

最后会输出double类型的20.0,而不是int类型的20 

二.运算符

1.算术运算符

算术运算符包括:+ - * / %,用法跟C语言的使用方法一样,这里不再赘述

2.关系运算符

逻辑运算符包括:== != < > <= >=

逻辑运算符的运算结果都是布尔型,即只有true和false两种情况。

public static void main(String[] args) {
        int a = 10;
        int b = 20;
        System.out.println(a==b);
        System.out.println(a!=b);
        System.out.println(a>b);
        System.out.println(a<b);
        System.out.println(a>=b);
        System.out.println(a<=b);
    }

3.逻辑运算符

逻辑运算符有三种:&&、||、!。逻辑运算符的操作数(操作数往往是关系运算符的结果)和返回值都是 boolean

1.&&:逻辑与

表达式1&&表达式2

只要一个为假则全部为假

短路:若表达式1为假,则不进行表达式2

2.||:逻辑或

表达式1||表达式2

只要一个为真则全部为真

短路:若表达式1为真,则不进行表达式2

3.!:逻辑非

!表达式

若表达式为真,则该式为假。若表达式为假,则该式为真

4.注意事项

& 和 | 如果操作数为 boolean 的时候, 也表示逻辑运算.。但是和 && 以及 || 相比, 它们不支持短路求值,所以建议不要使用。

4.位运算符

Java 中对数据的操作的最小单位不是字节, 而是二进制位。

位运算符主要有四个: & | ~ ^

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

1.& 按位与

只有对应二进制位都为1的时候,运算结果二进制位才为1

2.| 按位或

只要有一方二进制位为1的时候,运算结果二进制位就为1

3. ^ 按位异或

一样的二进制位结果是0,不一样的二进制位结果是1

4.~ 按位取反

 如果该位为 0 则转为 1, 如果该位为 1 则转为 0

5.移位运算

了解即可,移位运算符有三个:<<、>>、>>>

6.条件运算符

表达式1 ?表达式2:表达式3

当 表达式1 的值为 true 时, 整个表达式的值为 表达式2 的值;当 表达式1 的值为 false 时, 整个表达式的值为 表达式 3 的值。具体用法如下列代码所示

public static void main(String[] args) {
        int a = 10;
        int b = 20;
        int max = a>b ? a:b;
        System.out.println(max);
    }

7. 运算优先级

优先级运算符

1

()
2! + - ++ --
3* / %
4+ -
5< <=  > >=
6== !=
7^
8&&
9||
10? :
11= += -= *= /= %=

三.关键字

关键字是 Java 中的一些具有特定含义的单词,也可以叫Java保留字。Java关键字不能用作变量名、方法名、类名、包名和参数

目前我们接触到的关键字有:public static final...

有兴趣的朋友可以通过Java关键字大全(关键字分类详解) | 码笔记 (mabiji.com)来了解更多

最后,谢谢阅读!笔者水平有限,有错误请斧正!

  • 36
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 30
    评论
评论 30
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ViolentAsteroid

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值