zoukankan      html  css  js  c++  java
  • 变量

    变量概述

    前面我们已经学习了常量,接下来我们要学习变量。在Java中变量的应用比常量的应用要多很多。所以变量也是尤为重要的知识点!

    什么是变量?变量是一个内存中的小盒子(小容器),容器是什么?生活中也有很多容器,例如水杯是容器,用来装载水;你家里的大衣柜是容器,用来装载衣裤;饭盒是容器,用来装载饭菜。那么变量是装载什么的呢?答案是数据!结论:变量是内存中装载数据的小盒子,你只能用它来存数据和取数据。

    计算机存储单元

    变量是内存中的小容器,用来存储数据。那么计算机内存是怎么存储数据的呢?无论是内存还是硬盘,计算机存储设备的最小信息单元“位(bit,我们又称之为“比特位”,通常用小写的字母b表示。而计算机最小的存储单元“字节(byte”,通常用大写字母B表示,字节是由连续的8个位组成。

    当程序需要使用存储空间时,操作系统最小会分派给程序1个字节,而不是1个位。你可能会说,如果程序只需要1个位的空间,系统分派不能只分派1个位吗?答案是不能!这就像你只需要1支烟,你到商店去买烟,商店分派的最小单元是1盒(20支),他不可能卖给你1支烟。

    你可能会想,1个字节(8位)可以存储很大的数值了,1位最大是9那么8位最大值为99999999。你错了,因为计算机是采用二进行存储的,而不是我们生活中常用的十进制。所以1个字节存储的最大数据是11111111的二进制数。

    除了字节外还有一些常用的存储单位,大家可能比较熟悉,我们一起来看看:

    1B(字节) = 8bit

    1KB = 1024B

    1MB = 1024KB

    1GB = 1024MB

    1TB = 1024GB

    1PB = 1024TB

     

     基本类型之48

      大衣柜不能用来装载水,水杯也不能用来装载衣裤。这说明不同的容器装载不同的物品。变量也是如此,在创建变量时需要指定变量的数据类型,例如整型变量、浮点型变量等等。结论:变量必须要有明确的类型,什么类型的变量装载什么类型的数据。

    水杯是用来装水的,那么水杯能装多少水呢?一吨?我们知道水杯在创建时不只确定了要装载的是水(数据类型),而且还确定了能装多少水(数据类型的具体种类)。变量也是如此,需要指定变量能装载什么类型的数据,同时也要指定变量能装载多大的数据。

    Java中基本类型一共4类,把这4类展开后共8种基本类。我们今后编写程序时使用的是这8种基本类型而不是4类,这8种基本类型指定了范围。

    四类

    八种

    字节数

    数据表示范围

    byte

    1

    -128~127

    short

    2

    -32768~32767

    int

    4

    -2147483648~2147483648

    long

    8

    -263~263-1

    浮点型

    float

    4

    -3.403E38~3.403E38

    double

    8

    -1.798E308~1.798E308

    字符型

    char

    2

    表示一个字符,如('a','A','0','家')

    布尔型

    boolean

    1

    只有两个值true与false

    常量与类型

    前面我们说过100是整数常量,但它是byteshortintlong中的哪一种呢?下面我们来聊聊这一常量类型的问题。

    整数常量可以根据所在范围来确定类型,例如100-128~127之间,所以他是byte类型;500-32768~32767之间,所以它是short类型;100000-2147483648~2147483648之间,所以它是int类型。java中默认的整数类型是int类型

    你可能会认为12345678901-263~263-1之间,所以它是long类型。注意了,这是错误的!!!在Java中整数常量如果不在-2147483648~2147483648之间就必须添加“L”后缀(小写的也可以,但建议使用大写),在-2147483648~2147483648之间的也可以添加“L”后缀。也就是说12345678901不在-2147483648~2147483648之间,所以它在Java中是错误的常量,你必须这样写:12345678901L,这才是正确的常量。所以添加了“L”后缀的整数常量都是long类型的,例如:100L12345678901L都是long类型的常量。

    浮点类型的常量也可使用后缀,在Java中所有没有后缀以及使用“D”后缀(小写也可以,但建议使用大写)的小数都是double类型;float类型常量必须添加“F”后缀(小写也可以,但建议使用大写)java中默认的浮点类型是double类型

    l 3.14没有后缀,所以它是double类型;

    l 5.28Ddouble类型;

    l 1.26Ffloat类型。

    定义变量(创建变量)

    定义变量的语法格式:

    数据类型  变量名  =  数据值;

    int         a    =  100;

    其中int是数据类型,指定了变量只能存储整数,而且指定了存储范围为-21474836482147483648

    其中a表示变量名,变量名是标识符,这说明只要是合法的标识符都可以用来做变量名。在程序中可以通过变量名来操作变量(内存中的小盒子)。

    其中=100”是给变量赋值,即向a变量中写入100(变量是个小盒子,现在小盒子中保存的是100)。注意,给变量赋的值一定要与类型符合,也就是说int类型只能存储整数,而且必须是在-21474836482147483648范围内的整数。100满足了这两个条件,所以是正确的。

    练习:

    Variabe.java

    /*

    变量定义格式:

    数据类型  变量名  =  变量值;

    */

    public class Variable {

    public static void main(String[] args) {

    int a = 10;

    double b = 3.14;

    char c = 'z';

    String s = "i love java";

     

    a = 20;

    System.out.println(a);

    }

    }

    变量使用的注意事项

    我们使用变量的时候需要注意,要满足变量的使用规则才可以使用的,我们来看看都有哪些注意事项。

    l 变量使用的注意事项

    n 变量定义后可以不赋值,使用时再赋值。不赋值不能使用。

    public static void main(String[] args) {

    int x;

    x = 20; //x赋值20

    System.out.println(x);//读取x变量中的值,再打印

    }

    n 变量使用时有作用域的限制。

    public static void main(String[] args) {

    int x = 20;

    {

        int y = 20;

    }

    System.out.println(x);//读取x变量中的值,再打印

    System.out.println(y);//读取y变量中的值失败,失败原因,找不到y变量,因为超出了y变量作用范围,所以不能使用y变量

    }

    n 变量不可以重复定义。

    public static void main(String[] args){

          int x = 10;

          double x = 5.5;//编译失败,变量重复定义

    }

    数据类型转换

      不同类型的变量是否可以在一起运算呢?答案是可以的,但要先进行类型转换再运算。下面我们来学习一下类型转换。

    其实,我们所学习的数据,它的表示方式是可以灵活多变的,比如把小数转换成整数的操作

    转换的过程中,数据遵循一个原则:

    范围小的数据类型值(如byte),可以直接转换为范围大的数据类型值(如int);

    范围大的数据类型值(如int),不可以直接转换为范围小的数据类型值(如byte

    那么,大家还记得每种类型表示数据的范围吗?忘记了不要紧,我来告诉大家,将各种数据类型按照数据范围从小到大依次列出:

    byte -> short -> int -> long -> float -> double

    关于数据类型转换有两种方式,我们来学习一下:

    l 自动类型转换

    表示范围小的数据类型转换成范围大的数据类型,这种方式称为自动类型转换

    自动类型转换格式:

    范围大的数据类型 变量 = 范围小的数据类型值;

    如:

        double d = 1000;

        int i = 100;

        double d2 = i;

     

    l 强制类型转换

    表示范围大的数据类型转换成范围小的数据类型,这种方式称为强制类型转换

    强制类型转换格式:

    范围小的数据类型  变量 = (范围小的数据类型) 范围大的数据类型值;

    如:

    int  i = (int)6.718;   //i的值为6

    double  d = 3.14;

    int  i2 = (int)d;     //i2的值为3

  • 相关阅读:
    Mayan游戏 (codevs 1136)题解
    虫食算 (codevs 1064)题解
    靶形数独 (codevs 1174)题解
    黑白棋游戏 (codevs 2743)题解
    神经网络 (codevs 1088) 题解
    The Rotation Game (POJ 2286) 题解
    倒水问题 (codevs 1226) 题解
    银河英雄传说 (codevs 1540) 题解
    生日蛋糕 (codevs 1710) 题解
    第一章 1.11 高阶函数
  • 原文地址:https://www.cnblogs.com/gaowc/p/10699875.html
Copyright © 2011-2022 走看看