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的变量、常量、变量的类型及使用规则的更多相关文章

  1. Java 学习笔记 (三) Java 日期类型

    以下内容摘自:  https://www.cnblogs.com/crazylqy/p/4172324.html import java.sql.Timestamp; import java.text ...

  2. Java基础学习笔记三 Java基础语法

    Scanner类 Scanner类属于引用数据类型,先了解下引用数据类型. 引用数据类型的使用 与定义基本数据类型变量不同,引用数据类型的变量定义及赋值有一个相对固定的步骤或格式. 数据类型 变量名 ...

  3. [java学习笔记]JDK的安装和环境变量的配置

    1.JDK的下载和安装 jdk(java development kit)是java提供给我们的一套java开发工具,它必运行在JVM(java虚拟机)上,java语言的跨平台性就是利用java运行在 ...

  4. Java学习笔记--堆、栈、常量池

    参考资料:http://blog.csdn.net/miraclestar/article/details/6039743 Java内存区域模型主要分为4部分 1.方法区 2.本地方法栈 3.栈 4. ...

  5. Java学习笔记三十:Java小项目之租车系统

    Java小项目之租车系统 一:项目背景介绍: 根据所学知识,编写一个控制台版的“呱呱租车系统” 功能: 1.展示所有可租车辆: 2.选择车型.租车量: 3.展示租车清单,包含:总金额.总载货量以及其车 ...

  6. Java 学习笔记(1)——java基础语法

    最近抽时间在学习Java,目前有了一点心得,在此记录下来. 由于我自己之前学过C/C++,而Java的语法与C/C++基本类似,所以这一系列文章我并不想从基础一点点的写,我想根据我已有的C/C++经验 ...

  7. java 学习笔记1 java语言概述及开发环境

    高级语言运行机制 高级语言按程序的执行方式分为编译型和解释型两种. java语言比较特殊,Java程序的执行必须经过先编译后解释的步骤. 1 编译生成字节码,只面向JVM(.class) 2Jvm执行 ...

  8. 8.4(Java学习笔记)java脚本引擎(Rhino)

    一.java脚本引擎 java脚本引擎是沟通java和脚本语句之间的桥梁,可以通过对应的脚本引擎在java中调用各种脚本语言. 二.脚本引擎执行脚本代码 ScriptEngineManager:为Sc ...

  9. Java 学习笔记(4)——java 常见类

    上次提前说了java中的面向对象,主要是为了使用这些常见类做打算,毕竟Java中一切都是对象,要使用一些系统提供的功能必须得通过类对象调用方法.其实Java相比于C来说强大的另一个原因是Java中提供 ...

随机推荐

  1. js 时间特效

    http://example.com:1234/test.htm#part2:Hash的作用. http://www.cnblogs.com/Interkey/p/RunAsAdmin.html

  2. ant用法

    下载ant包,解压版,解压到某目录后配置环境变量即可,这里不在赘述.配置成功cmd ant-version,显示ant版本即OK.           ant是Apache的跨平台的构建工具,他可以实 ...

  3. Blob, Uint8Aray, atob/btoa in lt IE9 browser

    Blob, Uint8Aray, atob/btoa in lt IE9 browser 标签(空格分隔): compatibility 之前写的代码全部在Chrome调试,用IE打开发现各种问题. ...

  4. php调用含有命名空间的类

    现有a.php 和 b.php在同一个目录下 a.php中 namespace myspace; class A{ __construct(){} .... } b.php中调用类A require_ ...

  5. JavaMelody监控spring、struts

    前言 前面讲过了Javamelody的基本配置,如何使用Javamelody来监控JDBC以及SQL. 这里继续讲解一下如何监控struts和spring. 手码不易,转载请注明:xingoo 由于s ...

  6. May 09th 2017 Week 19th Tuesday

    Everything you see exists together in a delicate balance. 世上所有的生命都在微妙的平衡中生存. A delicate balance? Can ...

  7. 如何在SAP CRM里创建和消费Web service

    Created by Wang, Jerry, last modified on Dec 19, 2014 The following steps demonstrates how to expose ...

  8. 高效实时的网络会议数据传输库—UDT

    在视频会议系统的研发当中,我们的音.视频数据必须要有相应的可靠性作为保障,因为视频会议系统是一个实时性非常强的系统,如果其数据在网络不太好的情况下,有可能会出现丢包.数据延迟.数据堵塞等现象,出现这些 ...

  9. NEUACM1132: Renew MST Quickly 增量最小生成树

    题目链接:http://acm.neu.edu.cn/hustoj/problem.php?id=1132 和UVa11354很类似 题意: 原先有一棵树,每次加一条边,看最小生成树大小: 这个和增量 ...

  10. POJ 1416 Shredding Company【dfs入门】

    题目传送门:http://poj.org/problem?id=1416 Shredding Company Time Limit: 1000MS   Memory Limit: 10000K Tot ...