A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 廖智 中级黑马   /  2012-10-12 11:45  /  1579 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 廖智 于 2012-10-12 11:56 编辑

在java中有哪些变量?
而且在java中局部变量有哪些? 都分别定义在代码中哪些区域里?
学得有点些乱,求帮忙整理下!

评分

参与人数 1黑马币 +15 收起 理由
韩军博 + 15 赞一个!

查看全部评分

4 个回复

倒序浏览
java.lang包里
回复 使用道具 举报
(一)、根据声明方式分类:

      下面一段代码介绍了7种Java变量的分类方式:

      class MyVariable {
           static int a;
           int b;
           public static void myMethod(int c)  {
                try {
                      int d;
                } catch(Exception e) {
              }
           }
           MyClass(int f) {
               int[]g = new int[100];
           }
      }
     class variable:声明在class内,method之外,且使用static修饰的变量,例如上面程序代码的a.
     instance variable:声明在class内,method之外,且未使用static修饰的变量,例如上面程序的b.
     method parameter:声明在method小括号内的变量,例如上面程序代码的c.
     狭义的局部变量(local variable):声明在method内的变量,例如上面程序代码的d和g.
     exception-handler parameter:声明在catch小括号内的变量,例如上面程序代码的e.
     constructor parameter:声明在constructor小括号内的变量,例如上面程序代码的f.
     数组元素(array element):数组的元素值没有识别名称,必须透过数组和索引值(index)来识别.例如上面
     程序代码的g[0].

     (二)、根据变量内存分类

     根据变量内存位置来区分,Java的变量有两种,包括了:
     heap variable:占用的内存在heap中,这类变量包括了class variable,instance variable,array

     component,即前面程序的a,b,g[0].这类变量会自动被JVM初始化默认值.

     stack variable:通常广义的局部变量(pan-local variable),其占的内存在stack中,这类变量包括了狭义
     局部变量,method parameter,exception-handler parameter,constructor parameter,即前面程序的c,d

     e,f.狭义的局部变量不会被JVM初始化成默认值,使用者必须自行初始化该变量,但是parameter类(包括

     method parameter,exception-handler parameter,constructor parameter)会被JVM初始化成传入值.

     (三)、根据使用方式来分类

     class variable:即上例的a.
     instance variable:即上例的b.

     广义的局部变量:包含上例的c,d,e,f.这四者的差别很小,直接归为一类.
     至于"数组元素"(array component)则不在此三类中,但是"数组元素"并不常被注意到,为它多分出一类的

     用处不大.通常将数组视为对象,将array component视为对象的instance variable.


评分

参与人数 1技术分 +1 收起 理由
韩军博 + 1

查看全部评分

回复 使用道具 举报
变量,就是在内存中开辟一个存储区域,这个区域的数据可以在同一类类型范围内不断变化。那么不管什么数据类型包括基本数据类型或者引用数据类型都可以用来定义变量。
理解局部变量的关键在于理解什么是作用域,局部变量是相对于全局变量而言的,在程序中,只在特定过程或函数中可以访问的变量。局部变量一般定义在函数或者方法内等代码块中,而全局变量定义在类中,方法外,作用域整个类。
回复 使用道具 举报
java变量分为局部变量和全局变量:变量放在方法里叫做局部变量,放在类里面叫做全局变量
类里有成员属性和成员方法:成员属性又分实例属性和类属性(static修饰);成员方法分为实例方法和类方法(static修饰)
java类型分为基本类型和引用类型,基本类型就是那八种基本数据类型,引用类型是自己可以定义的类型;


回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马