Java变量与数据类型中易混知识点总结_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > Java变量与数据类型中易混知识点总结

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

 2014/4/10 0:45:41  westudy  程序员俱乐部  我要评论(0)
  • 摘要:在学习Java变量与数据类型时,经常遇到一些与其它语言不同或与现实生活不同,易混地方,我在这里做一个总经与整理。变量的初始化在Java中声明的变量如未进行过初始化或赋值,就不占据存储空间,是不能够使用的,这不同于VB等语言会自动初始化,赋默认值。如:classDemo{publicstaticvoidmain(String[]args){inti;System.out.println(i);//i未初始化}}输出结果:变量的作用域(大括号,括号内定义的变量不能在括号外使用)比较代码
  • 标签:总结 数据类型 Java 数据

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

变量的初始化 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

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

class="java">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);自动进行了强制转换

?

?

?

?

?

?

?

  • 大小: 4.5 KB
  • 大小: 5.5 KB
  • 查看图片附件
上一篇: java中final修饰符的用法 下一篇: 没有下一篇了!
发表评论
用户名: 匿名