Java基本类型、基本数据类型之间的转换

      用来标识类名、变量名、方法名、数组名、文件名的有效字符序列称为标识符。

最近一直在复习java,一方面扎实一下基本功,另一方面也是为了考试,话不多说,整理了一下,欢迎大家指正错误。


一、标识符和关键字

     下面是Java关于标识符的命名规则。

      (1) 标识符是由字母、下划线、美元符号和数字组成,长度不受限制。

      (2) 标识符的第一个字符不能是数字字符。

      (3) 标识符不能是关键字(abstract/assert(JDK1.4新添加的关键字)/boolean/break/byte/case/catch/char/class/const/continue/default/do/double/else/enum(JDK1.5新添加的关键字)/extends/final/finally/float/for/goto/if/implements/import/instanceof/int/interface/long/native/new/package/private/protected/public/return/short/static/strictfp/super/switch/synchronized/this/throw/throws/transient/try/void/volatile/while)

      (4) 标识符不能是true、false和null(尽管true、false和null不是Java关键字)

       需要注意的是,标识符中的字母是区分大小写的!


二、基本数据类型

       基本数据类型也称为简单数据类型。Java语言有8种基本数据类型,分别是boolean、byte、short、int、long、float、double和char,这8种基本数据类型习惯上分为4种类型。

       逻辑类型:boolean

       整形类型:byte、short、int、long

       字符类型:char

       浮点类型:float、double


下面分别详细介绍下各个类型。

      (1)逻辑类型:

          常量 : true、false

          变量: 使用关键字boolean来声明逻辑变量,声明时也可以赋初值。例如:

          boolean x,ok = true,l = false;

      (2)整数类型:

         整型数据分为4种。

         1、int 型

             常量:123、600(十进制)、077(八进制)、0x3ABC(十六进制)

             变量:使用关键字 int 来声明 int 型变量,声明是也可以赋初值。例如:

             int x = 12,y = 34,ax ;


         2、byte 型

             常量:Java中不存在 byte 型常量的表示法

             变量:使用关键字 byte 来声明 byte 型变量。例如:

             byte x = 12,tom = 25 ;


         3、short 型

             常量:不存在常量表示法。

             变量:使用关键字 short 来声明 short 型变量。例如:
             short x = 12,y =123 ;


         4、long 型

             常量:long 型变量用后缀 L 来表示,例如108L(十进制)、07123L(八进制)、0x3ABCL(十六进制)。

             变量:使用关键字 long 来声明 long 型变量。例如:

             long width = 12L,height = 205L,length ;

   

      (3)字符类型

           常量:'A','b','?','9','好','\t'等,即用单引号括起来的Unicode表中的一个字符。

           变量:使用关键字 char 来声明 char 型变量。例如:

          char ch = 'A',home = '家' ;

char 型变量,内存分配两个字节,占16位,取值范围0----65535。

char x = 97 与 char x = 'a' 是相同的。

          有些字符(如回车符)不能通过键盘输入到字符串或者程序中,这时需要使用转义字符常量来表示,常见的转义字符有 \n(换行)、\b(退格)、\t(水平制表)、\'(单引号)、\"(双引号)、\\(反斜线)等。

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">package Example_1;

public class Demo_1 {

    /**
     * @param args
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub

        char ch1 = 'w',ch2 = '好';
        int p1 = 32831,p2 = 30452;
        System.out.println("\""+ch1+"\"的位置:"+(int)ch1);
        System.out.println("\""+ch2+"\"的位置:"+(int)ch2);
        System.out.println("第"+"p1"+"个位置上的字符是:"+(char)p1);
        System.out.println("第"+"p2"+"个位置上的字符是:"+(char)p2);
    }

}
</span></span></span>
</span>

运行程序显示如下

<span style="font-size:18px;"><span style="font-size:18px;"><span style="font-size:18px;">"w"的位置:119
"好"的位置:22909
第p1个位置上的字符是:耿
第p2个位置上的字符是:直
</span></span></span>
       (4)浮点类型

            浮点类型分为 float 和 double 型 。

                    1、float 型

              常量:453.1542f、3223.565F

              需要注意的是,常量后面必须要有后缀 f 或 F 。

              变量:使用关键字 float 来声明 float 型变量。例如:

              float  x = 234.78f,tom = 21344.45F ;

 float 变量在存储 float 型数据时保留8位有效数字,实际精度取决于具体数值。例如:

    x = 12345.123456789f ,那么 x 实际值是12345.123046875(保留8位有效数字)


           2、double 型

               常量:2389.563d、45676.45

               对于 double 变量,后面可以加后缀 d 或 D,但允许省略。

               变量:使用关键字 double 来声明 double 型变量。例如:

               double x = 23.6564,wi = 5434.54D ;

double 变量在存储 double 型数据的时保留16位有效数字,实际精度取决于具体数值。


这里我们继续对一些知识点进行解释和总结。

float 类型的数值有一个后缀 F,没有后缀 F 的浮点数值默认为 double 类型的。

整型值和布尔值之间不能进行相互转换。在 c++ 中,数值或指针可以代替 boolean 值。值 0 相当于布尔值 false,非 0 值相当于布尔值 true 。在 java 中则不是这样。因此,java 应用程序员不会遇到下述麻烦:

   if(x=0)
    在 c++ 中,这个测试可以编译执行,其值总是 false 。而在 java 中,这个测试不能通过编译,其原因是整数表达式 x = 0 不能转换为布尔值。


三、基本数据类型的转换

     当把一些基本数据类型变量的值赋给另一种基本数据类型时,会涉及到数据转换。

   在 java 中,将这些类型按精度从“低”到“高”排列为 byte、short、char、int、long、float、double。

      当把级别低的变量的值赋给级别高的变量时,系统会自动完成数据类型的转换。例如:

   float x = 100 ;  如果输出 x 的值,结果将会是 100.0 ;

   当把级别高的变量的值赋给级别低的变量时,必须使用显式类型转换运算。例如:

   int  x = (int)34.124 ;

   long y = (long) 56.24F ;

   int z = (int) 1999L ;

   但是应该注意的是,x , y , z 输出的值分别是34,56,1999,强制转换运算可能会导致精度的损失。

   还应该注意的一点是, float x = 21.1 将导致语法错误,正确的做法是 float x = (float)21.1或float x = 21.1F。


package Example_1;

public class Demo_1 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub

		int c = 128;
		long d = 77777;
		float f = 2e3F;
		double g = 3.14e-300;
		double result = f*g;
		System.out.println("f= "+f);
		System.out.println("g= "+g);
		System.out.println("result= "+result);
		g = 1234.123456789;
		c = (int)d;
		f = (float)g;                               //导致精度的损失
		System.out.println("c= "+c);
		System.out.println("d= "+d);
		System.out.println("f= "+f);
		System.out.println("g= "+g);
	}

}

运行结果是:

f= 2000.0
g= 3.14E-300
result= 6.28E-297
c= 77777
d= 77777
f= 1234.1234
g= 1234.123456789



 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值