主要是为了复习java相关知识,本文主要内容来自于 http://www.runoob.com/java

一、局部变量

  • 局部变量声明在方法、构造方法或语句块中
  • 在方法、构造方法、语句块被执行的时候创建,执行完后,变量将会被销毁
  • 访问修饰符不能用于局部变量
  • 局部变量只在声明它的方法、构造方法或语句块中可见
  • 局部变量在栈上分配的
  • 局部变量没有默认值,所以声明后必须初始化才可使用。

二、实例变量

  • 实例变量声明在一个类中
  • 当一个对象被实例化之后,每个实例变量的值就确定了
  • 实例变量在对象创建的时候创建,对象被销毁的时候销毁
  • 实例变量的值应该至少被一个方法、构造方法或语句块引用,使得外部能够通过这些方式获取实例变量信息
  • 实例变量可以声明在使用前或使用后
  • 访问修饰符可以修饰实例变量
  • 实例变量对于类中的方法、构造方法或语句块是可见的
  • 实例变量具有默认值。数值型默认为0,布尔为false,引用变量为null
  • 实例变量可以直接通过变量名访问。

三、类变量(静态变量)

  • 类变量也称为静态变量,在类中以static关键字声明,但必须在方法、构造方法和语句块之外
  • 无论一个列创建了多少个对象,类只拥有类变量的一份拷贝
  • 静态变量除了被声明为常量外很少使用。常量是指声明为public/private, final/static类型的变量。常量初始化后不可改变
  • 静态变量存储在静态存储区,经常被声明为常量,很少单独使用static声明
  • 与实例变量具有相似的可见性。但为了对类的使用者可见,大多数静态变量声明为public类型

实例:

 /**
* 静态变量和实例变量的区别?
* 1.静态变量需要使用 static 修饰符修饰.
* 2.实例变量属于某个对象的属性,必须创建了实例对象,才会分配空间。
* 静态变量不属于某个对象,而属于类,当类加载时就会被分配空间。
*/
public class Test003 {
private static int sTest; // 静态变量
private int nTest ; // 实例变量
private Test003(){
//int jTest = sTest; //局部变量 0,1,2
//int jTest = nTest; //局部变量 0,0,0
//int jTest = ++nTest; //局部变量 1,1,1 ; nTest 的值为:2,2,2
//int jTest = nTest++; //局部变量 0,0,0 ; nTest 的值为:2,2,2 nTest先赋值给jTest,然后再自加
sTest ++;
nTest ++;
System.out.println("sTest:"+ sTest + ", nTest:"+ nTest /*+ ", jTest:"+ jTest*/);
} public static void main(String [] args){
Test003 t = new Test003();
Test003 t1 = new Test003();
Test003 t2 = new Test003(); System.out.println(Test003.sTest); // 通过类名.静态变量来访问
System.out.println(t.nTest); //通过实例对象.实例变量来访问 // 无论创建多少个实例对象,永远都只为静态变量分配一次内存,其生命周期取决于类的生命周期;
// 实例变量生命周期取决于实例的生命周期。每创建一个实例,就会分配一次内存 /*打印结果为:
sTest:1, nTest:1
sTest:2, nTest:1
sTest:3, nTest:1*/
}
}

July 9, 2018 9:31 PM

Java_变量类型的更多相关文章

  1. Python学习--03变量类型

    变量赋值 Python中的变量不需要声明,变量的赋值操作既是变量声明和定义的过程. 每个变量在内存中创建,都包括变量的标识,名称和数据这些信息. 每个变量在使用前都必须赋值,变量赋值以后该变量才会被创 ...

  2. 5-2 bash 脚本编程之一 变量、变量类型等

    1. bash变量类型 1. 环境变量 2. 本地变量(局部变量) 3. 位置变量 4. 特殊变量 2. 本地变量 VARNAME=VALUE, 整个bash进程 3. 环境变量 作用域为当前shel ...

  3. Javascript学习笔记:3种检测变量类型的方法

    ①typeof检测变量类型 console.log(typeof 1);//number console.log(typeof "a");//string console.log( ...

  4. 黑马程序员——C语言基础 变量类型 结构体

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...

  5. C++数据类型和变量类型。

    数据类型 数字是自由的[不只属于某个类型]!但是它可以有不同的身份!int.char.float.double等身份.它以不同的身份[存储规则]存储在内存的某个位置内部! 变量类型 内存编号是不会变的 ...

  6. MySQL服务 - MySQL变量类型及变量设置

    一.MySQL变量类型: MySQL通过变量来定义当前服务器的特性,保存状态信息等.我们可以通过手动更改变量的值来配置MySQL,也可以通过变量获得MySQL的当前状态信息.MySQL的变量类型可以从 ...

  7. Python 变量类型

    Python 变量类型 变量存储在内存中的值.这就意味着在创建变量时会在内存中开辟一个空间. 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中. 因此,变量可以指定不同的数据 ...

  8. CUDA1.1-函数类型限定符与变量类型限定符

    这部分来自于<CUDA_C_Programming_Guide.pdf>,看完<GPU高性能变成CUDA实战>的第四章,觉得这本书还是很好的,是一种循序渐进式的书,值得看,而不 ...

  9. C#变量类型

    在C#语言中,我们把变量分为七种类型,它们分别是:静态变量(static varibles),非静态变量(instance variables),数组元素(array elements),值参数(va ...

随机推荐

  1. C语言之控制语言:分支和跳转

    if语句 #include<stdio.h> int main(void) { const int FREEZING = 0; float temperature; int cold_da ...

  2. 该错误的解决办法:Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1

    Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1 这个问题,原因是UTF-8编码有可能是两个.三个.四个字节.Emoji表 ...

  3. JQ——利用一个开关,点击一个按钮完成展开收起功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  4. springboot aop 自定义注解

    枚举类: /** * Created by tzq on 2018/5/21. */ public enum MyAnnoEnum { SELECT("select"," ...

  5. js身份证正则

    身份证正则 var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/; if (!reg.test(IDCard)) {return false;}

  6. Android查看联系人简单记录

    简单实现打印联系人信息,可以作为插入联系人的基础和主要代码块,作为个人记录的小逻辑 package com.lgqrlchinese.contactstest; import android.Mani ...

  7. 【SPOJ】DIVCNTK min_25筛

    题目大意 给你 \(n,k\),求 \[ S_k(n)=\sum_{i=1}^n\sigma_0(i^k) \] 对 \(2^{64}\) 取模. 题解 一个min_25筛模板题. 令 \(f(n)= ...

  8. Magento2 Service contracts 服务合同

    服务合同 Magento是一个模块化系统,它使第三方开发人员能够定制和覆盖其框架的核心部分.然而,这种灵活性是有代价的. 业务逻辑倾向于泄漏Magento系统的各个层,这表现为重复且不一致的代码. 商 ...

  9. sublime text 批量删除空白行

    CTRL+H打开replace功能,勾选上左侧的regular expression,并填写 find what栏 : \s+$  (正则表达式)replace with栏 : (这行留空) 接着点r ...

  10. 分布式监控系统开发【day38】:报警自动升级代码解析及测试(八)

    一.报警自动升级代码解析 发送邮件代码 def action_email(self,action_obj,action_operation_obj,host_id,trigger_data): ''' ...