java基础学习 2021.12.23 day03

变量

        定义:在运行期间,随时可能产生一些临时数据,应用程序会将这些数据保存在一些内存单元中,每个内存单元都用一个标识符来表示,这些内存单元被称为变量,定义的标识符就是变量名,存在单元中的数据就是变量的值。

        变量的三要素:        

                1)数据类型
                2)变量名:按照标识符的组成规则: 遵循 "小驼峰命名法"
                3)初始化值:如果变量使用之前都没有赋值,就"报错了"

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

变量的数据类型    /  java中的数据类型(重点):

        两大类:

                1)基本数据类型(四大类型,8种)

                        整数类型:默认int类型

                                byte  字节类型  占用的字节数1个字节   (-128~127:范围)
                                short  短整类型 占用的字节数 2个字节
                                int   默认类型   占用的字节数 4个字节
                                long   长整型   占用字节数 8个

                         实际开发过程中:多用int,其次是long(定义时间--当前系统毫秒值--后期学习类--                                                     -日期----毫秒值)

                        浮点类型:          默认就是double类型

                                float   单精度类型 (占4个字节)

                                注意:定义float类型时,float a123.4f;为float类型赋值,后面必须跟f/F.
                                double  双精度类型 (占8个字节)

                        字符类型
                                char 占两个字节数
                                
                                char ch = 'A' ; 为char类型的字符赋值字符A

                                char ch=97; 为一个char类型的变量赋值97,相当于辅助字符

                        布尔类型              不参与运算,只是提供判断和其他数据类型转换

                                boolean   (true / false )

                                boolean flag  = true ;

               2)引用数据类型:

                                类(class)

                                接口(interface)

                                数组([])

                                枚举(enum)

                                注解(annotation)

                 8种数据类型是java语言内嵌的,在任何操作系统种都具有相同大小的属性,而引用数 据类型是在java程序中由编程人员自己定义的变量类型.

                 定义变量的注意事项        
                     1)定义long类型必须在值的后面加上标记: L或者l 这样就表示定义的是长整型的变量                        2)浮点类型默认double,定义单精度float类型的时候,后面的值需要加上F/f.

1.变量中的测试(定义变量注意事项)

2.java中的基本数据类型---默认类型提升(隐式转化)
3.java中的强转类型。

        定义的时候的注意事项:
    
        1)同一个变量,不能被定义多次(重复定义),这种情况是因为Java是一个强类型语言
                强类型语言:语法和格式是非常严谨的! (Java语言)
                弱类型语言:JavaScript(前端Js)
                        js定义变量 var a = 10  ;(分号可以不写,var也可以不写)
        2)实际开发中,不建议同一行上定义多个变量(不适合阅读)
                一行同时定义多个变量(面试题/笔试题中出现居多)
                
        3)方法定义中的变量:局部变量,它在使用之前必须进行初始化否则报错!
                    1)要么定义的变量的时候就初始化了
                        数据类型 变量名 = 初始化值;
                    2)要么就先去定义,然后在使用之前必须初始化
                        数据类型 变量名;  //声明变量
                        变量名 = 初始化; //然后初始化了
                        
        4)语句结束,都是以"分号结束" ;  (英文字符)

        
     定义两个变量 :
                    int a = 4 ;
                    byte b = 3 ;
    
    两个变量要进行求和----数据在进行计算的时候,应该要保证数据类型一致!
    
    Java中基本数据类型:存在概念
            默认类型提升
                    byte,short,char三者之间不转换,但是分别自己参与运算的时候
        优先提升为int(考点)---long---float---double
        
        
        boolean类型:不参与任何的运算!它只是描述 
                逻辑判断的结果(true/false)

     定义两个变量 
                    int a = 4 ;
                    byte b = 3 ;
    
                    现在的接收的结果类型的变量是byte类型,而且a和b要进行变量相加
    
                    当前我们变量相加计算的时候,如果接收的类型 范围小于计算结果的数据类型
                    需要使用Java的强转类型转换-----让我们的数据进行类型匹配,防止出现(jvm提示不兼容的类型:)
            
                    显示转换(强制类型转换)----
                    不仅适用于基本类型,引用数据类型(后期研究引用类型)
            格式:
                    目标数据类型 变量名 = (目标数据类型)(结果) ;
                    
             实际开发中,尽量避免强转类型转换,可能会造成数据精度损失
        
        

举例测试:

        class DataTypeDemo3{
    
            public static void main(String[] args){
            
                    //定义变量变量
                    int a = 4 ; //int类型
                    byte b = 3 ;//byte类型
                    
                    //两个数据求和
                    int result = a + b ; //变量相加了
            
                    //int result = a + b //先将一个字节的b---直接提升int----变成4个字节3 
                    //结果数据类型:是int类型  = 四个字节的7(int类型)
                    System.out.println("result:"+result) ;//result:7
        
            }
        }

        class DataTypeDemo{
    
    public static void main(String[] args)
    {
        
        //byte类型 
        byte b = 100 ;
        //byte b = 120 ;  // 已在方法 main(String[])中定义了变量 b
        System.out.println("b:"+b) ;//"b:值" //b:100
        //重新赋值
        b = 20 ;
        System.out.println("b:"+b) ;
        
        System.out.println("------------------------------------") ;
        
        //短整类型 short    
        short s = 50 ;
        s = 90 ;
        System.out.println("s的值是:"+s) ;
        
        System.out.println("------------------------------------") ;
        
        //整数默认类型:int
        int i = 10000 ;
        System.out.println("i的值是:"+i) ;
        //i = 10000000000;//DataTypeDemo.java:44: 错误: 过大的整数: 100000000
        
        System.out.println("------------------------------------") ;
        long l = 100000000000L; //建议使用L
        //当前这个类型装不下了,此时就需要使用长整型定义
        System.out.println("l的值是:"+l) ;
        
        //long类型的应用场景:定义时间毫秒值的时候
        
        //举例:jdk提供的 System类:里面有一个方法:获取当前系统时间毫秒值
        //public static long currentTimeMillis()
        //long time  = System.currentTimeMillis() ;
        //System.out.println(time) ;
        
        
        System.out.println("----------------------------------") ;
        
        //浮点类型:默认double
        //单精度类型float
        //float f = 12.56;//DataTypeDemo.java:64: 错误: 不兼容的类型: 从double转换到float可能会有损失
        
        //加入标记
        float f = 12.56F;
        System.out.println("f:"+f) ;
        //double类型
        double d = 13.45 ;
        System.out.println("d:"+d) ;
        
        System.out.println("----------------------------------") ;
        //字符类型char
        char ch = '我' ;
        ch = 'A' ;
        ch = '0' ;
        System.out.println("ch:"+ch) ;//'0'
        
        System.out.println("----------------------------------") ;
        //布尔类型 boolean 使用逻辑判断去用的,不参与运算
        //一般情况变量 flag(标记)
        boolean flag = true ;
        flag = false ;
        System.out.println("flag:"+flag) ;
        
        
        
    }
}    

同一行定义了多个变量
        byte b, b1 = 3,b2 = 4 ;
        1)b = b1 + b2 ;    //变量相加
        2)b = 3+4 ;             //两个常量相加
        输出b的值 
        
        问:
            当前代码中 哪一句会编译失败,为什么,指出它的解决思路!
            
            1)编译失败
            为什么?因为byte,short,char三者之间不转换,一旦参与运算
            优先提升为int
            所以b1--先提升为int类型3
            b2---提升为int类型的4
            两个相加的结果为int类型的 7,而b的类型 byte,接收不了
            
            所以需要强转类型转换

            
    
*/
class DataTypeTest{
    
    public static void main(String[] args){
        //同一行定义了多个变量
        
        byte b, b1 = 3,b2 = 4 ; 
        //1)
        //b = b1+ b2;//不兼容的类型: 从int转换到byte可能会有损失
        
        //b = (byte)(b1+b2) ; //解决格式:强转
        //System.out.println("b:"+b) ; 
        
        //2)
        b = 3+4 ;  //常量相加,先相加,然后看其的结果是否在byte类型 取值范围内,
        //在的话,就直接赋值
        //超过范围了 (默认整数int类型---强转解决: ")
        System.out.println("b:"+b) ;
        
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值