Java教程03. Java基本数据类型

本讲知识点

n         掌握基本数据类型的取值范围及其相互的转换

n         掌握基本数据类型默认值的使用

本节关键词

Java,教程,培训,视频,Java教程,Java培训,Java视频,数据类型

4、简单Java程序

Java中的注释主要有以下三种:

¨       单行注释://

¨       多行注释:./*…*/

¨       文档注释:/** … */

在整个java中与各个语言实际上是一样的,本身也包含了各个变量、语法之类的,

 

例如,现在有如下的一个程序:

public class TestDemo01{

         public static void main(String args[]){

                  int x = 10 ;           // 表示定义一个整型变量

                  int y = 20 ;          // 表示定义一个整型变量

                  System.out.println(x + y) ;

         }

}

在以上的程序中,声明整型变量或者定义类的名称实际上都是存在一些命名要求的,这些有时候称为标识符。

java中标识符有自己的规范,可以由字母、数字、下划线、$符号组成,其中不能以数字开头,也不能以关键字开头,因为关键字拥有特殊的含义,所以无法直接使用。

· 对于以上的原则,最好的做法是是一切的标识符以字母开头

 

Java中的关键字:

 

关键字补充说明:

¨       goto const也是Java的关键字,但是没有任何的意义,并不支持其使用

¨       assert是在JDK1.4之后增加进来的

¨       enum是在JDK1.5之后增加进来的

 

java中除了有以上的这些关键字之外,还有很多的数据类型,整个java中存在基本数据类型和引用数据类型两种形式的数据类型。

 

5、基本数据类型(重点

基本数据类型本身表示的是一个个具体的数值,其本身有取值的范围。

5.1、数值型

数值型表示的是一个个的数字,主要分为以下两种:

¨       整数类型:byteshortintlong

¨       小数类型:floatdouble

在整数类型中比较常用的类型就是int类型,直接表示一个整数。

byte类型的长度<short类型的长度<int类型的长度<long类型的长度

 

在使用的时候,之所以说int类型比较常用,是因为一个默认的数字的类型就是int类型。

public class TestDemo02{

         public static void main(String args[]){

                  byte b = 300 ;

         }

}

编译以上代码,注意错误提示,将一个整型的数据赋值给byte类型的变量,可能丢失精度。以上的300是一个数字,那么只要是数字,在程序中都可以使用int类型进行表示。

而且,各个数据类型之间也可以进行转型的操作,转型的原则:位数小的类型转成位数大的类型将自动完成,如果相反,则必须强制完成

· byte à int:自动完成

· int à byte:强制完成

public class TestDemo03{

         public static void main(String args[]){

                  int x = 30 ;

                  byte b = (byte)x ;

         }

}

 

在数值型中还包含了floatdouble类型,其中double类型的数据可以存放的内容是最多的。一个默认的小数数字,其类型就是double类型。

public class TestDemo04{

         public static void main(String args[]){

                  double x = 33.33111 ;

                  System.out.println(x) ;

         }

}

 

那么,如果现在使用float接收以上的数字,则需要强制类型转换。

public class TestDemo05{

         public static void main(String args[]){

                  float x = (float)33.33111 ;

                  System.out.println(x) ;

         }

}

      

上面的程序也可以使用另外一种方式完成:

public class TestDemo05{

         public static void main(String args[]){

                  float x = 33.33111f ;

                  System.out.println(x) ;

         }

}

 

长整型的数据中也可以在数字后加一个“L”表示出来。

public class TestDemo06{

         public static void main(String args[]){

                  long x = 30L ;

                  System.out.println(x) ;

         }

}

 

面试题:请计算如下程序的结果:

System.out.println(1l + 11) ;

5.2、字符型

字符型表示的是一个个的字符,只要是字符就要使用“'”括起来,例如,以下定义了一个字符:

public class TestDemo07{

         public static void main(String args[]){

                  char c = 'A' ;      // 使用'括起来,表示一个字符

                  System.out.println(c) ;

         }

}

 

在操作的时候,字符和int间也是可以进行互相转换的。

public class TestDemo08{

         public static void main(String args[]){

                  char c = 'A' ;        // 使用'括起来,表示一个字符

                  int x = c ;

                  System.out.println(x) ;

         }

}

A变为数字之后是65,因为在java中使用的是unicode编码操作的。Unicode本身兼容ASCII码。

 

那么下面继续观察,让数字加一之后,变回字符。

public class TestDemo09{

         public static void main(String args[]){

                  char c = 'A' ;        // 使用'括起来,表示一个字符

                  int x = c ;

                  x++ ; // x自增1

                  char y = (char)x ;

                  System.out.println(y) ;

         }

}

 

在字符中,还需要注意的是,有一系列的转义字符:\\\"\'\n\t

这些转义字符有特殊的含义:

public class TestDemo10 {

         public static void main(String args[]){

                  System.out.println("\"hello\nw\torld\"") ;

         }

}

开发中以上的内容使用较多。

 

思考:一个字符能不能放下一个汉字?

在各个语言中都说过,一个汉字=两个字符,但是在java中由于使用了UNICODE编码,UNICODE编码属于16位的编码,所以可以放下任意的内容,所以在java中字符是可以存放汉字的。

public class TestDemo11 {

         public static void main(String args[]){

                  char c = '' ;

                  int x = c ;    // c变为数字

                  System.out.println(c) ;

                  System.out.println(x) ;

         }

}

5.3、布尔型    

布尔是一个数学家的名字,在boolean类型中,只有两种取值:truefalse

但是在这里要特别提醒的是,如果学习过C语言的同学们必须注意,在C语言中使用0表示false,使用非0表示true,但是这种特性在java中根本就不存在。

public class TestDemo12 {

         public static void main(String args[]){

                  boolean flag = true ;

                  System.out.println(flag) ;

         }

}

 

从实际的程序来看,布尔类型的数据,往往作为程序的控制出现,与if之类的语句结合。

public class TestDemo13 {

         public static void main(String args[]){

                  boolean flag = true ;

                  if(flag){      // flag==true

                           System.out.println("欢迎光临!") ;

                  }

         }

}

 

6、字符串初窥(重点

在之前的所有数据类型,都是表示一些基本的类型,但是如果现在要是想表示一串的字符,则就只能使用字符串进行表示,String表示一个字符串,但是String的开头首字母大写了,所以这是一个类,但是这个类使用起来较为特殊,可以按照基本数据类型的操作那样直接使用。

public class TestDemo14 {

         public static void main(String args[]){

                  String str = "世界啊,你好啊,我很好!!!" ;

                  System.out.println(str) ;

         }

}

但是,在使用String的时候有一点是必须注意的。

· 默认情况下各个基本数据类型间是可以进行转型操作的:byte à short à int à long à float à double。但是所有的类型只要是碰到了String,则都会向String转换。

 

范例:观察基本类型的转型操作

public class TestDemo15 {

         public static void main(String args[]){

                  int x = 10 ;

                  float y = 300.3f ;

                  System.out.println(y / x) ;

         }

}

 

范例:下面使用String操作

public class TestDemo16 {

         public static void main(String args[]){

                  int x = 10 ;

                  int y = 20 ;

                  String str = "x " + " + " + " y " + " = " ;  // 此时的“+”表示字符串连接

                  System.out.println(str + x + y) ;

         }

}

现在的结果是1020,并不是一个正确的结果,因为所有的数字首先都变成了字符串,实际上此处就属于字符串的连接操作。如果要想解决以上的问题,则就需要加上“()”,要求,先进行计算。

public class TestDemo16 {

         public static void main(String args[]){

                  int x = 10 ;

                  int y = 20 ;

                  String str = "x " + " + " + " y " + " = " ;  // 此时的“+”表示字符串连接

                  System.out.println(str + (x + y)) ;

         }

}

 

7、基本数据类型的默认值(重点

以上是基本数据类型的默认值,比较好理解,如果是数字,默认值都是0,如果是字符,默认的是“''”,如果是boolean类型默认值是false

 

public class TestDemo17 {

         public static void main(String args[]){

                  int x = 10 ; // 定义在主方法之中的话,变量的默认值是无效的

                  System.out.println(x) ;

         }

}

 

注意:定义在主方法之中的话,变量的默认值是无效的

之所以,每次编写代码的时候都加上一个“ ”,一方面是由于这样的话代码比较美观,另一方面,主要是由编译器造成的,如果不加“ ”的话有时候有可能出现一些未知的操作,造成不必要的麻烦。所以希望每一个人都养成每个代码之后加空格的习惯。

补充面试题

class Test33

{

       public static void main(String[] args)

       {

              btye b=2,e=3;                      //注释1

              byte f=b+e;                          //注释2

              System.out.println(f);           //注释3

       }

}

 

关于下面的程序,哪个选项的说法是正确的?(神州数码公司2005面试题)

 A. 编译通过,运行时打印出5

B. 编译通过,运行时打印出23

C. 编译同不过,在//注释2处有错误

D.编译通不过,在//注释1处有错误

 

本题说明:本题正确答案是C,由于Java中涉及btyeShortChar等类型的运算操作首先会把这些值转换为init类型,然后对int类型进行运算,最后得到int类型的结果。因此对于本题目中“//注释2”行正确的写法应该是:byte f=(byte)(b+e)

 

  • 百度
  • Google
  • 新浪播客
  • 新浪知识人
  • 51CTO博客
  • 网易科技
  • TechWeb
  • 赛迪网
  • MLDN软件实训中心