Java变量与数据类型、数据运算中易混知识点总结

       在学习Java变量与数据类型时,经常遇到一些与其它语言不同或与现实生活不同,易混地方,我在这里做一个总结与整理。

变量的初始化                                                                                           

       在Java中声明的变量如未进行过初始化或赋值,就不占据存储空间,是不能够使用的,这不同于VB等语言会自动初始化,赋默认值。如:

class Demo{
        public static void main(String[] args){
              int i;
              System.out.println(i);//i未初始化
             }
         }

输出结果:

 


 

 变量的作用域(大括号,括号内定义的变量不能在括号外使用)                

比较代码:

 

class range1{
         public static void main(String[] args){
               int i=10;
               System.out.println(i);             //i在作用域(大括号)内
          }  
 }
 错误代码:
class Demo{

          public static void main(String[] args){
              {           
               int i=10;
              }
            System.out.println(i);  //变量i己出了作用范围(大括号)因此编译出错。
          }
}
 

 边界运算-强转后高位截取   损失精度                                                       

 

 

class Overrange{
         public static void main(String[] args){
             byte b1=(byte)(127+1);
            //输出结果-128  不强转为00000000 10000000转为byte后为10000000(-128)
           }
}
 

 整型除法   注意数据类型取值范围                                                            

 当整型与整型数据相除时结果仍为整数:

class Integerdiv{
         publci static void main(String[] args){
             int i=3/5*5;	 
             //按我们习惯为3,但分析一下3/5为int型0再*5结果为0
             //我们可使用 double i=3.0/5*5 扩展表示范围来得到正确的数据
          }
}

 求模运算(%)中符号取值与左边的数相同                                              

在求模运算中当遇到带有负数运自的求模时如何确定求模后的正负呢:只要通过左边的数即可确定。如:

 

class Intmod{
         public static void main(String[] args){
                     System.out.println(-6%5);  // 结果-1
                     System.out.println(6%-5);  //结果1
                     System.out.println(-6%-5); //结果-1
            }
}

 

 +=,-=,*=,/=,%=内部实现自动强制转换                                                   

如:

         byte b1 = 100;

         b1+=28;            //编译通过

因此说明  b1+=28;<==>b1 = (byte)(b1+28);自动进行了强制类型转换

 

 JAVA中运算规则之整型运算结果最小是int类型解析                                  

分析比较代码如下:

class Integerruls 
{
	public static void main(String[] args) 
	{
		byte b0=3;
		//byte b1=b0+1;    //编译出错 整型运算结果最小是int类型
		byte b1=3+1;       //语法正确
        int i0=0x7fffffff;
		int i1=i0+1;       //语法正确
		System.out.println(i1);
	}
}

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值