⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 java02_07.htm

📁 JAVA的课件
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Java语言教程</title>
</head>

<body background="Bg.gif">

<p align="center"><font size="5"><b>2.7 数据类型</b></font></p>    
<p>Java中的数据类型可分为两大类:</p>    
<ul>    
  <li>基本类型:整型、浮点型、布尔型和字符型</li>    
  <li>复合类型:数组、类和接口</li>    
</ul>    
<p>本节只讲述基本类型。数据类型总是和常量、变量联系在一起。</p>    
<p>1、常量&nbsp;<br>    
<br>    
&nbsp;&nbsp; Java中的常量值是用文字串表示的,它区分为不同的类型,如整型常量123,实型常量1.23,字符常量‘a’,布尔常量true、false以及字符串常量"This is a constant string."。&nbsp;<br>    
<br>    
&nbsp;&nbsp; 与C、C++不同,Java中不能通过#define命令把一个标识符定义为常量,而是用关键字final来实现,如final double PI=3.14159(有关final的用法见[4.10])。&nbsp;<br>    
<br>    
2、变量&nbsp;<br>    
<br>    
      变量是Java程序中的基本存储单元,它的定义包括变量名、变量类型和作用域几个部分。&nbsp;<br>    
<br>    
      ①变量名是一个合法的标识符,它是字母、数字、下划线或美元符"$"的序列,Java对变量名区分大小写,变量名不能以数字开头,而且不能为保留字。合法的变量名如:myName、value_1、dollar$等。非法的变量名如:2mail、room#、class (保留字)等,变量名应具有一定的含义,以增加程序的可读性。&nbsp;<br>    
<br>    
      ②变量类型可以为整型、浮点型、字符型、布尔型中的任意一种数据类型。&nbsp;<br>    
<br>    
      ③变量的作用域指明可访问该变量的一段代码。声明一个变量的同时也就指明了变量的作用域。按作用域来分,变量可以有下面几种:局部变量、类变量、方法参数、例外处理参数。</p>    
<p>·局部变量在方法或方法的一块代码中声明,它的作用域为它所在的代码块(整个方法或方法中的某块代码)。&nbsp;<br>    
<br>    
·类变量在类中声明,而不是在类的某个方法中声明,它的作用域是整个类。&nbsp;<br>    
<br>    
·方法参数传递给方法,它的作用域就是这个方法。&nbsp;<br>    
<br>    
·例外处理参数传递给例外处理代码,它的作用域就是例外处理部分。&nbsp;<br>    
<br>    
      在一个确定的域中,变量名应该是唯一的。通常,一个域用大括号{}来划定。&nbsp;<br>    
<br>    
有关类变量、参数传递以及例外处理将在后面章节中详细讲述。&nbsp;<br>    
<br>    
      ④变量的声明格式为:&nbsp;<br>    
      type identifier[=value][,identifier[=value]…];&nbsp;<br>    
<br>    
      例如:&nbsp;<br>    
<b> int a, b, c;&nbsp;<br>    
      double d1, d2=0.0;&nbsp;<br>    
</b><br>    
      其中,多个变量间用逗号隔开,d2=0.0对实型变量d2赋初值0.0, 只有局部变量和类变量是可以这样赋初值的,而方法参数和例外处理参数的变量值是由调用者给出的。&nbsp;<br>    
<br>    
3、转义字符</p>    
<p>转义字符是一种特殊形式的字符常量,是以\开头的字符序列,它具有特定的含义,如下表:</p>    
<table border="1" width="63%" height="228">    
  <tr>    
    <td width="41%" height="16">    
      <p align="center">字符形式</td>    
    <td width="59%" height="16">    
      <p align="center">含义</td>    
  </tr>    
  <tr>    
    <td width="41%" height="16">\n</td>    
    <td width="59%" height="16">换行</td>    
  </tr>    
  <tr>    
    <td width="41%" height="16">\t</td>    
    <td width="59%" height="16">Tab</td>    
  </tr>    
  <tr>    
    <td width="41%" height="16">\v</td>    
    <td width="59%" height="16">垂直制表</td>    
  </tr>    
  <tr>    
    <td width="41%" height="16">\b</td>    
    <td width="59%" height="16">退格</td>    
  </tr>    
  <tr>    
    <td width="41%" height="16">\r</td>    
    <td width="59%" height="16">回车</td>    
  </tr>    
  <tr>    
    <td width="41%" height="16">\\</td>    
    <td width="59%" height="16">\本身</td>    
  </tr>    
  <tr>    
    <td width="41%" height="16">\'</td>    
    <td width="59%" height="16">'本身</td>    
  </tr>    
  <tr>    
    <td width="41%" height="16">\ddd    </td>   
    <td width="59%" height="16">1到3位8进制数据所表示的字符</td>   
  </tr>   
  <tr>   
    <td width="41%" height="16">\uhhhh</td>   
    <td width="59%" height="16">1到4位16进制表示的字符</td>   
  </tr>   
</table>   
<p>一、整型数据&nbsp;<br>   
<br>   
1、整型常量&nbsp;<br>   
<br>   
      与C,C++相同,Java的整常数有三种形式:&nbsp;<br>   
<br>   
      ①十进制整数,如123,-456,0&nbsp;<br>   
<br>   
      ②八进制整数,以0开头,如0123表示十进制数83,-011表示十进制数-9。&nbsp;<br>   
<br>   
      ③十六进制整数,以0x或0X开头,如0x123表示十进制数291,-0X12 表示十进制数-18。&nbsp;<br>    
<br>    
      整型常量在机器中占32位,具有int型的值,对于long型值,则要在数字后加L或l,如123L表示一个长整数,它在机器中占64位。<br>    
<br>    
2、整型变量&nbsp;<br>    
<br>    
      整型变量的类型有byte、short、int、long四种。下表列出各类型所在内存的位数和其表示范围。&nbsp;<br>    
</p>    
<table border="1" width="80%">    
  <tr>    
    <td width="33%" align="center"><b>数据类型</b></td>    
    <td width="33%" align="center"><b>所占空间</b></td>    
    <td width="34%" align="center"><b>表示范围</b></td>    
  </tr>    
  <tr>    
    <td width="33%">byte</td>    
    <td width="33%">1字节</td>    
    <td width="34%">-128——127</td>    
  </tr>    
  <tr>    
    <td width="33%">short</td>    
    <td width="33%">2字节</td>    
    <td width="34%">-32768——32767</td>    
  </tr>    
  <tr>    
    <td width="33%">int</td>    
    <td width="33%">4字节</td>    
    <td width="34%">-2<sup>31</sup>——2<sup>31</sup>-1</td>    
  </tr>    
  <tr>    
    <td width="33%">long</td>    
    <td width="33%">8字节</td>    
    <td width="34%">-2<sup>63</sup>——2<sup>63</sup>-1</td>    
  </tr>    
</table>    
<p>     int类型是最常使用的一种整数类型。但对于大型计算,常会遇到很大的整数,超出int类所表示的范围,这时要使用long类型。&nbsp;<br>    
<br>    
     由于不同的机器对于多字节数据的存储方式不同,可能是低字节向高字节存储,也可能是从高字节向低字节存储,这样,在分析网络协议或文件格式时,为了解决不同机器上的字节存储顺序问题,用byte类型来表示数据是合适的。而通常情况下,由于其表示的数据范围很小,容易造成溢出,应避免使用。&nbsp;<br>    
<br>    
     short类型则很少使用,它限制数据的存储为先高字节,后低字节节,这样在某些机器中会出错。&nbsp;<br>    
<br>    
3、整型变量的定义,如:&nbsp;<br>    
    byte b;     //指定变量b为byte型<br>     
    short s;    //指定变量s为short型<br>     
    int i;       //指定变量i为int型<br>     
    long l;     //指定变量l为long型<br>     
<br>     
<br>     
二、浮点型(实型)数据&nbsp;<br>    
<br>    
1、实型常量&nbsp;<br>    
<br>    
     与C,C++相同,Java的实常数有两种表示形式:&nbsp;<br>    
<br>    
     ①十进制数形式,由数字和小数点组成,且必须有小数点,如0.123, .123, 123.,123.0&nbsp;<br>    
<br>    
     ②科学计数法形式。如:123e3或123E3,其中e或E之前必须有数,且e或E后面的指数必须<br>    
为整数。&nbsp;<br>    
<br>    
     实常数在机器中占64位,具有double型的值。对于float型的值,要在数字后加f或F,如<br>    
12.3F,它在机器中占32位,且表示精度较低。&nbsp;<br>    
<br>    
2、实型变量&nbsp;<br>   
<br>   
     实型变量的类型有float和double两种,下表列出这两种类型所占内存的位数和其表示范<br>   
围:&nbsp;<br>   
<table border="1" width="80%">   
  <tr>   
    <td width="33%" align="center"><b>数据类型</b></td>   
    <td width="33%" align="center"><b>       所占位数</b></td>   
    <td width="34%" align="center"><b>      数的范围</b></td>   
  </tr>   
  <tr>   
    <td width="33%">    float</td>   
    <td width="33%">&nbsp;32</td>   
    <td width="34%">3.4e-38~3.4e+38</td>   
  </tr>   
  <tr>   
    <td width="33%">    double</td>   
    <td width="33%">&nbsp;64&nbsp;</td>   
    <td width="34%">           1.7e-308~1.7e+308</td>   
  </tr>   
</table>   
<p>   
     双精度类型double比单精度类型float具有更高的精度和更大&nbsp;<br>   
 表示范围,常常使用。&nbsp;<br>   
<br>   
3、实型变量定义,如&nbsp;<br>   
     float f; //指定变量f为float型&nbsp;<br>    
     double d; //指定变量d为double型&nbsp;<br>    
     [注]与C、C++不同,Java中没有无符号型整数,而且明确规定了整型和浮点型数据所占的<br>    
内存字节数,这样就保证了安全性、鲁棒性和平台无关性。&nbsp;<br>   
<br>   
三、字符型数据&nbsp;<br>   
<br>  
1、字符常量&nbsp;<br>   
<br>  
     字符常量是用单引号括起来的一个字符,如‘a’,‘A’。与C、C++相同,Java也提供转义字符,以反斜杠(\)开头,将其后的字符转变为另外的含义。&nbsp;<br>   
     与C、C++不同,Java中的字符型数据是16位无符号型数据,它表示Unicode集,而不仅仅是<br>    
ASCII集,例如\u0061表示ISO拉丁码的‘a’。&nbsp;<br>   
<br>  
2、字符型变量&nbsp;<br>   
<br> 
     字符型变量的类型为char,它在机器中占16位,其范围为0~65535。字符型变量的定义如下:<br>   
<br> 
<b>   
     char c='a';</b> //指定变量c为char型,且赋初值为'a'&nbsp;<br>    
<br>    
     与C、C++不同,Java中的字符型数据不能用作整数,因为Java不提供无符号整数类型。但<br>   
是同样可以把它当作整数数据来操作。&nbsp;<br>   
<br>   
     例如:&nbsp;   
<br>   
     int three=3;&nbsp;<br>    
     char one='1';&nbsp;<br>    
     char four=(char)(three+one);//four='4'&nbsp;<br>    
<br>    
     上例中,在计算加法时,字符型变量one被转化为整数,进行相加,最后把结果又转化为字<br>    
符型。&nbsp;<br>   
<br>   
3、字符串常量&nbsp;<br>   
<br> 
     与C、C++相同,Java的字符串常量是用双引号("")括起来的字符,如"This is a string.\n"。但<br>     
不同的是,Java中的字符串常量是作为String类的一个对象来处理&nbsp;,而不是一个数据。有关<br>     
类String,我们将在第五章讲述。&nbsp;<br>   
<br>   
四、布尔型数据&nbsp;<br>   
<br>   
     布尔型数据只有两个值,true和false,且它们不对应于任何整&nbsp;值。在流控制中常用到它。&nbsp;<br>   
<br>   
     布尔型变量的定义如下:&nbsp;<br>   
<br>   
<b>   
     boolean b=true;</b> //定义b为布尔型变量,且初值为true&nbsp;<br>    
<br>    
     例2.3 下例中用到了前面提到的数据类型,并通过屏幕显示&nbsp;们的值。&nbsp;<br>   
<br>   
    public class SimpleTypes{&nbsp;<br>    
     public static void main( String args[] ){&nbsp;<br>    
            byte  b=0x55;&nbsp;<br>    
            short       s=0x55ff;&nbsp;<br>    
            int   i=1000000;&nbsp;<br>    
            long  l=0xfffL;&nbsp;<br>    
            char  c='c';&nbsp;<br>    
            float       f=0.23F;&nbsp;<br>    
            double      d=0.7E-3;&nbsp;<br>    
            boolean bool=true;&nbsp;<br>    
            System.out.println("b = "+b);&nbsp;<br>    
            System.out.println("s = "+s);&nbsp;<br>    
            System.out.println("i = "+i);&nbsp;<br>    
            System.out.println("l = "+l);&nbsp;<br>    
            System.out.println("c = "+c);&nbsp;<br>    
            System.out.println("f = "+f);&nbsp;<br>    
            System.out.println("d = "+d);&nbsp;<br>    
            System.out.println("bool = "+bool);&nbsp;<br>    
        }&nbsp;<br>    
    }&nbsp;<br>    
    编译并运行该程序,输出结果为:&nbsp;<br>    
    C:\>java SimpleTypes&nbsp;<br>    
    b = 85&nbsp;<br>    
    s = 22015&nbsp;<br>    
    i = 1000000&nbsp;<br>    
    l = 4095&nbsp;<br>    
    c = c&nbsp;<br>    
    f = 0.23&nbsp;<br>    
    d = 0.0007&nbsp;<br>    
    bool = true&nbsp;<br>    
<br>    
【补充】各类数值型数据间的混合运算&nbsp;<br>   
<br>   
     一、自动类型转换&nbsp;<br>   
<br>   
     整型、实型、字符型数据可以混合运算。运算中,不同类型的数据先转化为同一类型,然后进行运算。转换从低级到高级,转换规则为:&nbsp;<br>   
<br>   
     ①(byte或short) op int→int&nbsp;<br>    
<br>    
     ②(byte或short或int) op long→long&nbsp;<br>    
<br>    
     ③(byte或short或int或long) op float→float&nbsp;<br>    
<br>    
     ④(byte或short或int或long或float) op double→double&nbsp;<br>    
<br>    
     ⑤char op int→int&nbsp;<br>    
<br>    
     其中,箭头左边表示参与运算的数据类型,op为运算符(如加减、乘、除等),右边表示<br>    
转换成的进行运算的数据类型。&nbsp;<br>    
<br>    
    例2.4&nbsp;<br>   
    public class Promotion{&nbsp;<br>    
    public static void main( String args[ ] ){&nbsp;<br>    
    byte b=10;&nbsp;<br>    
    char c='a';&nbsp;<br>    
    int i=90;&nbsp;<br>    
    long l=555L;&nbsp;<br>    
    float f=3.5f;&nbsp;<br>    
    double d=1.234;&nbsp;<br>    
    float f1=f*b;&nbsp;<br>    
    // float * byte ->float&nbsp;<br>    
    int i1=c+i;&nbsp;<br>    
    // char + int ->int&nbsp;<br>    
    long l1=l+i1;&nbsp;<br>    
    // long + int ->ling&nbsp;<br>    
    double d1=f1/i1-d;&nbsp;<br>    
           // float / int ->float, float - double ->double}&nbsp;<br>    
    }&nbsp;<br>    
<br>    
     二、强制类型转换&nbsp;<br>    
<br>    
     高级数据要转换成低级数据,需用到强制类型转换,如:&nbsp;<br>    
<br>    
     int i;&nbsp;<br>    
     byte b=(byte)i; //把int型变量i强制转换为byte型&nbsp;<br>    
<br>    
     这种使用可能会导致溢出或精度的下降,最好不要使用。 <br>    
</p>    
    
<p><font size="3"><a href="index.htm">回目录</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
<a href="java02_06.htm">上一课</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a href="java02_08.htm">    
下一课</a></font></p>  
    
</body>    
    
</html>    

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -