【JAVA】——字面量与变量
1、字面量:字面量就是数据/数值,编程与生活接轨,而生活中有很多数字,比如你的体重是70kg, 你的身高是172cm,西瓜价格是3元/kg等等,这些就是字面量(数据/数值),一门编程语言首先要能够表示数据才可以处理数据,所以 Java 程序通过字面量来表示数据。
- 软件处理的就是数据
- 每个数据都有数据类型,不同的数据类型会占有不同的内存
- 字面量的数据会在内存中找一个临时的空间储存起来,但此时字面量内存是无法被重复利用的,如果需重复利用,此时需要用到变量
- 数据类型
- 整数型
- 浮点型
- 字符型(文字,单个字符)
- 布尔型(真假):true、false
- 字符串型(文字,多个字符):String
2、变量:变量就是定义某块内存的字面量,以便后面更好的重复使用
- 变量的三要素
- 字面量(值)
- 数据类型
- 变量名
- 变量的使用
- 声明变量:语法格式:“数据类型 变量名;”
- 赋值变量:语法格式:“变量名=值;”
- 结合
- 数据类型 变量名=值; PS:声明和赋值可以在同一行完成
- 数据类型 变量名1=值1,,变量名2=值2,变量名3=值3; PS:Java允许一次声明多个同类型的变量
- 注意事项
- 需先声明,再赋值
- =为赋值运算符,右边优先级高,先执行,将执行结果赋给左边变量
- 在同一个大括号当中,不可以声明两个同名的变量
- 在同一个大括号当中表示在内存的同一个域当中,在同一块区域上面有两个名字都叫做age的变量,这是不允许的,因为这样程序在运行的时候,java虚拟机也不知道该访问哪个变量了(好比说,你有两个朋友,他们的俩的名字都叫张三,当你们三个人同时在场的时候,你呼张三,其实他俩也不知道你在叫谁呢!)。所以,同一个域中变量名不能重名,但是记住:变量是可以重新赋值的。
- 不同的域可以有同名变量
- 变量的分类:根据声明位置不同对变量进行分类
- 局部变量:在方法体当中声明的变量
- PS:局部变量只在方法体当中有效,方法体执行结束该变量的内存就释放了
- 成员变量:类体内声明的变量
- 使用static关键字修饰:静态成员变量(简称静态变量)
- 没有static关键字:为实例成员变量(简称实例变量)
- 局部变量:在方法体当中声明的变量
- 变量作用域:变量的有效范围
- 出了大括号就不认识
public class VarTesto7{public static void main(String[] args){int k=100;}public static void m(){System.out.println(k);} }
上述代码在main方法中定义了一个变量k,其为局部变量,只在main方法中是有效的,因此在m方法中是无法访问局部变量k的
public class VarTesto7{static int k=100;public static void main(String[] args){System.out.println("main k="+k);}public static void m(){System.out.println(k);} }
以上代码中的k编码是在类体中定义的,因此main方法和m方法均是可以访问k变量的。但此时只输出了 main 方 法中的 k,并没有输出 m 方法中的 k ,这是因为 m 方法并没有执行,程序的执行是从 main 方法作为入口进来执行的,在 main 方法中并没有手动调用 m 方法,所以 m 方法是不会执行的。
- 就近原则:会自动访问离它最近的数据
public class VarTest07{static int k= 100;public static void main(String[] args){int k=300;System.out.println("main k="+k);}public static void m(){System.out.println(k);} }
以上代码定义了两个同名的k变量,因为一个在类体域,一个在方法体域,因此并不会报错,而此时的运行结果是“main k=300”,而不是100,这说明了 Java 程序遵守“就近原则”,也就是说以上程序在 main 方法中访问变量 k 的话,访问的是 局部变量 k,而不是静态变量 k
public class VarTest07{static int k= 100;public static void main(String[] args){int k=300;System.out.println("main k="+k);m();}public static void m(){System.out.println(k);} }
这段代码main 方法调用了m方法,可以看到在 m 方法中访问的是静态变量 k,因为输出结果是 100,而 不是 300。
- 出了大括号就不认识
3、章节习题:通过变量来描述学生的信息,学生信息包括:学号、姓名、性别、身高。其中学 号采用整数,姓名采用字符串,性别采用字符型,身高采用浮点型。具体的学生数据有两份,第一个学生信息是:学号 110,姓名张三,性别男,身高 1.85 米。第二个学生信息是:学号 120,姓名李四,性别女,身高 1.65 米。要求最终将学 生的信息输出到控制台。输出结果如下图所示:
学号:110
姓名:张三
性别:男
身高:1.85
-------------------------------
学号:120
姓名:李四
性别:女
身高:1.65
自己的答案:
public class VarTest07{public static void main(String[] args){int studynumber;double high;String name;char sex;studynumber=110;high=1.85;name="张三";sex='男';System.out.println("学号:"+studynumber);System.out.println("姓名:"+name);System.out.println("性别:"+sex);System.out.println("身高:"+high);System.out.println("-------------------------------");studynumber=120;high=1.65;name="李四";sex='女';System.out.println("学号:"+studynumber);System.out.println("姓名:"+name);System.out.println("性别:"+sex);System.out.println("身高:"+high);}
}
【JAVA】——字面量与变量相关推荐
- Java: Java字面量、 变量和常量
Java字面量. 变量和常量 先给出一段小代码,如下: int a = 10; //a为变量,10为字面量 final int b = 10; //b为常量,10为字面量 static str = & ...
- 【图文详解】JAVA字面量和变量
文章目录 一.什么是字面量 二.什么是变量 三.变量的使用 四.知识拓展 一.什么是字面量 在Java语言中,"数据"被称为"字面量". 字面量有以下类型: 整 ...
- java 字面量_Java字面量
Java字面量 本章节目标: 理解变量本质是什么,在开发中有什么用?变量三要素是什么?怎么声明变量?怎么给变量赋值?变量是如何分类的?变量的作用域? 知识框架: Java字面量 字面量就是数据/数值, ...
- 【字面量与变量的区别】
字面量与变量的区别 一.什么是字面量? 二.什么是变量? 一.什么是字面量? 字面量概念:字面量都是一些不可改变的值 比如:1 2 3 4 5 6 字面量都是可以直接使用,但是我们一般都不会直接使用字 ...
- 【JS基础】基本格式、字面量和变量、标志符、字符串
基本格式 //单行注释 /* */多行注释 利用注释进行简单的调试 严格区分大小写. 每一条语句以分号结尾.如果不写分号,浏览器会自动添加,但是会消耗一些系统资源,甚至有些时候浏览器会加错分号. 会忽 ...
- java字面量和符号引用_java中字面量,常量和变量之间的区别(附:Integer缓存机制)...
一.引子 在各种教科书和博客中这三者经常被引用,今天复习到内存区域,想起常量池中就是存着字面量和符号引用,其实这三者并不是只在java中才有,各个语言中都有类似的定义,所以做一下总结,以示区分. 二. ...
- java字面量和符号引用_java -- JVM的符号引用和直接引用
在JVM中类加载过程中,在解析阶段,Java虚拟机会把类的二级制数据中的符号引用替换为直接引用. 1.符号引用(Symbolic References): 符号引用以一组符号来描述所引用的目标,符号可 ...
- java字面量 方法区_(一)java的内存模型
程序计数器(私有) 程序计数器:"是一个非常小的内存空间,用来保证程序依次执行",它可以看作是当前线程所执行的字节码的行号指示器 由于java虚拟机的多线程是通过线程轮流切换并分配 ...
- java字面量和符号引用_JVM中的直接引用和符号引用
在JVM中,类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:加载.验证.准备.解析.初始化.使用和卸载7个阶段.而解析阶段即是虚拟机将常量池内的符号引用替换为直接引用的过程. ...
最新文章
- 一位职场老鸟的 10 年复盘,帮你避坑不吃亏!
- fastd 3.0 开发的那些事
- 洛谷 P 1387 最大正方形
- 白话Elasticsearch14-深度探秘搜索技术之基于multi_match 使用most_fields策略进行cross-fields search弊端
- Linux 初始化之 Systemd机制
- 13-3 14 NFS
- python表单填写_Python3.4 splinter(模拟填写表单)使用方法
- 渗透测试入门20之渗透测试七阶段
- 多容器,Nginx容器灵活切换PHP版本!同时运行多个PHP容器
- excel最常用的八个函数
- 解决最新版chrome不能安装IDM插件IDMGCExt.crx的问题
- 9、共射放大电路的失真与共射放大电路的阻抗与密勒效应
- django @csrf_exempt
- 手持PDA连接无线网络后下载安装程序
- 关于thinkphp写入缓存失败的原因
- using werkzeug to build a shorly url app
- Android Camera开发:给摄像头预览界面加个ZoomBar(附完整代码下载)
- jpa查询表的部分字段
- linux安装ssh命令失败,Linux常见错误_SSH:Ubuntu16.4配置SSH常见问题及解决办法-Go语言中文社区...
- 12个低代码开源项目(转载)
热门文章
- 指数基金系列(一)-开篇(2019-12-19 迁移到雪球更新)
- matlab 2ask解调程序,2ask调制解调系统matlab源程序.doc
- Linux 中 4 款炫酷的终端应用程序
- gitHub客户端Desktop的安装使用总结 ---基础篇
- TC申请是否需要银行转账记录?
- SuperMap大数据GIS技术白皮书 v2.1
- RGB和RGBA之间的转换 (实用、赞)
- 关于Quartus ii 在计算机从有线网切换到无线状态下出现的问题
- pytorch自带网络_群友原创:万字长文入门 Pytorch 深度学习框架
- 汽车理论matlab编程题,汽车理论1.3及2.7matlab编程答案.doc