学习笔记--Java中的变量
Java中的变量
/**
* 关于 Java 语言当中的变量:
*
* 1. 什么是变量?
* - 变量的本质上来说是内存空间,这块空间有(数据类型、名字、字面值)
* - 变量包括三部分:数据类型、名称、字面值【数据】
* - 变量是内存中存储数据的最基本的单元
*
* 2. 数据类型的作用?
* - 不同的数据有不同的类型,不同的数据类型底层分配不同大小的空间
* - 数据类型是指导程序在运行阶段应该分配多大的内存空间
*
* 3. 变量要求:“数据”必须与“数据类型”一致,当不一致时编译报错
*
* 4. 变量名:只要是合法标识符即可
*
* 5. 语法格式:
* - 声明:数据类型 变量名;
* int num;
*
* - 赋值:变量名 = 字面值;
* num = 10;
*
* - 声明可以与赋值一起写
* int num = 10;
*
* 6. 赋值后可以再次赋值,首次赋值称为初始化
*
* 7. 有变量的概念了后,内存空间能够被重复使用,提高了利用率
*
* 8. 通过访问一个变量包括两种形式:
* - 第一种:读取 变量中保存的具体数据 get/获取
* - 第二种:修改 变量中保存的具体数据 set/设置
*
* 9. 变量可以在一行声明多个
* int a,b,c;
*
* 10. Java 中的变量必须先声明,再赋值,才能访问
*
* 11. 在同一个“作用域”当中,变量名不能重名,但是变量可以重新赋值
* - 变量的作用域:是描述变量的作用范围
* - 在范围之内可以被访问,只有出了这个范围该变量就无法访问
* - 在不同作用域中可以重名
*
* 12. 变量的作用域范围判定:“出了大括号就不认识了。”
*
* 13. 变量分类:
* -局部变量:在方法体中声明的变量
* -成员变量:在方法体外,类体之内声明的变量
*
* 14. 变量访问遵循就近原则
*/
public class VarTest {
public static void main(String[] args) {
int i; // 声明一个 整型(int)变量,名称为 i
// System.out.println(i);
// 变量 i 并没有初始化,直接编译会报错
i = 10; // 为变量 i 赋值 整数(int) 10,在此为 i 完成了初始化
System.out.println(i); // 正常执行
i = 100; // i 再次赋值
System.out.println(i);
int a,b,c = 300; // 一行可以多个声明
// a,b未初始化,c 初始化为 300,
// System.out.println(a); 编译报错
// System.out.println(b); 编译报错
System.out.println(c);
a = 1;
b = 2;
System.out.println(a);
System.out.println(b);
// System.out.println(k);
// int k = 100;
// 错误,在 Java 方法体中程序是“自上而下”执行
// int i = 10;
// 在同一个“作用域”当中,变量不能重名
int f = 1; // 变量 f 作用域在 方法体 main 内
for(int j = 0; j < 10; j++) {
System.out.println(f);
// 因为 for 包含在 main 内,变量 f 属于 main 方法,没有出 main 的括号
}
// System.out.println(j);
// 报错,因为变量 j 的作用域在 for 循环,“出了大括号就不认识了。”
}
// 成员变量
int i = 200; //方法体外,类体之内,不同作用域中可以重名
}
学习笔记--Java中的变量的更多相关文章
- JavaScript学习笔记——JS中的变量复制、参数传递和作用域链
今天在看书的过程中,又发现了自己目前对Javascript存在的一个知识模糊点:JS的作用域链,所以就通过查资料看书对作用域链相关的内容进行了学习.今天学习笔记主要有这样几个关键字:变量.参数传递.执 ...
- Android学习笔记----Java中的字符串比较
用习惯了C#.C++,在做字符串比较时想当然地使用如下语句: string str1 = "abcd", str2 = "abcd"; if(str1==str ...
- 2.1多线程(java学习笔记) java中多线程的实现(附静态代理模式)
一.多线程 首先我们要清楚程序.进程.线程的关系. 首先进程从属于程序,线程从属于进程. 程序指计算机执行操作或任务的指令集合,是一个静态的概念. 但我们实际运行程序时,并发程序因为相互制约,具有“执 ...
- 设计模式学习笔记——java中常用的设计模式
单例设计模式(Singleton Pattern) 观察者模式(Observer Pattern) 工厂模式(Factory Pattern) 策略模式(Strategy Pattern) 适配器模式 ...
- Java学习笔记-Java中的常用类
Java中有很多类是很常用的,此处列举System,Runtime,Date,Calendar,Math System System:类中的方法和属性都是静态的 字段摘要 static PrintSt ...
- php学习笔记4--php中的变量作用域
变量作用域:可以简单地理解为变量的可见区域,变量能被访问的范围.如同其他语言,php中也有全局作用域和局部作用域之分,但是不同的是:php中的全局作用域指的是:只能在函数外部使用,而局部作用域指的是: ...
- java学习笔记--java中的基本数组[5]
java基础很重要, 今天呆家看java视频,顺便总结前几周看的java书籍,做一下简单的总结:1:数组的声明,2:数组的赋值: 3:数组的方法: 声明一个数组主要有两种方式: //类型 []数组名字 ...
- java学习笔记——java中对象的创建,初始化,引用的解析
如果有一个A类. 1.例如以下表达式: A a1 = new A(); 那么A是类,a1是引用.new A()是对象.仅仅是a1这个引用指向了new A()这个对象. 2.又如: A a2; A代 ...
- JAVA学习笔记:注释、变量的声明和定义、
本文内容: 注释 变量的声明和定义 成员变量和局部变量 首发时间:2018-03-16 15:59 注释: 单行注释:// 多行注释:/* - */ 变量: 变量是内存中的一个存储区域,变量的定义就是 ...
随机推荐
- IOS开发入门教程-总结篇-写给狂热的编程爱好者们
程序发轻狂,代码阑珊,苹果开发安卓狂!--写给狂热的编程爱好者们 写在前面的话 学习iOS应用程序开发已有一段时间,最近稍微闲下来了,正好也想记录一下前阶段的整个学习过程.索性就从最基础的开始,一步一 ...
- Dom 解析XML
xml文件 <?xml version="1.0" encoding="UTF-8"?><data> <book id=&q ...
- WPF将窗口置于桌面下方(可用于动态桌面)
WPF将窗口置于桌面下方(可用于动态桌面) 先来看一下效果: 界面元素很简单,就一个Button按钮,然后写个定时器,定时更新Button按钮中的内容为当前时间,下面来介绍下原理,和界面组成. 窗口介 ...
- bootstrap.css 进度条没有动画效果
操作系统设置会影响浏览器的行为 Win+R 输入 sysdm.cpl ,3 打开 性能 的 设置 确保 窗口内动画控件和元素 被勾选
- 【超详细】安全测试===sqlmap使用心得(零)
零.前言 这篇文章是学习Sqlmap的用法时做的笔记,记录了Sqlmap的常见.基础用法. 一.Sqlmap是什么 Sqlmap是开源的自动化SQL注入工具,由Python写成,具有如下特点: 完全支 ...
- Redis缓存穿透、击穿、雪崩,数据库与缓存一致性
Redis作为高性能非关系型(NoSQL)的键值对数据库,受到了广大用户的喜爱和使用,大家在项目中都用到了Redis来做数据缓存,但有些问题我们在使用中不得不考虑,其中典型的问题就是:缓存穿透.缓存雪 ...
- 【死磕Java并发】-----内存模型之happens-before
在上篇博客([死磕Java并发]-----深入分析volatile的实现原理)LZ提到过由于存在线程本地内存和主内存的原因,再加上重排序,会导致多线程环境下存在可见性的问题.那么我们正确使用同步.锁的 ...
- C++ 11新特性:std::future & std::shared_future) (转载)
上一讲<C++11 并发指南四(<future> 详解二 std::packaged_task 介绍)>主要介绍了 <future> 头文件中的 std::pack ...
- Deepin20系统安装Nvidia驱动
Deepin20系统安装Nvidia驱动 系统设备配置信息如下: 电脑型号:华硕天选air[ASUS-FX516P] 显卡型号:RTX 3070 移动版独显 处理器型号: 11th Gen Intel ...
- 应用TYPE-C外围电源管理IC IM2605
应用于TYPE-C外围集成同步4开关Buck-Boost变换器的电源管理IC IM2605 IM2605描述 IM2605集成了一个同步4开关Buck-Boost变换器,在输入电压小于或大于输出电 ...