JAVA基础(3)-变量及数据类型

目录

变量

数据类型

基本数据类型:

(1)整数类型:

(2)浮点数类型:

(3)字符类型:

(4)布尔类型:

引用数据类型

类型转换


变量

     概念:变量是指内存中的一个存储区域,该区域要有自己的名称(变量名)、类型(数据类型),该区域的数据可以在同一数据类型的范围内不断变化值。

     变量的命名规则:
            (1)名称由字母,数字,_和$任意组成,数字不能开头
            (2)大小写敏感(声明式用的什么名称,在接下来就要用什么,不能随意更改其大小写)
            (3)可以使用汉字,但是不建议使用
            (4)驼峰命名法,见名知意     列:myDogName = "旺财";
            (5)不能使用关键字(java保留字)

     变量的使用规则:
           (1) 必须先定义和初始化(也就是创建完成后要对创建好的变量进行初始化)
           (2) 变量可以重复使用(即可以进行多次存取操作),不需要强调类型,但是存储数据时 一定要与第一次声明时的类型匹配
           (3) 变量有自己的作用域,出了范围,变量失效。出了作用域:想使用,需要重新定义和初始化。(变量的作用域:即从定义开始的大括号,到所在的大括号的结束符号为止。)


数据类型

java语言中共分两大类型:基本数据类型-原始数据类型引用数据类型

基本数据类型:

              8种:byte,short,int,long,float,double,char,boolean
       归纳分类:
              (1) 整数类型:4种,byte,short,int,long
              (2) 浮点数类型:float,double
              (3) 字符类型:char
              (4) 布尔类型:boolean

(1)整数类型:

        byte(不常用):也叫字节类型,在内存中占8位二进制,即在内存中占1字节大小的空间,是数据存储的最小单位。

                范围:-128~127
                幂表示:-2^7~2^7-1
        short(不常用):也叫短整型。在内存中占16位二进制,2字节大小。

                范围:-32768~32767
                幂表示:-2^15~2^15-1    
     int(常用):也叫整型。在内存占32位的二进制,4字节大小。
     
               范围:-2147483648~2147483647
               幂表示:-2^31~2^31-1
     long(常用):也叫长整型。在内存占64位二进制,8字节大小。(要想初始就赋一个long值,在数字后面加上L或l)
               范围:正负922亿亿左右
               幂表示:-2^63~2^63-1

补充:1、因为计算机存储的是二进制的数,所以要想表示正负的话,就要看二进制数中的第一位,1表示负数,0表示正数。

           2、整数类型在进行运算时,要遵守封闭式运算原则,即:max+1 等于min,min-1 等于max。

          3、直接写的整数值,叫字面量(字面量的类型为int类型)

          4、同位数的二进制进行运算时,结果位数不变。

练习代码:

public static void main(String[] args){
	/*整型的封闭式运算*/
		int max = 2147483647;
		int count = max+1;
		System.out.println(count);
}

(2)浮点数类型:

          小数类型

          float:  在内存中占4字节大小,32位二进制
                 范围:-3.403E38~3.403E38
          double: 在内存中占8字节大小,64位二进制
                 范围:-1.79E308~1.79E308

          浮点类型的字面量:默认类型为double,即64位的浮点数类型如果想直接写32位的浮点数,需要在数值后添加f/F

          列:double num = 3.14;       float num1 = 3.14F;

扩展说明:把浮点型和整型放到一起比较

                 范围大小从大到小排序:double>float>long>int>short>byte
                 精度大小从大到小排序(int,long,float,double) :long>int>double>float

                浮点数类型在存储数据时,会有舍入误差即,不够精确。但是,double要比float更精确一些(相比float,要精确多一倍)

                浮点数类型无法精准表示1/10,就像10进制数无法表示1/3一样。所以,在运算时,多数情况下,都是不精确运算(因为在内存中存储的格式为二进制,所以会有误差,但计算类似1/2的结果时,则很精确)

练习代码:

public static void main(String[] args){

        float m = 1.1234567890123456789F;
		double n = 1.1234567890123456789;
		System.out.println(m);
		System.out.println(n);

}

(3)字符类型:

             在内存中占2字节大小,16位二进制。
             赋值特点:
                    1、所赋的值有且只能是一个字符
                    2、字符必须使用单引号 '  ' 引起来。

            另外特点:底层二进制是无符号的整数类型,即  0~2^16-1 ---> 0~65535 所以,赋值时,也可以赋值整数。但是,存入变量空间后,其实是其整数对应的字符。

练习代码:

public static void main(String[] args){
		char c1 = 'a';
		System.out.println(c1);
		char c2 = '啊';
		System.out.println(c2);
		//char c3 = '';//编译错误,不能为空
		char c3 = ' ';//编译正确,可以为空格
		//char c4 = '  ';//编译错误,只能为一个空格
		//char c5 = "b";//编译错误,只能使用单引号
        char c8 = 65;
		char c9 = 97;
		char c10 = 48;
		System.out.println(c8+" "+c9+" "+c10);
}

            扩展:java语言默认使用的字符集为unicode(不同字符集中字符所对应的二进制的值也不相同)。

                   什么是字符集:即二进制与字符的一一对应关系的表

                  unicode字符集: 无论字母,还是汉字,都占两个字节大小
                               列:'A'---00000000 01000001
                                       'a'---00000000 01100001
                                       '0'---00000000 00110000

                  java语言常用的字符:  'A'~'Z' ->65~90
                                                        'a'~'z' ->97~122
                                                        '0'~'9' ->48~57

                 java语言中的转义字符:'\':将特殊字符变成相应意义的字符。
                 java语言中的特殊字符:单引号,双引号,制表符,换行符,回车符号
                                                         '\''  单引号
                                                         '\"'  双引号
                                                         '\\'   反斜线
                                                         '\t'   制表符
                                                         '\r'   换行符,(有翻页效果,类似于回车符)
                                                         '\n'   回车符,

(4)布尔类型:

                用来判断条件是否成立的,在内存中占1字节大小。
                只有两个值 true/false
                true:表示条件成立
                false:表示条件不成立

引用数据类型

         常用的引用类型:

               String:字符串类型

                         赋值特点:
                                1.必须使用双引号 " "
                                2.引号内有0或0个以上的字符都可
                                3.字符串可以做拼接操作,拼接后的数据 仍是字符串类型。
练习代码

public static void main(String[] args){
		
		String name = "小张";
		//String n1 = '小王';//编译错误。
		String n1 = "";//编译正确,可以为空字符串
		String n2 = " ";//编译正确,空格字符串
		String m = "中国";
		String m1 = "666";
		//可以进行拼接操作,拼接符号为 +
		String m2 = m+m1;
		System.out.println(m2);
}

类型转换

    1.自动转换(隐式转换):占内存小的类型变量赋值给占内存大的类型变量,会发生自动转换。

              自动转行中,有小类型向大类型转换,转换后在其对应的二进制数组中前面添加相应数量的0或1

                  类型的大小顺序:byte-->short-->int-->long-->float-->double
                                                        char

     2、强制转换:占内存大的类型变量赋值给占内存小的类型变量,需要强制转换。

                 语法如下:(占内存小的变量类型名)变量;列: int a = 1;byte a1 = (byte)a;
                 注意:有可能出现精度损失。

                 类型的大小顺序 double->float-->long-->int-->short--byte
                                                                                    char

练习代码

public static void main(String[] args){
	  /*
	    练习:
		  将 short类型的b赋值给int类型的a;
		  将 byte类型的c赋值给double类型的d;
		  将float类型的e赋值给double类型的g;

		  将double类型的n1赋值给float类型的n2
		  将float类型的n2赋值给int类型的n3;
		  将int类型的n3赋值给byte类型的n4;
		  分别输出
	  */
	    short b = 10;
		int a = b;
		System.out.println(a);
		byte c = 100;
		double d = c;
		System.out.println(d);
		float e = 1.0F;
		double g = e;
		System.out.println(g);

		double n1 = 0.618;
		float n2 = (float)n1;
		int n3 = (int)n2;
		byte n4 = (byte)n3;
		System.out.println(n2);
		System.out.println(n3);
		System.out.println(n4);
	}

猜你喜欢

转载自blog.csdn.net/woainiqazwsx123/article/details/81087581