A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© AI_96 中级黑马   /  2015-7-30 19:23  /  372 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

§2-1  数据类型

    一、首先要明确的是:

    在Java语言中,Java是不支持C语言还有C++语言中的指针、结构体类型以及共用类型的。

    在Java语言中,简单(或基本)数据类型分了以下八种:

    字节型(byte)、短整型(short)、整型(int)、长整型(long)、字符型(char)、浮点型

(float)、双精度型(double)、布尔型(boolean)

    在这些当中,又可以分为四组:

    1、整数:该组包括字节型(byte)、短整型(short)、整型(int)、长整型(long)、它们有符

号整数。

    2、浮点型数:该组包括浮点型(float)、双精度型(double)、它们代表有小数精度要求的数字。

    3、字符:这个组包括字符型(char),它代表字符集的符号,例如字母和数字。

    4、布尔型:这个组包括布尔型(boolean),它是一种特殊的类型,表示真(true)/假(false)值



    各个数据类型在内存中所占用的内存如下表,因为Java语言具有可移植性,所在在内存的占用上面,

各种机型都是一样的:

序号  简单类型  大小/位数  范围/精度

1   float   4 字节/32位  32位IEEE 754单精度
2   double   8 字节/64位  64位IEEE 754双精度
3   byte    1字节/8位  -128到127
4   short   2 字节/16位  -32,768到32,767
5   int    4 字节/32位  -2,147,483,648到2,147,483,647
6   long    8 字节/64位  -9,223,372,036,854,775,808到9,223,372,036, 854,775,807
7   char    2 字节/16位  整个Unicode字符集
8   boolean    1 位    True或者false



    §2-2  常量

    Java中的常量是用文字串来表示的。比如:

    整形:123     实型:1.23     字符型:'a'    布尔型:true,false    字符串:"china"。

    并且,在Java中, 不能通过#define命令来把一个标识符定义为常量,而是用关键字“final”来实

现,例如:final  double  PI=3.14159(具体的final用法见后)。

    §2-3  变量

    在编程的学习过程中,变量都是一个重要的概念,那么在Java中,变量包含的内容是:变量名、变量

类型和作用域三个部分。

    1、变量名:一个合法的变量名应该由字母、数字、下划线或者美元符号“$”来表示;Java对于变量

名的大小写要敏感;变量名不能使用数字来开头;并且和C以及C++一样,不能用保留字(关键字)来命名

。下面列举一些合法的变量名,如:myName、value_1、dollar$……等等都是合法的变量名,再列举一些

不合法的变量名,如:2mail、room#、class……等等这些都是不合法的变量名。我们在命名的时候,最

好是使变量名具有一定的含义,这样可以增加整个程序的可读性。

    2、变量类型:变量类型可以是上面任意的一个类型。

    3、作用域:变量的作用域是指明可访问该变量的一段代码。我们在声明一个变量的同时,也就指明

了变量的作用域。按照作用域来划分,变量可以划分成以下几种:

    (1)局部变量:在方法或方法的一块代码中声明,它的作用域为它所在的代码块(整个方法或方法

中的某块。)

    (2)类变量:是在类中声明,而不是在类的某个方法中声明,它的作用域是整个类。

    (3)方法参数:传递给方法,它的作用域就是这个方法。

    (4)例外处理参数:传递给例外处理代码,它的作用域就是例外处理部分。

    在一个确定的域中,变量应该是唯一的。通常,一个域是用“{”和“}”来划定的。

    变量的声明格式是:

              type identifier[=value][,identifier[=value]...];

      例如:  int  a , b , c ;                    double  d1 , d2 = 0.0 ;

    其中,多个变量之间用逗号“,”隔开,d2 = 0.0是对双精度实型变量“d2”赋初值“0.0”。

    注意:只有“局部变量”和“类型变量”可以给出这样赋初值的,而“方法参数”和“例外处理参数

”的变量值是由调用者给出的。


    §2-4  整型数据

    一、整型常量

    和C/C++相比,Java的整型常量具有以下三种形式:

    1、十进制整数:如:123、-456、0……等等

    2、八进制整数:以“0”开头的,如:0123表示十进制数83,-011表示十进制数-9……等等

    3、十六进制整数:以“0x”或“0X”开头,如:0x123表示十进制数291,-0X12表示十进制数-18。

    对于 int 型的整型常量在机器中占32位,而对于long型的常量在机器中要占用64位,并且在表示

long型的时候,要在后面加上“l”或“L”符号来表示,如:123l、456L……等等。

    二、整型变量

    整型变量的类型有四种,分别是:byte、short、int、long。

    对于以上四种类型,int类型是最常使用的。但对于大型计算,常会遇到很大的整数,超出int类型所

表示的范围,这时,就要使用long型。

    由于不同的机器对于多字节数据的存储方式不同,可能是从低字节向高字节存储,也可能是从高字节

向低字节存储,这样,在分析网络协议或文件格式时,为了解决不同机器上的字节存储顺序的问题,就用

byte类型来表示数据是合适的。而通常情况下,由于其表示的数据范围很小,容易造成溢出,应避免使用



    short类型则很少使用,它限制数据的存储为先高字节,后低字节,这样在某些机器中会出错 。


    §2-5  实型(浮点型)数据

    一、实型常量

    与C/C++相同,Java的实常数有两种表达形式:

    1、十进制数形式。有数字和小数点组成,并且必须有小数点,如:0.123、.123、123.、123.0……

等等都可以。

    2、科学记数法形式。如:123e4或者123E4,其中,“e”或者“E”前面必须有数,并且后面的指数

必须是整数。

    实常数在机器中占64位,具有double型的值。对于float型的值,则要在数字后面加上“f”或者“F

”,如:12.3f或45.6F,它在机器中占32位,表示的精度较底。


    §2-6  字符型数据

    一、字符型常量

    字符型常量是用单引号('')括起来的一个字符,如:'a'、'B'……等等。另外,Java也提供一些转

义字符,以反斜杠“/”开头,各种转义字符的意思如下:

  /ddd 1到3位8进制数据所表示的字符(ddd)

  /uxxxx 1到4位16进制数所表示的字符(xxxx)

  /'   单引号字符        //   反斜杠字符

  /r   回车           /n   换行

  /f   走纸换页         /t   横向跳格

  /b   退格

    但还是要注意:与C/C++不同,Java中的字符型数据是16位无符号型数据,它表示Unicode集,而不仅

仅是ASCII集,例如:/u0061表示ISO拉丁码的‘a’。

    二、字符型变量

    和C/C++不一样,Java中的字符型数据不能作为整数来用,因为Java不提供无符号整数类型。但是,

同样可以当作整数来操作,如下例子:

    int  three = 3 ;
    char one = '1' ;
    char four = ( char ) ( three + one ) ;

    在上例中,在计算加法时,字符型变量one被转化成整数进行相加,最后把结果又转化成字符型。

    三、字符串常量

    与C/C++不同,Java的字符串常量是作为String类的一个对象来处理的,而不是一个数据。

    与C/C++相同,Java的字符串常量也是用“""”括起来的一组字符。


    §2-7  布尔型数据

    布尔型数据只有两个值,true(真)和false(假),且它们不对应于任何整值。在流控制中常用到

它。

    现在,请看下面的这个例子,用到了前面讲的全部数据类型,并且通过显示器显示它们:

public class SimpleTypes
{
      public static void main( String args[] )
      {
            byte b=0x55;
            short s=0x55ff;
            int i=1000000;
            long l=0xfffL;
            char c='c';
            float f=0.23F;
            double d=0.7E-3;
            boolean bool=true;
            System.out.println("b = "+b);
            System.out.println("s = "+s);
            System.out.println("i = "+i);
            System.out.println("l = "+l);
            System.out.println("c = "+c);
            System.out.println("f = "+f);
            System.out.println("d = "+d);
            System.out.println("bool = "+bool);
      }
}


3 个回复

倒序浏览
你怎么总结的这么全面,很不错
回复 使用道具 举报
总结得是很全面,但并没有什么用呵,因为这些太基础了。论坛以前早就有N多的人发过这样的总结。混不到技术分的。
回复 使用道具 举报
15225159271 来自手机 中级黑马 2015-7-30 20:13:05
板凳
厉害
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马