主要是为了复习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. PS教您与粗壮的胳膊拜拜

    Step 01在Photoshop 中打开素材图片,图中圈出的地方是需要调整的. Step 02用[套索工具]圈出胳膊及周围的环境. Step 03单击右键,选择[羽化],设置[羽化半径]为20 像素 ...

  2. springboot打成jar后文件读取问题

    springboot打成的jar包里面不能用File去获取文件对象,只能用流的方式去读取. 获取方式: InputStream resourceAsStream  = 类名.class.getClas ...

  3. PowerShell-自定义函数(五)-参数互斥:ParameterSetName

    转自:https://blog.51cto.com/38088444/1920978 这一篇我们来讲一下参数的互斥,何谓参数互斥呢.用九胖风格的话说就是互怼,有我没你,有你没我. 例如我们为一个Pin ...

  4. UC和QQ两个主流浏览器 * 点击触发微信分享到朋友圈或发送给朋友的功能(转载)

    转载(声明:仅供学习使用) /** * 此插件主要作用是在UC和QQ两个主流浏览器 * 上面触发微信分享到朋友圈或发送给朋友的功能 * 代码编写过程中 参考: * http://mjs.sinaimg ...

  5. Kafka-python 客户端导致的 cpu 使用过高,且无法消费消息的问题

    今天遇到一个情况使用了 Kafka-python 1.3.3 来操作读取 broker 1.0.1 版本的 kafka.出现了 rebalance 之后分配到了客户端,但是 cpu 利用率很高且无法消 ...

  6. python如何安装pip及venv管理

    问题1:如何安装pip python的虚拟环境virtualenv的管理 背景: (1)python的版本很多,每个应用项目可能需要使用不同的版本,这样会导致兼容性问题: python的插件相当的丰富 ...

  7. 二、IIS部署WebApi

    一.项目发布 二.hosts 更改 C:\Windows\System32\drivers\etc 三.网站搭建 之后我将端口默认更改 8001   以防与80端口冲突 注意: 1.先测试IIS的lo ...

  8. Gym - 101350G Snake Rana(容器原理)

    Old Macdonald wants to build a new hen house for his hens. He buys a new rectangular area of size N  ...

  9. Android sdk platform,sdk tools,sdk Build tools,sdk platform tools 的关系

    1. sdk platform 简单理解为系统版本 最新级别: 28:Android 9 27:Android 8.1 26:Android 8.0 25:Android 7.1 24:Android ...

  10. 解决ssh登录慢的问题

    修改文件/etc/ssh/sshd_config  : UseDNS no GSSAPIAuthentication no 重启服务 service sshd restart