JAVA的变量和常量知识总结



一、认识java标识符

  标识符就是用于给 Java 程序中变量、类、方法等命名的符号。  

   

  

  使用标识符时,需要遵守几条规则:

  1.  标识符可以字母、数字、下划线(_)、美元符($)组成,但不能包含 @、%、空格等其它特殊字符,不能以数字开头。譬如:123name 就是不合法滴。

  2.  标识符不能是 Java 关键字和保留字( Java 预留的关键字,以后的升级版本中有可能作为关键字),但可以包含关键字和保留字。如:不可以使用void作为标识符,但是 Myvoid 可以

  3.  标识符是严格区分大小写的。 所以涅,一定要分清楚 imooc 和 IMooc 是两个不同的标识符哦!

   4.  标识符的命名最好能反映出其作用,做到见名知意。(这对编写大的程序有重大意义!)

  由此我们可以得出变量的命名规则(类、方法等命名类同)如下图所示:

  

  

  优秀码农的习惯:

  1、变量名由多单词组成时,第一个单词的首字母小写其后单词的首字母大写,俗称骆驼式命名法(也称驼峰命名法),如 myAge

  2、变量命名时,尽量简短且能清楚的表达变量的作用,做到见名知意。如:定义变量名 stuName 表示“学生姓名”信息。


二、Java中的数据类型  

  通常情况下,为了方便物品的存储,我们会规定每个盒子可以存放的物品种类,就好比在“放臭袜子的盒子”里我们是不会放“面包”的!同理,变量的存储也讲究“分门别类”!

  Java 语言是一种强类型语言。通俗点说就是,在 Java 中存储的数据都是有类型的,而且必须在编译时就确定其类型。 Java 中有两类数据类型:

  

  

  其中,基本数据类型变量存的是数据本身,而引用类型变量存的是保存数据的空间地址。说白了,基本数据类型变量里存储的是直接放在抽屉里的东西,而引用数据类型变量里存储的是这个抽屉的钥匙,钥匙和抽屉一一对应,可以通过钥匙找到抽屉里的东西(也是说使用引用数据类型的变量来找到相应的基本数据类型变量的数据本身)。  

  常用的基本数据类型有:

  

  补充:关于 float 型和 double 型的区别,以及 char 型和 String 型的不同,在后续的文章将会给大家总结,请时刻关注哦~


三、Java中变量的使用规则

  不得不接受的变量小脾气

  1、Java 中的变量需要先声明后使用

   

  2、变量使用时,可以声明变量的同时进行初始化

  

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

  4、main 方法中定义的变量必须先赋值,然后才能使用。

  

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


四、Java中的自动类型转换

  在 Java 程序中,不同的基本数据类型的数据之间经常需要进行相互转换。例如:

  

  代码中 int 型变量 score1 可以直接为 double 型变量 score2 完成赋值操作,运行结果为: 82.0 

  这种转换称为自动类型转换(还有一种叫做强制类型转换,后续会讲,自动类型转换是编译器自动帮助我们完成的)

  当然自动类型转换是需要满足特定的条件的: 

  1.  目标类型能与源类型兼容,如 double 型兼容 int 型,但是 char 型不能兼容 int 型。(一个是数值型一个是字符型)

  

  2.  目标类型大于源类型,如 double 类型长度为 8 字节, int 类型为 4 字节,因此 double 类型的变量里直接可以存放 int 类型的数据,但反过来就不可以了!这理解起来也很简单,一个大篮子不能放到小篮子里,但是大篮子可以兼容小篮子。

  ps:自动类型转换在实际开发中使用不高,因为面对复杂的算法时,类型转换不能自控,我们比较常用的是强制类型转换。


五、Java中的强制类型转换

  相信小伙伴们也发现了,尽管自动类型转换是很方便的,但并不能满足所有的编程需要。

  例如,当程序中需要将 double 型变量的值赋给一个 int 型变量,该如何实现呢?

  显然,这种转换是不会自动进行的!因为 int 型的存储范围比 double 型的小。此时就需要通过强制类型转换来实现了。

                   语法:( 数据类型 ) 数值

  下面是个具体的例子:

  

  运行结果:

  

 可以看到,通过强制类型转换将 75.8 赋值给 int 型变量后,结果为 75,数值上并未进行四舍五入,而是直接将小数位截断

 因此,强制类型转换可能会造成数据的丢失哦,小伙伴们在应用时一定要慎重哦!

 小技巧:如果对强制转换后的数值不确定,可以通过输出函数来测试强制转换后的数值是否符合预期哦(这技巧不止用在这里,调式程序时输出函数都是很简便的方法)


六、Java常量的应用

  所谓常量,我们可以理解为是一种特殊的变量,它的值被设定后,在程序运行过程中不允许改变

                语法:final 常量名 = 值;

  

  

  程序中使用常量可以提高代码的可维护性。例如,在项目开发时,我们需要指定用户的性别,此时可以定义一个常量 SEX,赋值为 "男",在需要指定用户性别的地方直接调用此常量即可,避免了由于用户的不规范赋值导致程序出错的情况。

  伙计们注意啦:常量名一般使用大写字符。


七、如何在Java中使用注释

  在编写程序时,经常需要添加一些注释,用以描述某段代码的作用。

  一般来说,对于一份规范的程序源代码而言,注释应该占到源代码的 1/3 以上。因此,注释是程序源代码的重要组成部分,一定要加以重视哦!

  Java 中注释有三种类型:单行注释、多行注释、文档注释

    

  

PS:使用文档注释时还可以使用 javadoc 标记,生成更详细的文档信息:

@author 标明开发该类模块的作者

@version 标明该类模块的版本

@see 参考转向,也就是相关主题

@param 对方法中某参数的说明

@return 对方法返回值的说明

@exception 对方法可能抛出的异常进行说明


注释:此篇文章是本人根据慕课网上的java课程进行的总结,有兴趣的小伙伴可以自己去慕课网进行视频学习和在线编程,能更快更好地理解知识点哦~欢迎小伙伴随时来查阅知识点φ(>ω<*)

JAVA基础——变量和常量的更多相关文章

  1. JAVA基础——变量、常量

    变量 java中,变量时最基本的存储单元,其要素包括变量名,变量类型和作用域. 注意事项: 每个变量都有类型,类型可以是基本类型,也可以是引用类型. 变量名必须是合法的标识符 变量声明时一条完整的语句 ...

  2. Java基础——变量与常量及命名规范

    变量 ()  public class Demon04{     //类变量 static     static double salary=2500;     //属性: 变量 ​     //实例 ...

  3. JAVA 基础基本语法---常量与变量

    JAVA 基础基本语法---常量与变量 语法:计算机能够识别的语言的规则: 0. 基本语法 编写Java程序时,应注意以下几点: 大小写敏感:Java是大小写敏感的,这就意味着标识符Hello与hel ...

  4. Java基础-变量的定义以及作用域详解

    Java基础-变量的定义以及作用域详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.字面量 常量(字面量)表示不能改变的数值(程序中直接出现的值).字面量有时也称为直接量,包 ...

  5. [.net 面向对象编程基础] (5) 基础中的基础——变量和常量

    [.net面向对象编程基础]  (5) 基础中的基础——变量和常量 1.常量:在编译时其值能够确定,并且程序运行过程中值不发生变化的量. 通俗来说,就是定义一个不能改变值的量.既然不能变动值,那就必须 ...

  6. Java学习笔记三:Java的变量、常量、变量的类型及使用规则

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

  7. Java基础-变量常量

    变量 内存中的一小块区域,需要变量名来访问 变量的命名: 变量类型 变量名=变量值 例:String stuName= "wangwei"; java中的所有标点符号都是英文的 变 ...

  8. Java 基础 变量和运算符

    Java基础语法   第1章 变量 1.1 变量概述 1.2 计算机存储单元 1.3 基本类型之4类8种 1.4 常量与类型 1.5 定义变量(创建变量) 1.6 变量使用的注意事项 1.7 数据类型 ...

  9. Java 静态变量,常量和方法

    static 关键字 例如:在球类中使用PI这个常量,可能除了本类需要这个常量之外,在另外一个圆类中也需要使用这个常量.这时没有必要 在两个类中同时创建PI这个常量,因为这样系统会将这两个不在同一个类 ...

随机推荐

  1. 【WPF】学习笔记(三)——这个家伙跟电子签名板有个约定

    这篇博客依旧是以电子签名板为基础而展开的,主要是对前文([WPF]学习笔记(一)--做一个简单的电子签名板)存在的部分问题进行解释,以及部分小功能的添加.由于这篇博客是建立在学习笔记一的基础上的,所以 ...

  2. .Net程序员学用Oracle系列(25):触发器详解

    1.触发器理论 1.1.触发器的应用场景 1.2.触发器的类型 1.3.DML 触发器的触发顺序 2.触发器实战 2.1.创建触发器 2.1.1.创建 DML 触发器 2.1.2.创建 DDL 触发器 ...

  3. 「CODVES 1922 」骑士共存问题(二分图的最大独立集|网络流)&dinic

    首先是题目链接  http://codevs.cn/problem/1922/ 结果发现题目没图(心情复杂 然后去网上扒了一张图 大概就是这样了. 如果把每个点和它可以攻击的点连一条边,那问题就变成了 ...

  4. How to get the file in a resource folder

    In a Maven project, we may often struggle to get a certain file (e.g. json file or sql file). Here i ...

  5. 简易数据加密传输电路(VHDL)(原创)

    LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.std_logic_unsigned.ALL; ENTITY KEKE IS --定义实体wsj ...

  6. hadoop 2.7.3 集群安装

    三台虚拟机,centos6.5 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 :: loca ...

  7. 一天搞定HTML----列表标签03

    1.细说列表标签 2.代码演示 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"&g ...

  8. Python3.6_x86通过FFpmeg获取视频或音频的时长和分辨率

    前言 前段时间公司在做流媒体服务,与许多厂家合作拿了许多视频过来,现在要对这些视频文件进行整理,通过特殊的编码排列,获取他们的时长以及分辨率,这里我遇到一个大坑,请往下面看. # -*- coding ...

  9. 小白审计JACKSON反序列化漏洞

    1. JACKSON漏洞解析 poc代码:main.java import com.fasterxml.jackson.databind.ObjectMapper; import com.sun.or ...

  10. 在WIN SERVER 2016上安装DOCKER(带过坑)

    目录 1    概要    1 1.1    主要优势    1 2    在Windows Server上部署Docker    2 概要 博客使用Word发博,发布后,排版会出现很多问题,敬请谅解 ...