码迷,mamicode.com
首页 > 编程语言 > 详细

Java之常量and变量

时间:2016-05-19 19:04:38      阅读:291      评论:0      收藏:0      [点我收藏+]

标签:

标识符:

     组成:26个英文字母大小写,数字,0-9,符号:$,_

     规则:

          1.数字不可以开头(1ab)

          2.不能使用关键字(class)

     java严格区分大小写

Java中的一些命名规范:

1.包名:xxyyzz……

2.类名/接口名:XxxYyyZzz……

3.变量名/函数名:xxYyyZzz……

4.常量名:XXX_YYY_ZZZ……

常量:

技术分享

整数常量几种特殊表现形式:

     八进制:0123(十进制的83)

     十六进制:0x13(0X13)

      二进制

注意:

长整形必须以l(L小写/小写)结尾:9l,1238238238L

  单精度浮点型(float)以f结尾:3.6f, .4f, 5.022e+23f

变量:

基本类型:

技术分享

注意:整数默认:int,小数默认:double

基本类型转换:

例子:

class TypeConversion1
{
  public static void main(String[] args)
  {
     
      byte b=1;//判断1这个整形常量在不在-128~127范围内,在则正确,否则报错
	           //b=b+2;//ERROR!,此时b的数据类型提升为int,与2(默认int),和为int
               //因此不能放在byte变量中
      b=(byte)(b+2);//把b+2的值强制转换为byte赋值给b,可能丢失精度(看下面的情况)
     
  
	  int i=393;//此时已经超出byte范围
      System.out.println((byte)i);//-119,发生截断 详解转 截断图

      
	  
     	

      //long i2=1238989001234;//虽然定义的long, 
                      //但是此时已经超出默认int范围(-2^31~2^31-1),会报错 
       long i2=1238989001234L;

	  
	  
	  System.out.println(‘a‘+1);//98,字符类型会被提升为int(对应ASCII码为97)
      

      int n=123456789;
      float f=n;//1.234567892E8,虽然n的值没有超出f的数值范围,
                //但是float的有效数字为7位,也就是说 92这两位数字
                //已经不准了  
      System.out.println(f);
     
//float f=1.2;//由于浮点数默认为double,1.2赋值给f在编译时会报”可能损失精度”,这时可以使用单精度浮点数1.2f
  
  }             
}
技术分享
需要知道:计算机中的数据以二进制补码的形式存储,其中正数的原码,反码,补码相同.
          而负数的反码为:符号位不变,其余位取反.补码:反码+1.
技术分享
基本类型间的转换图:

技术分享
注意:

实心箭头表示无精度丢失的转换,虚箭头表示可能有精度损失的转换

转换规则:

一 数值类型转换规则 
数值型数据进行运算时,如果操作数的类型不同或操作数的类型均低于int型,则 
会进行自动类型转换处理,具体规则如下:

1)如果两个操作数中有一个是double型,则系统先将另一个操作数的值转换为double 
型,然后再进行运算,否则

2)如果两个操作数中有一个是float型,则系统先将另一个操作数的值转换为float 
型,然后再进行运算,否则

3)如果两个操作数中有一个是long型,则系统先将另一个操作数的值转换为long 
型,然后再进行运算,否则

4)两个操作数的值都将被转换为int型

5)如果只有一个操作数(例如进行"~"位运算时)且其类型低于int型时,则将该操作数的值转换为int型

简单归结为: 
1) byte,short,char->int->long->float->double 
2) byte,short,char之间不会互相转换,他们三者在计算时首先会转换为int类型

注意:Java中可以将int型数值常量直接赋值给相应低级的byte,short,char型变量, 
而不需要进行强制类型转换,只要不超出变量的数值范围.

Java之常量and变量

标签:

原文地址:http://www.cnblogs.com/xh4944/p/5509694.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!