java变量,数据类型

              java中的变量

                         什么是变量?

                                     就是变化着的数值,不确定的数据。

                 在java中,我们通过定义变量,在内存中开辟空间,来存储不确定的值。而开辟空间是通过 明确数据类型,变量名,数据来完成的。


                    定义变量的格式:  数据类型    变量名 =初始化值;


          数据类型

                                  java是强类型语言(必须为所有数据指定数据类型),定义了明确的数据类型,在内存中分配了不同大小的内存空间,java中的数据类型有两种:基本数据类型和引用数据类型。


             1基本数据类型(8种)

                    1.1 整数类型 : byte  short  int   long

                    1.2浮点型:float,double

                    1.3 字符型: char

                    1.4布尔型:boolean

               在了解数据类型之前,先要清楚计算机内存的分布,在计算机中,最小的单位是位(bit)。

             1位 = 1 bit。 而8位又构成一个字节(byte),             即  8 bit = 1  byte;      8位= 1字节;          


                      整数类型:

                  byte : 使用byte关键字来定义byte类型,byte是整型中内存空间分配最少的,占 1 个字节(也就是8位) ,byte的取值范围在 -2的7次方 到 2的7次方减一,     也就是   -128~~127之间。(1百多)


                   short : 短整型。short 短整型在 内存中 占 2个字节 (16位),short的取值范围在 -2的15次方 到 2的15次方减一,也就是 -32768 ~~ 32767 之间,(3万)

 

                 int : 整型。整型在内存中占 4 个字节 (32位) ,int的取值范围很大,足够一般情况使用,所以int整型的应用范围是最广的,它的取值范围是在-2的31次方 到 2的31次方减一,也就是 -2147483648~~ 2147483647 之间 (20亿)

 

                long : 长整型,长整型在 内存中 占 8个字节 (64位),long的取值范围在  -2的63次方 到 2的63次方减一,也就是 -9223372036854775808 ~~9223372036854775807 之间 (long的范围已经是相当相当大了 过千万亿).  


              在java中,默认的整数类型是 int型,所以在给long类型变量赋值的时候,如果这个变量的值超过int类型的范围,需要在它的结尾加上'L'或者'l'.

                       浮点类型:

                              float:单精度浮点型。在内存中站 4个字节(32位),取值范围在  1.4E-45  ~~ 3.4028235E-38   。java中默认的小数类型是double类型,所以如果需要使用float型小数,则需要在小数后面添加‘F’或者‘f’,声明浮点类型时,,我们可以使用后缀‘D’或‘d’,来明确表明这是一个double类型数据,不加‘d’不会出错,但是声明float类型变量时,如果不加‘f’会出错,因为默认的小数类型是double类型,所以不加‘f’,会被认为是double类型而报错。

<span style="font-size:18px;">public static void main(String[] args){
        int a;
       double a=3.2;//正确
        float f=13.1;//会报错,需要在后面加f声明这是一个float类型变量
       float f1=3.14f;//正确 
}</span>

                     double: 双精度浮点类型,在内存中占64位, 取值范围是 4.9E-324 ~~ 1.7976931348623157E308 ,单双精度的区别是 他们具有不同的取值范围,而不是小数点后一位和两位。


                      字符类型:

                           char : 字符类型  用于存储单个字符,占用2个字节(16位),在赋值的时候需要用单引号‘’ 引起来,在单引号中只能有一个字符。char类型是无符号整数类型,取值范围是在0-65535。  这些整数与    ASCII编码表  一一对应。

                在编码表中, 整数48   --‘0’   (数字0)

                                              65-90      ‘A’ ---'Z'

                                             97-122      'a'---'z'             
  

              布尔类型:      

                                布尔类型又被叫做逻辑类型,只有两个值,true 和 false , 分别代表布尔逻辑中的真和假 , 使用boolean关键字声明布尔类型变量,通常被用在流程控制中作为判断条件。


             类型按照精度大小排序:

                                                                        byte < short < int  < long < float  < double 

         数据类型转换:

                                                数据类型转换是将一个值的类型更改为另一种类型的过程。涉及转换的数据类型转换不包括逻辑类型。

                           数据类型转换有两种方式: 1 隐式转换(自动类型提升)   2显示转换(又称为强制类型转换) 


                    1)  自动类型提升    :

                                       如果从低精度的数据类型向高精度的数据类型提升,内存不会溢出,并且总是成功的,在java中系统会自动执行这个操作。

                    2)  强制类型转换  : 当自动类型提升不能实现目的,或者在函数调用时,为了实现参数类型一致。在强制类型转换的过程中,高精度的数据转换为低精度的数据,这个过程中必然会有精度丢失。



 分析1     System.out.println(‘a’) 与 System.out.println('a'+1)的区别
        分析2     System.out.println(1+2"a") 与 System.out.println(1+2+"a"+1+2)的区别                

        分析3  byte b=3;
                        b=b+4;//报错。
                                    这句话错误的,因为 结果是int类型不能自动转换成byte类型。
                                            应该如下。
                                            b=(byte)(b+4);   












            

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值