Java基础_基本数据类型_整数类型,浮点型型,字符类型,布尔类型_基本数据类型转换、强制转换__3

基本数据类型_整数类型,浮点型型,字符类型,布尔类型_基本数据类型转换、强制转换

数据类型

Java是一种强类型语言,每个变量都必须声明其数据类型。
Java的数据类型可分为两大类:基本数据类型(primitive data type)和引用数据类型(reference data type)。
在这里插入图片描述

基本数据类型

整数类型

int,byte,short,long整数类型的表数范围
在这里插入图片描述

byte类型127是怎么算出来的:
		1字节=8bit
		二进制1111 1111    

在这里插入图片描述

public class TestVar05{
        public static void main(String[] args){
                //定义整数类型的变量:
                //给变量赋值的时候,值可以为不同进制的:
                int num1 = 12 ;//默认情况下赋值就是十进制的情况
                System.out.println(num1);
                int num2 = 012;//前面加上0,这个值就是八进制的
                System.out.println(num2);
                int num3 = 0x12;//前面加上0x或者0X,这个值就是十六进制的
                System.out.println(num3);
                int num4 = 0b10;//前面加上0B或者0B,这个值就是二进制的
                System.out.println(num4);
                
                //定义byte类型的变量:
                byte b = 126;//定义了一个byte类型的变量,名字叫b,赋值为12
                System.out.println(b);
                //注意:超范围的赋值会报错。
                short s = 30000;
                System.out.println(s);
                int i = 1234;
                System.out.println(i);
                //整数类型默认就是int类型的,所以12345678910是一个int类型的数,对于int类型来说,它超出范围了
                //要想把一个数给long类型变量,那么后面加上L(推荐)或者l就可以了
                long num5 = 12345678910L;
                System.out.println(num5);
                //注意:只有这个数超出int类型的范围了后面才需要加上L,否则无需加L也可以赋值给long类型:
                long num6 = 12;
                System.out.println(num6);
                
        }
}

浮点类型

浮点类型常量
  • 十进制数形式,例如: 3.14 314.0 0.314

  • 科学记数法形式,如
    314e2 314E2 (E的大小写没有区分) 314E-2
    double f = 314e2; //31410^2–>31400.0
    double f2 = 314e-2; //314
    10^(-2)–>3.14

浮点类型变量

浮点类型float和double的表数范围:在这里插入图片描述
浮点数默认为double

//注意:浮点型默认是double类型的,要想将一个double类型的数赋给float类型,必须后面加上F或者f
            float f1 = 3.14234567898623F;
            System.out.println(f1);

我们不要进行浮点型类之间的比较

		float f2 = 0.3F;
        double d2 = 0.3;
        System.out.println(f2==d2);
    /*
           = 赋值运算:  将等号右侧的值赋给等号左侧
            == 判断==左右两侧的值是否相等  :结果要么相等 要么不相等
            ==运算符的结果就是要么是true,要么是false
     */

输出结果:

        flase
因为float和double的存储方法不一样,所以比较会出错。

一般用不到float和double,因为浮点类型算术会产生误差,后期会通过特殊的类来实现浮点数的计算

字符类型

Java中使用单引号来表示字符常量,字符型在内存中占2个字节。
char 类型用来表示在Unicode编码表中的字符。Unicode编码被设计用来处理各种语言的文字,它占2个字节,可允许有65536个字符。

转义字符

在这里插入图片描述

ASCII码

在这里插入图片描述

public class TestVar08{
        public static void main(String[] args){
                char ch1 = 'A';
                System.out.println(ch1);//A
                System.out.println(ch1+90);//155
                System.out.println(155-ch1);//90
                //char类型我们看到的样子就是它本身的字面常量,但是底层在进行计算的时候,实际上是按照一个码进行计算的。
                //这个码就是ASCII
                //之前说char类型是按照Unicode码表进行存储的 (Unicode兼容了ASCII码,Unicode的前128位置ASCII)
                
                char ch2 = '中';
                System.out.println(ch2);// 中
                System.out.println(ch2+90);// 20103
                System.out.println(20103-ch2);// 90
                
                //转换:
                int num1 = (int)ch2;
                System.out.println(num1);//20013
                
                char ch = (char)20013;
                System.out.println(ch);
                
                int num2 = '中';
                char ch5 = 20013;
                System.out.println(ch5);
                
                //面试题:
                char ch6 = '2'+2;//字符2的ASCII码为50,50+2=52,ASCII码中52对应的字符是4;这里的2,4都是字符,而不是int类型数字。
                System.out.println(ch6);//'4'--->4
        }
}

布尔类型

boolean类型有两个常量值,true和false,在内存中占一位(不是一个字节),不可以使用 0 或非 0 的整数替代 true 和 false ,这点和C语言不同。 boolean 类型用来判断逻辑条件,一般用于程序流程控制 。

public class TestVar09{
        public static void main(String[] args){
                //创建一个布尔类型的变量:
                boolean flag1 = true;
                System.out.println(flag1);
                boolean flag2 = false;
                System.out.println(flag2);
                boolean flag3 = 5==9;
                System.out.println(flag3);
                boolean flag4 = 5<9;
                System.out.println(flag4);
        }
}

基本数据类型的转换

`
byte,short,char–>int–>long–>float–>double(从左往右级别越来越高)
当一个表达式中有多种数据类型的时候,要找出当前表达式中级别最高的那个类型,然后其余的类型都转换为当前表达式中级别最高的类型进行计算。

     double d2 = 12+1294L+8.5F+3.81+'a';
     System.out.println(d2);//3.81是Double类型的数据,所以计算时会将右边所有的数转换成Double的数据。
 	int i2 = (int)(12+1294L+8.5F+3.81+'a');
    System.out.println(i2);//3.81是Double类型的数据,所以计算时会将右边所有的数转换成Double的数据。然后才进行int类型强制转换。
    /*
                在进行运算的时候:
                左=右  : 直接赋值
                左<右  :强转
                左>右  :直接自动转换
                */

//以下情况属于特殊情形:对于byte,short,char类型来说,只要在他们的表数范围中,赋值的时候就不需要进行。

 //强转了直接赋值即可。
        byte b = 12;
        System.out.println(b);
        byte b2 = (byte)270;
        System.out.println(b2);
        //这里输出14。270的二进制0001 0000 1110,而byte类型为8位,超出8位后,强制转换,会造成精度损失。只把0000 1110保留了下来。

字符常量

一个变量被final修饰,这个变量就变成了一个常量,这个常量的值就不可变了
这个常量就是我们所说的 字符常量
字符常量的名字全部大写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值