Java的变量类型
以下内容引用自http://wiki.jikexueyuan.com/project/java/variable-types.html:
一个变量提供了程序可以操作的命名存储。Java中的每个变量都有一个特定的类型,它决定了变量内存的大小和布局;可以存储在该存储器中的值的范围;以及可以应用于变量的一组操作。
在使用前必须现将所要使用的变量进行声明。声明变量的基本格式如下:
data type variable [ = value][, variable [= value] ...] ;
这里的data type是Java的一种数据类型,variable是一种变量的名称。要声明一个以上的特定变量类型,可以采用逗号分隔开。
下面是Java中有效的变量声明和赋值的例子:
int a, b, c; // Declares three ints, a, b, and c.
int a = 10, b = 10; // Example of initialization
byte B = 22; // initializes a byte type variable B.
double pi = 3.14159; // declares and assigns a value of PI.
char a = 'a'; // the char variable a iis initialized with value 'a'
Java中共有三种变量:
- 本地变量(局部变量)
- 实例变量
- 类、静态变量
一、本地变量(局部变量)
- 本地变量在方法、构造器或者块中声明
- 本地变量在方法、构造器或者块进入时被创建,一旦退出该变量就会被摧毁
- 可访问描述符不能用于本地变量
- 本地变量仅在已经声明的方法、构造器或者块中可见
- 本地变量在栈深度内部实施
- 本地变量没有默认值,因此本地变量必须被声明并且在第一次使用前要给它赋值
例子:
这里,age(年龄)是本地变量。这是在pupAge()方法下定义的,它的范围仅限于这个方法。
public class Test{
   public void pupAge(){
      int age = 0;
      age = age + 7;
      System.out.println("Puppy age is : " + age);
   }
   public static void main(String args[]){
      Test test = new Test();
      test.pupAge();
   }
}
//上述代码会输出如下结果:
Puppy age is: 7
例子:
下面的例子使用了本地变量age但是没有进行初始化,所以在编辑是就会显示错误。
public class Test{
   public void pupAge(){
      int age;
      age = age + 7;
      System.out.println("Puppy age is : " + age);
   }
   public static void main(String args[]){
      Test test = new Test();
      test.pupAge();
   }
}
//编辑时会产生如下错误:
Test.java:4:variable number might not have been initialized
age = age + 7;
^
1 error
二、实例变量
- 实例变量在类中声明,但是它在方法、构造器或者块外。
- 当堆中的对象被分配了一个空间时,每个实例变量的位置就被创建了。
- 当对象采用关键字“new”创建时实例变量就被创建了,当对象被销毁时它也就被销毁了。
- 实例变量的值必须被一个以上的方法、构造器或者块,或者类中必须出现的对象的状态的重要部分所引用。
- 实例变量可以在类级别上,在使用前或者使用后声明。
- 实例变量可以用可访问描述符。
- 实例变量对类中的所有方法、构造器或者块可见。一般来讲,推荐将这些变量私有(访问层面)。然而子类的可见性可用可访问描述符给予那些变量。
- 实例变量有默认值。数字的默认值为零,布尔型默认值为假,对象引用默认值为空。在声明或者构造器内可以进行赋值。
- 实例变量可以采用直接在类中叫名字方式访问。然而在静态方法和不同的类(实例变量可以被访问)中应当使用完全限定名称。ObjectReference.VariableName
例子:
import java.io.*;
public class Employee{
   // this instance variable is visible for any child class.
   public String name;
   // salary  variable is visible in Employee class only.
   private double salary;
   // The name variable is assigned in the constructor.
   public Employee (String empName){
      name = empName;
   }
   // The salary variable is assigned a value.
   public void setSalary(double empSal){
      salary = empSal;
   }
   // This method prints the employee details.
   public void printEmp(){
      System.out.println("name  : " + name );
      System.out.println("salary :" + salary);
   }
   public static void main(String args[]){
      Employee empOne = new Employee("Ransika");
      empOne.setSalary(1000);
      empOne.printEmp();
   }
}
//上述代码会输出如下结果:
name  : Ransika
salary :1000.0
三、类、静态变量
- 类变量也叫静态变量,它是在类中用static关键字声明的,但是它在方法、构造器或者块之外。
- 每个类中只有一个类变量,不管这个类有多少对象。
- 除了作为常量被声明之外,类变量很少被应用。常量是被作为public、private、final和static被声明的变量。实例初始化后值不会被改变。
- 静态变量存储在静态内存中,除了声明final之外,静态变量也很少使用public或rpivate作为常量。
- 静态变量随着程序的开始和结束而开始和结束。
- 可见性和实例变量相似。然而大多数静态变量被声明为public由于他们必须为类的使用者所用。
- 默认值和实例变量相似。对于数字的默认值为零,布尔型默认值为假,对象引用默认值为空。在声明或者构造器内可以进行赋值。除此之外,可以在特殊的静态初始化区赋值。
- 静态变量可以用类的名称访问。ClassName.VariableName
- 当静态变量被作为public static final声明时,变量(常量)名称都要用大写字母。如果静态变量不是public和final,它的命名方法和实例变量和本地变量相同。
- 声明为final后不能为其赋值。
例子:
import java.io.*;
public class Employee{
   // salary  variable is a private static variable
   private static double salary;
   // DEPARTMENT is a constant
   public static final String DEPARTMENT = "Development ";
   public static void main(String args[]){
      salary = 1000;
      System.out.println(DEPARTMENT+"average salary:"+salary);
   }
}
//上述代码会输出如下结果:
Development average salary:1000
注:如果变量从类外访问,常量就必须以Employee.DEPARTMENT访问。
测试工程:https://github.com/easonjim/5_java_example/tree/master/javabasicstest/test3
Java的变量类型的更多相关文章
- Java 4- Java 变量类型
		Java 变量类型 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ... 
- java入门---变量类型&类变量&局部变量&实例变量&静态变量
		在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ; ... 
- Day0 认识Java与变量类型
		字节码与虚拟机 Java介于编译型语言和解释型语言之间.编译型语言如C.C++,代码是直接编译成机器码执行,但是不同的平台(x86.ARM等)CPU的指令集不同,因此,需要编译出每一种平台的对应机器码 ... 
- Java学习——变量类型
		Java有3类变量 局部变量 成员变量(实例变量) 类变量(静态变量) 局部变量 局部变量声明在方法.构造方法或者语句块中: 局部变量在方法.构造方法.或者语句块被执行的时候创建,当它们执行完成后,变 ... 
- 一、JAVA变量类型:①类变量与实例变量的异同点
		在JAVA中,变量使用前必须声明,格式如下: int a; //单个变量声明 int b, c, d; //多个变量一起声明 int e = 1, f = 2, g = 3; //声明时同时赋值(初始 ... 
- java基础(四) -变量类型
		在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifier [ = value][, identifier [= value] ...] ; 格式说明:ty ... 
- A02-java学习-classpath配置-标识符-java变量类型
		学习 1, classpath的配置和使用 2, java的标识符命名规则和命名规范 3, 字符编码 4, java的变量类型 5, 程序的入口main方法解释 
- Java-Runoob:Java 变量类型
		ylbtech-Java-Runoob:Java 变量类型 1.返回顶部 1. Java 变量类型 在Java语言中,所有的变量在使用前必须声明.声明变量的基本格式如下: type identifie ... 
- Java入门 - 语言基础 - 06.变量类型
		原文地址:http://www.work100.net/training/java-variable-type.html 更多教程:光束云 - 免费课程 变量类型 序号 文内章节 视频 1 概述 2 ... 
随机推荐
- 15分钟学会使用Git
			http://blog.csdn.net/u013510614/article/details/50588446 主体思想 Git作为一个复杂的版本控制系统,命令之多,相信很多小白已经望而却步,有的尝 ... 
- postman做压力测试
			压力测试 当你需要验证你的接口的抗压能力的时候,可以点击Runner,进行压力测试 注意:压力测试只能以文件夹的方式执行多个接口,不能单独执行,如果想要测试某一个接口,就创一个文件夹,这个文件夹里只有 ... 
- Asp.Net Core 入门(三) —— 自定义中间件
			上一篇我们讲了Startup文件,其中着重介绍了中间件,现在我们就来自定义我们自己的中间件吧. 中间件通常封装在一个类中,并使用扩展方法进行暴露.它需要拥有一个类型为RequestDelegate的成 ... 
- Caused by: java.io.FileNotFoundException: Could not open ServletContext resource [/config/spring/applicationContext.xml]
			在搭建SpringMVC框架的时候遇到了这个问题 问题的原因: 就是没有找到applicatoincontext.xml这个文件, 因为idea自动生成的路径不正确 因此需要再web.xml里面, ( ... 
- Microsoft Windows Server 部署
			Microsoft Windows Server 部署 多重引导 计算机可以被设置多重引导,即在一台计算机上安装多个操作系统..在安装多重引导的操作系统时,还要注意版本的类型,一般应先安装版本低的,再 ... 
- git-忽略文件改动不进行提交
			命令:git update-index --assume-unchanged 文件名 作用:忽略文件的改动,但是不加入.gitignore 文件中,这样可以达到仅在本地目录中忽略,不影响其他团队成员的 ... 
- django 127.0.0.1 将您重定向的次数过多
			"GET /?next=/%3Fnext%3D/%253Fnext%253D/ HTTP/1.1" 302 0 solution reference from django.con ... 
- SQL的几种连接
			1. 内连接 结果: 从左表中取出每一条记录,去右表中与所有的记录进行匹配: 匹配必须是某个条件是左表中与右表中相同,才会保留结果,否则不保留: 1.等值连接:在连接条件中使用等于号(=)运算符比较被 ... 
- [CF] 219D Choosing Capital for Treeland
			题意翻译 题目描述 Treeland国有n个城市,这n个城市连成了一颗树,有n-1条道路连接了所有城市.每条道路只能单向通行.现在政府需要决定选择哪个城市为首都.假如城市i成为了首都,那么为了使首都能 ... 
- Python旅途——函数(1)
			函数 简介 到目前为止,我们一直所接触的都是属于面向过程编程,这样的代码会降低代码的可读性,因此引入了函数式编程,在后面我们还会学到面向对象编程. 函数式编程 函数本质:将N行代码拿到别处,并给他起个 ... 
