[第三章、Java基础知识]第一节、数据类型

第一节、数据类型 [重点]
       一、 基本数据类型(base type)(即primitive data type:简单数据类型)
               byte        8 位 ,有符号, byte类型变量值范围: -2的7次方~2的7次方-1 默认值:0
               short      16位,有符号, 范围: -2的15次方~ 2的15次方-1                      默认值:0       
          int            32位,有符号, 范围: -2的31次方~2的31次方-1                      默认值:0
          long         64位,有符号, 范围: -2的63次方~2 的63次方-1                      默认值:0L
                        float        32位,有符号, 范围: 3.4E-038~3.4E+038                               默认值:0.0F
                       double     64位,有符号, 范围: 1.7E-308~1.7E+308                                    默认值:0.0
                       char        16位,无符号, 范围: 0~65536                                               默认值:'/u0000 '
                       boolean     1位, 值是 true 或者 false                                                         默认值:false
 
              程序中声明不同类型变量的例子,注意标志符命名规则,声明为final和static的变量的特点:
                     int abcd;       
                     long _ab_cd;      //(1)Java中类、方法和变量的命名规则: 不能使用保留关键字,
                     byte $ab$cd;          // 必须以字母,下划线和货币符号开头,可以由这三种符号和数字组成
                     short $4a5b_;  
                     public byte a = 127;
                     protected int i = 100;
                     private long l = 20L;       // public、protected、private 是访问修饰符,声明变量的访问控制
                     float f = 3.14F;         
                     double d = 3.14D; //此处D也可省略
                     final int ALL_CARS=100; //(2)声明为final的变量实质上是一个常数,它在实例中不占
                                                               /用内存。为final变量的所有字符选择大写是一个普遍的约定。
                     static float sf=3.14f; //(3)声明为static的变量实质上就是全局变量。当声明一个有static
                                                   // 变量的对象时,并不产生static变量的拷贝,而是该类所有的
                                                  // 实例变量共用同一个static变量。
 
注意: long类型和float类型变量赋值时必须分别在值后加上L和F,不分大小写,但为清晰起
见一般使用大写。   数字在默认情况下是int 数据类型,带小数的数据默认是double型。
简单数据类型不是类,它们不是对象层次结构的组成部分,它们通过值传递给方法而不能直接通过引用传递。
   * The Java programming language only passes arguments by value
      Java语言仅通过值传递
   * When a object instance is passed as an argument to a method, the value of the rgument
     is a reference to the object
                     当将一个对象实例作为参数传给一个方法时,参数的值是一个指向该对象的引用
                                * The contents of the object can be changed in the called method, but the object reference
                                  is never changed.
                     对象的内容可能被调用该对象实例的方法改变,但指向该对象的引用则不会改变
              二、其它数据类型(复合型数据)
字符串(String)   : 在Java中,字符串并不像char、int或float那样是原始的数据类型,它是由类java.lang.String定义的,其中包括了许多对字符串进行操作的非常有用的方法。需要注意的是,Java中一旦创建了一个字符串对象(String),那么该对象是不可改变的。例如你声明了一个String对象:String s=“Hello”;然后你再进行操作: s=s+“ world!”; 这里原先的字符串对象“Hello”是没有改变的,只是新建了一个为“Hello world!”的字符串对象,然后将指向这个新建对象的引用赋给s而已。你必须始终记住,任何一个对象变量只是指向创建的对象的一个引用,数组变量和对象变量也是如此。如果程序中不再使用到“Hello”字符串对象的话,那么它就变成无用的对象(Java中称为垃圾),将由Java自动进行垃圾收集。
 
                     数组: (1)数组(array)是相同类型变量的集合。数组可以被定义为任何类型,可以是一维
                                            或多维。
                    (2)声明数组: 例:int[][][] a;long[] longArr;或另一种形式: int a[][][];long longArr[];奇怪的是,即使如下声明也是正确的:long []test; int[]a; 中括号紧贴在变量前或int声明、中括号和变量a 三者紧接也是正确的。 以上例子仅定义了一个数组变量,而实际的、物理上并不存在数组,你必须通过运算符new来为其分配地址并且把它赋给数组变量。
(3)运算符new是专门用来分配内存的运算符。用new运算符分配数组后,基本数据类型数组中的所有元素会自动初始化为该类型的初始值,String和class类型数组则会初始化为null。例: int test[]=new int[10]; 这是一个类型为int,size(大小,即元素个数)为10的数组, test[]指向10个值为0的整数。另外,请记住,Java中数组的元素是按照顺序编号的,编号从0开始,一个数组元素的编号对应着这个元素,这个编号通常叫做索引(index)。如果你想访问test[]数组中的第一个元素,那么应该使用 test[0] 而不是test[1],当你使用test[10]时,则会出现运行时错误。
          
         类:
类是Java的核心和本质,它是JAVA语言的基础,因为类定义了对象的本性。也许理解类的最重要的事情就是它定义了一种新的数据类型。Java中使用关键字 class 来创建类。在类中,数据或变量被称为实例变量(instance variables),代码包含在方法(methods)内。定义在类中的方法和实例变量被称为类的成员(members)。在大多数类中,实例变量被定义在该类中的方法操作和存取。这样,方法决定该类中的数据如何使用。如HelloWorld类中的字符串变量s被设置为private,外部代码只能同过该类的“setString()”方法和“getString()”方法来设置和读取s。
    Object类是Java定义的特殊的类,Java中所有其他的类都是Object类的子类,也就是说Object类是所有其他类的超类。类、接口和方法更详细的内容请看第四节。
                           
              三、数据类型之间的比较
简单数据类型使用“= =”两个等号(相等运算符)来比较。而对象变量(引用类型)则可使用“= =”也可使用equals()方法来进行比较。       
使用简单数据类型时,“ = = ”运算符检查两个值是否相等;而使用引用类型时,“ = = ”运算符比较对象变量(即对象引用)是否相等,而不是对象变量所指向的实际的对象或者数组。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值