Java学习笔记三:Java的变量、常量、变量的类型及使用规则
Java的变量、常量、变量的类型及使用规则
每一种语言都有一些具有特殊用途的词,Java也不例外,它们被称为关键字。关键字对 Java 的编译器有着特殊的意义。
一:Java中的关键字;

注:Java的关键字是区分大小写的
二:Java中的标识符;
标识符是给Java程序中的变量、类、方法等命名的符号,是用户编程时使用的名字如下图所示

使用标识符,需要遵守以下几条规则;
1. 标识符可以由字母、数字、下划线’_‘、美元符 ‘$’ 组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123test 就是不合法的。
2. 标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用 void 作为标识符,但是 Myvoid 可以
3. 标识符是严格区分大小写的。 所以,一定要分清楚 name 和 Name 是两个不同的标识符!
4. 标识符的命名最好能反映出其作用,做到见名知意。如:数学分数mathScores。
三:Java中的变量;
所谓变量,可以简单的理解为它就是一个盒子,可以将手机,硬币,橡皮等东西存放在这个盒子里,也可以在需要的时候将里面的东西换成我们需要的东西。
在Java中,我们通过三个元素描述变量:变量类型,变量名以及变量值。
如果我们把变量比作是酒店的房间,要存储的数据就好比要住宿的客人,我们可以根据客人的要求安排其入住“标准间”或者是“总统套房”,并且可以根据房间名字快速查找到入住客人的信息。同理,在 Java 程序中,我们也可以根据所需要保存的数据的格式,将其保存在指定类型的变量空间中,并且通过变量名快速定位!

例如,我定义了一个变量fruit,用来保存一个字符串 “apple” , 在程序中只要找到了 fruit 这个变量,就能找到存储在里面的 ”apple”!当然,我们也可以把 fruit 里面的值更换成新的字符串 “i love apple” !
程序代码:

代码如下:
public class HelloWorld {
public static void main(String []args) {
String fruit="apple";
System.out.println("变量fruit的值是:"+fruit);
fruit="i love apple";
System.out.println("重新赋值后fruit的值为:"+fruit);
}
}
运行结果为:

注:Java 中的标点符号是英文的,用中文会出现错误。
四:Java中的数据类型;
Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型。(当然不是所有语言都需要指定类型,学过PHP的都知道变量在创立的时候是不需要指定类型的)Java 中有两类数据类型:

详细的类型介绍我会在下一篇介绍,这里我们只介绍类型种类以及分类
在 Java 中,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应。
常用的基本数据类型有:

String 是一种常见的引用数据类型,用来表示字符串。在程序开发中,很多操作都要使用字符串来完成,例如系统中的用户名、昵称、电子邮箱等。
五:Java中的变量的使用规则;
1、Java 中的变量需要先声明后使用;

这里我们注释掉了变量的声明语句,出现错误
2、变量使用时,可以声明变量的同时进行初始化;

也可以先声明后赋值;

3、变量中每次只能赋一个值,但可以修改多次;

程序报错,变量中只能赋一个值。
4、main 方法中定义的变量必须先赋值,然后才能输出;

5、虽然语法中没有提示错误,但在实际开发中,变量名不建议使用中文,容易产生安全隐患,譬如后期跨平台操作时出现乱码等;

虽然没有报错,但是依然给出了警告:The value of the local variable 水果 is not used
六:Java中的自动类型转换;
在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如:、

运行结果为;

代码中 int 型变量 score1可以直接为 double 型变量 score1 完成赋值操作,运行结果为: 90.0
这种转换称为自动类型转换。
自动类型转换也是需要满足特定的条件的:
1. 目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型

2. 目标类型大于源类型,如int类型长度为4个字节,而double类型长度为8个字节,所以double类型的变量直接可以存放int类型的数据,但是int则不可以存放double的数据。

七:Java中的强制类型转换;
尽管自动类型转换是很方便的,但并不能满足所有的编程需要。
例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢?
显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小。此时就需要通过强制类型转换来实现了。
语法:(数据类型)数值;

运行结果:

可以看到,通过强制类型转换将 90.9 赋值给 int 型变量后,结果为 90,数值上并未进行四舍五入,而是直接将小数位截断。
所以吧,强制类型转换可能会造成数据的丢失哦,在应用时一定要慎重!
八:Java中的常量;
所谓常量,可以理解为是一种特殊的变量,它的值被设定后,在程序运行过程中不允许改变。
语法:final 常量名 = 值;

程序中使用常量可以提高代码的可维护性。例如,在项目开发时,我们需要指定用户的性别,此时可以定义一个常量 SEX,赋值为 "男",在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况。
常量名一般使用大写字符
Java学习笔记三:Java的变量、常量、变量的类型及使用规则的更多相关文章
- Java 学习笔记 (三) Java 日期类型
以下内容摘自: https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...
- Java基础学习笔记三 Java基础语法
Scanner类 Scanner类属于引用数据类型,先了解下引用数据类型. 引用数据类型的使用 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式. 数据类型 变量名 ...
- [java学习笔记]JDK的安装和环境变量的配置
1.JDK的下载和安装 jdk(java development kit)是java提供给我们的一套java开发工具,它必运行在JVM(java虚拟机)上,java语言的跨平台性就是利用java运行在 ...
- Java学习笔记--堆、栈、常量池
参考资料:http://blog.csdn.net/miraclestar/article/details/6039743 Java内存区域模型主要分为4部分 1.方法区 2.本地方法栈 3.栈 4. ...
- Java学习笔记三十:Java小项目之租车系统
Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...
- Java 学习笔记(1)——java基础语法
最近抽时间在学习Java,目前有了一点心得,在此记录下来. 由于我自己之前学过C/C++,而Java的语法与C/C++基本类似,所以这一系列文章我并不想从基础一点点的写,我想根据我已有的C/C++经验 ...
- java 学习笔记1 java语言概述及开发环境
高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...
- 8.4(Java学习笔记)java脚本引擎(Rhino)
一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...
- Java 学习笔记(4)——java 常见类
上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...
随机推荐
- 使用Unicode写文本文件:一个简单类的示例
参考了http://forums.codeguru.com/showthread.php?457106-Unicode-text-file示例. class WOFSTREAM : public st ...
- nginx下的nagios pnp4nagios
#Spawn-FCGI 一个通用的FastCGI管理服务器,它是lighttpd中的一部份,很多人都用Lighttpd的Spawn-FCGI进行FastCGI模式下的管理工作 #fcgiwrap(Si ...
- Android(java)学习笔记50:通过反射获取成员变量和成员方法并且使用
1. 反射获取成员变量并且使用: (1)获取字节码文件对象: Class c = Class.forName("cn.itcast_01.Person"); (2) ...
- 【UVA1309】Sudoku(DLX)
点此看题面 大致题意: 让你填完整一个\(16*16\)的数独. 解题思路 我们知道,数独问题显然可以用\(DLX\)解决. 考虑对于一个数独,它要满足的要求为:每个位置都必须有数,每一行都必须有全部 ...
- 【BZOJ4573】[ZJOI2016] 大森林(LCT)
点此看题面 大致题意: 有\(n\)棵树,初始各有\(1\)个编号为\(1\)的节点,且其为生长节点.\(3\)种操作:将\([l,r]\)区间内的树增加一个新的编号的节点,修改\([l,r]\)区间 ...
- [学习笔记] numpy次成分分析和PCA降维
存个代码,以后参考. numpy次成分分析和PCA降维 SVD分解做次成分分析 原图: 次成分复原图: 代码: import numpy as np from numpy import linalg ...
- JavaScript常见的内存泄漏原因
JavaScript 的垃圾收集机制 javascript具有自动垃圾收集机制,也就是说,执行环境会负责管理代码执行过程中的使用的内存.而在C和C++之类的语言中,开发人员的一项基本任务就是手动跟踪内 ...
- mysql五种日期函数
create table timess( id int primary key auto_increment, YEARs ——” DATEs DATE ——” TIMEs TIME ::——::” ...
- nineoldandroid 详细使用并且实现drawerlayout侧滑动画
nineoldandroid.view.ViewHelpe是一个为了兼容3.0以下的一个动画开源库 相关函数解读:(第一个参数都为动画对象,第二个为动画属性值的变化表达式) ViewHelper.se ...
- 使用classList来实现两个按钮样式的切换
classList属性的方法:add();remove();toggle(); 描述,在一些页面我们需要使用两个按钮来回切换,如图: 我们要使用到add()和remove()方法 html部分: &l ...