• 变量


    /*
        变量的第一个测试程序:Var是变量
        1 关于程序当中的数据?
            开发软件是为了解决现实世界中的问题。
            而现实世界当中,有很多问题都是使用数据进行描述的。
            所以软件执行过程中最主要的就对数据的处理。
    
            软件在处理数据之前需要能够表示数据,在java代码中怎么去表示数据呢?在java中有这样的一个概念:字面量。
    
            注意:在java语言中“数据”被称为“字面量”。
            10
            1.23
            true
            false
            'a'
            "abc"
            以上这些都是数据,在程序中被叫做“字面量”。
    
            字面量可以分为很多种类:
                整数型字面量 1 2 3 100 -100 -20 ....
                浮点型字面量 1.3 1.2 3.14.....
                布尔型字面量 true false 没有其他值了,表示真和假,true表示真,false表示假
                字符型字面量 'a' 'b' '中'
                字符串型字面量 "abc" "a" "b" "中国"
    
                其实字符型和字符串型都是描述了现实世界中的文字:
                    需要注意的是:
                        所有的字符型只能使用单引号括起来。
                        所有的字符串型只能使用双引号括起来。
    
                    字符型一定是单个字符才能成为"字符型"。
                    
                    在语法级别上怎么区分字符型和字符串型?
                        主要看是双引号还是单引号
                        单引号的一定是字符型
                        双引号的一定是字符串型。
    
        2 什么是变量?
            
    */
    
    public class VarTest{
        public static void main(String[] args){
            System.out.println(100);
            System.out.println(3.14);
            System.out.println(true);
            System.out.println(false);
            System.out.println('a');
            System.out.println('中');
            System.out.println("abc");
            System.out.println("国");//这不属于字符型,因为使用双引号括起来了,所以他是字符串。
    
            System.out.println('好');//属于字符型
            System.out.println("好");//属于字符串型
            System.out.println("1");//属于整数型吗?不是,是字符串。
    
            //分析一下:如果只有字面量,没有变量机制的话,会有什么问题?
            //10 是一个整型数据,在内存中占有一定的空间(CPU 内存 硬盘)
            //10 + 20 = 30
            //在内存中找一块空间存储10,在找一块空间存储20, CPU负责“+”运算,算完之后的结果是30,那么这个30也会在内存当中找一块临时的空间存储起来。
            //思考:以下的三个100在内存中是一块空间,还是三块不同的空间呢?
            //以下虽然都是100,但是这3个100占用三块不同的内存空间。
            System.out.println(100);
            System.out.println(100);
            System.out.println(100);
            System.out.println(100);
            System.out.println(100);
            System.out.println(100);//只有“字面量”机制的话,是远远不够的,因为只有字面量内存是无法重复利用的。
    
            //定义/声明一个变量,起名i
            int i = 10;
            //以下这5次访问都是访问的同一块内存空间。(这样使用变量之后,内存空间就得到了复用)
            System.out.println(i);
            System.out.println(i);
            System.out.println(i);
            System.out.println(i);
            System.out.println(i);
            
            //以下程序标识访问的是字符i以及字符串i,以下的这两个i和以上的i变量没有任何关系。
            System.out.println('i');
            System.out.println("i");
        }
    }
    /**
    * 变量测试类2
    * @author 吴欣麟
    * @version 1.1
    * @since 1.0
    */
    /*
        什么是变量?
            变量其实就是内存当中存储数据的最基本的单元。
            变量就是一个存储数据的小盒子。
        
        在java语言当中任何数据都是有数据类型的,其中整数型是:int
            没有为什么,Java中规定的,整数型就是:int
        
        当然,在java中除了数据类型int之外,还有其他的类型,例如带小数的:double等。。。
        数据类型有什么用?
            记住:不同的数据类型,在内存中分配的空间大小不同。
            也就是说,java虚拟机到底给这个数据分配多大的空间,主要还是看这个变量的数据类型是什么,根据不同的类型,分配不同大小的空间。
        
        对于int这种整数类型,JVM会自动给int分配4个字节大小的空间。
        1个字节 = 8个比特位
        1个比特位就是一个1或0。注意:比特位是二进制位。
        int是占用多少个二进制位?32个二进制位(4*8 bit位)
    
        int i = 1;实际上在内存中是这样表示的:
            00000000 00000000 00000000 00000001
        int i = 2
            00000000 00000000 00000000 00000010
        
        二进制位就是:满2进1位(0 1 10 11 100 101......)
        十进制为就是 满10进1位(1 2 3 4 5 6 7 8 9 10)
    
        对于一个变量来说,包括三要素:
            变量的数据类型
            变量的名字
            变量中保存的值
            有类型+名字+值
                类型决定空间的大小
                起个名字是为了以后方便访问。(以后在程序中访问这个数据是通过名称来访问的)
                值是变量保存的数据
            
            变量名属于标识符吗?
                变量名命名规范中是怎么说的?
                    首字母小写,后面每个单子首字母大写,遵循驼峰命名方式,见名知意。
    
            变量怎么声明/定义,语法格式是什么?
                数据类型 变量名;
                例如:
                    int age = 20;
            
            在java语言中有一个规定,变量必须先声明,再赋值才能访问。(没有值相当于这个空间没有开辟一样)
    
            在java语言中怎么给一个变量赋值呢,语法格式是什么?
                记住:使用一个运算符,叫做“=”,这个运算符被称为赋值运算符。
                赋值运算符“=”的运算特点是:等号右边先执行,执行完之后赋值给左边的变量。
    
            变量可以声明的时候赋值吗?可以的。
    
    */
    public class VarTest02{
        /**
        * 这是一个程序的入口
        * @param args是main方法的参数
        */
        public static void main(String[] args){
            //定义一个int类型的变量,起名age,该变量用来存储人的年龄。
            int age;
            //变量声明之后,没有手动赋值,可以直接访问吗?
            //编译报错:错误: 可能尚未初始化变量age
            //System.out.println(age);
    
            //给变量赋值
            age = 45;
            System.out.println(age); //这是访问变量
    
            System.out.println("age");//这是访问字符串
    
            //变量:可以变化的量。
            age = 80;
            System.out.println(age);
    
            // 再次重新赋值
            age = 90;
            System.out.println(age);
    
            //体重80kg
            int weight = 80;
            System.out.println(weight);
        }
    }
    public class VarTest03{
        public static void main(String[] args){
            // 在这里可以访问k变量吗?
            // 注意:方法体当中的代码遵循自上而下的顺序依次逐行执行。
            // 所以以下程序编译报错。
            System.out.println(k);//错误: 找不到符号
    
            // 只有执行了这一行代码,k变量在内存中才会开辟空间。
            int k = 10;
        }
    }
    // 重要的结论:在同一个域当中(这个域怎么理解,后面讲),变量名不能重名,不能重复声明。
    public class VarTest04{
        public static void main(String[] args){
            // 声明一个整数型的变量起名nianLing,存储值20
            int nianLing = 20;
            System.out.println(nianLing);
    
            // 给变量重新赋值
            ninaLing = 30;
            System.out.println(nianLing);
            
            //这个可以吗?不行
            int nianLing = 100; //错误: 已在方法 main(String[])中定义了变量 nianLing
            System.out.println(nianLing);
        }
    }
    
    
    变量的作用域
        出了大括号就不认识了。别的先别管。
        {
            int i = 100;
            {
                在这里可以访问i
            }
        }
    
        {
            在这里是无法访问i变量。
        }
  • 相关阅读:
    Git fetch和git pull的区别
    gitlab数据迁移
    阿里云CentOS7挂载SSD云盘的方法
    phpQuery的用法
    用shell查找某目录下的最大文件
    gearman 简介
    学习笔记(3)——实验室集群WMS服务配置
    学习笔记(2)——实验室集群LVS配置
    Fedora16的双显卡切换问题
    学习笔记(1)——实验室集群配置
  • 原文地址:https://www.cnblogs.com/xlwu/p/13052795.html
Copyright © 2020-2023  润新知