Java基本语法总结02

以下代码A2讲述的是字面值、进制转换、数据类型、变量分类(成员变量以及局部变量):

public class A2 {
    public static void main(String[] args){
        

        //By Croaker~
        /*
            基本数据类型         占用空间大小【单位为字节】         默认值
            byte                        1                           0
            short                       2                           0
            int                         4                           0
            long                        8                           0

            float                       4                           0.0f
            double                      8                           0.0d

            boolean                     1                           false

            char                        2                           \u0000
            默认值向0看齐
            现代机算机底层采用交流电的方式,只有接通和断开两种状态,故:
            计算机在任何情况下都只能识别二进制(满二进一)

            字节(byte)
                1 Byte = 8 Bit(比特单位)【一个比特位就是一个二进制位,即为一个0或1】
                1 KB = 1024 Byte
                1 MB = 1024 KB
                1 GB = 1024 MB
                1 TB = 1024 GB

            java的数字类型中,数字都是有正有负的,所以在二进制中有一个二进制位被称为“符号位”
            该符号位在所有二进制位的最左边,0表示正数,1表示负数

        */
        
        
        /*
            基本数据类型的相互转换
            八种基本数据类型除布尔类型外其他其中之间都可以相互转换
            小容量向大容量转换,称为自动类型转换容量从小到大
            byte < short (char) < int < long < float < double
                注:
                    任何浮点类型不管占用多少字节,都比 整数型容量大
                    
                    char和short可表示的种类数量相同但char可以获取更大的正整数
                    
                    大容量转换成小容量叫做强制类型转换,需要加强制转换符,程序才能编译通过,但可能会损失精度,所以谨慎使用
                    
                    数字没超出byte,short,char的取值范围时可以直接赋值给变量

                    多种数据类型混合运算先转换成容量最大的类型再做运算
        */
        
        
        
        //整数存储类型
        byte b = 127;
        System.out.println(b);
        //某二进制数有x位(bit)则它可表示数的范围是(十进制)-(2^x)~(2^x -1)
        //取值范围从-128到127  由8位数构成
        short p = 32767;
        System.out.println(p);
        //取值范围从-32768到32767  由16位数构成
        int l = Integer.MAX_VALUE;
        System.out.println(l);
        //得到该类型所能存储的最大整数,32位
        long q = Long.MAX_VALUE;
        System.out.println(q);
        //同样得到该类型所能存储的最大整数,64位
        //未声明时程序以int形式存储

        /*
            1.要让整型字面值被当作long类型处理,则在其后加入L(大写)
            2.Java语言中整型字面值有三种表示方式
                二进制     以0b
                八进制     以0开头        如:0 1234567
                十六进制   以0x开头       如:0x AB564
                十进制    缺省默认

                输出时会以十进制的方式输出
        */
        int igg = 123;
        long xgg = 717189789;
        System.out.println(igg);
        System.out.println(xgg);
        //123整型字面值被当作int类型,占用4个字节
        //xgg变量在声明中为long类型,占用8个字节
        //int(小容量)转换成long(大容量)类型称为自动类型转换机制
        //直接书写以下代码会出错
        //long MM = 214748364 虽然long类型能存储但因为其先默认被当作int类型处理故超出范围会报错
        //所以应该像如下书写,才会以long类型解决
        long mm = 214748364L;
        System.out.println(mm);

        //100L是long字面值,占8字节
        //大容量转小容量,需要加入“强制类型转换符号”进行强转
        //谨慎使用强转,因为有时损失进度会很严重
        //强转原理
            /*原始数据:
                00000000 00000000 00000000 00000000 00000000 00000000 00000000 01100100
              强转之后数据:
                                                    00000000 00000000 00000000 01100100
              即将左边的二进制去掉【所有数据的强转都是如此完成】
            */
        long cad = 100L;
        //不强转则会报错(编译错误),强转后可能会损失精度
        //int yzz = cad;
        int yzz = (int)cad;
        System.out.println(yzz);//当数据属于待转型能表示的范围时就不会损失数据
        //原始数据:00000000 00000000 00000000 00000000 100000000 00000000 00000000 00000000
        //强转后数据:                                  100000000 00000000 00000000 00000000
        //计算机存储时所用的是补码
        long kx = 2147483648L;
        int yx = (int)kx;
        System.out.println(yx);//损失严重,结果是负数【-2147483648】

        //字面值未超过byte、short、char类型的范围时则可以直接赋值变量;
        //若超出则需要强转
        byte bo =50;
        System.out.println(bo);

        
        
        


        //小数存储类型(在计算机中都是以二进制储存近似值)
        float f = 3.14f;//单精度
        double d =3.14d;//双精度0
        System.out.println(f);
        System.out.println(d);
        //对于浮点型数据存储,系统默认为double类型
        //所以如果使用float类型(32λ)在数字后面需要加上f而对于double类型(64位)其数字后的d通常会省略


        
        
        
        //字符型所存必须放在''其中
        //字符类型
        char c = 'h';
        char t = '哈';
        char m = 97;            
        //可以用ASCII代替某些常用字符
        //记以下的ASCII码值,其他的可以推出
        //'a'-----> 97
        //'A'-----> 65
        //'0'-----> 48
        System.out.println(c);
        System.out.println(t);
        System.out.println(m);
        //java程序中的字符类型0可以存放汉字
        //汉字在Java中占两字节 00 (每字节占用8位)
        //char类型共有16位

        
        //boolean在开发中经常使用逻辑运算和条件控制语句

        boolean a = false;
        System.out.println(a);
        //默认为false,相当于C语言中的0=false以及1=true,共占8位,一个字节
        //boolean flag = 1;编译错误:不兼容类型



        //在C语言中可以通过把数字放前,变量放后的方法来避免漏写一个等号
        int x = 0;
        if(x == 0)
        System.out.println("Hello");
        //而在java中若只出现一个等号则编译器会报错


        //在Java中""号中不能只出现空格(""号中存储字符串;''号中存储字符)
        //charAt(i)是逐一输出字符串中的单个字符
        String s ="Hello World";
        //字符串属于引用数据类型
        for (int i=0; i<s.length();i++);
            //System.out.print(" "+ s.charAt(i));
            //System.out.print(s.charAt(i) + "");
            //System.out.print("" + s.charAt(i) + "");
            //三者结果不一样
            //println 输出数据并转行相当于C中的printf和/n
            //print   只是单纯地输出数据
         
      }
}
/*
    关于字面值
        字面值
            如:10、100
                3.14
                "abc"
                'a'
                ture/false
    字面值就是数据
    为Java源程序的组成之一
    数据在现实世界中有分门别类,所以数据在计算机编程语言中有类型

        10、100              整数型
        3.14                 浮点型
        ture、false          布尔型
        "abc"、"中国"        字符串型
        'a'、'人'            字符型
    
    注意:
        Java语言当中所有字符串型均应使用双引号括起来,双引号为半角(英文输入)
        Java语言当中所有字符型均应使用单引号括起来,单引号为半角(英文输入)

        System.out.println('ABA');
        编译会报错,因为单引号中只能存放单个字符,属于字符型字面值

        100是一个字面值,是一个整数型数值,那么既然是数据就需要存储在内存中,必会占用一定空间
        System.out.println(100);
        System.out.println(100);
        System.out.println(100);
        System.out.println(100);
        上述相同的100访问的空间在不同的内存空间中
        上述四个100(常量)共需占用12个字节
        如需重复访问则需要利用到变量

        变量的分类
            根据变量声明的位置分为:
                局部变量:在方法体中声明的变量
                成员变量:在方法体外【类体之内】的变量
        
 */
class A2_1{
    //成员变量
    int k = 200;

    //主方法:入口
    public static void main(String[] args){
        //i变量就是局部变量
        int i = 10;//第一个i
        System.out.println(i);//就近,即访问上一条代码中的i=10
    }
    //类体中不能直接编写Java语句【声明变量除外】
    //成员变量
     int i = 100;//第二个i

    //doSome方法
    public static void doSome(){
        //局部变量
        int i = 90;//第三个i
        System.out.println(i);

    }

}
//上述代码中因为i的作用域不同,故上述对于不同类的变量可以定义相同名字的变量
//Java遵循就近原则

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值