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. SpringAOP原理

    原理 AOP(Aspect Oriented Programming),也就是面向方面编程的技术.AOP基于IoC基础,是对OOP的有益补充.AOP将应用系统分为两部分,核心业务逻辑(Core bus ...

  2. Phaser类详解

    Phaser允许并发多阶段任务.Phaser类机制是在每一步结束的位置对线程进行同步,当所有的线程都完成了这一步,才允许执行下一步. 一个Phaser对象有两种状态: 活跃态(Active):当存在参 ...

  3. Day4-迭代器

    for循环的数据类型: 1.集合数据类型,如list列表,tuple元组,dict字典,set集合,str字符串等: 2.generator生成器,包括生成器和带yield的generator fun ...

  4. iOS 生成随机字符串 从指定字符串随机产生n个长度的新字符串

    随机字符串 - 生成指定长度的字符串 -(NSString *)randomStringWithLength:(NSInteger)len { NSString *letters = @"a ...

  5. swift学习 - 计时器

    swift学习之计时器 这个demo主要学习在swift中如何操作计时器(Timer),按钮(UIButton),文本(Label) 效果图: 代码 import UIKit class ViewCo ...

  6. C# 字典 Dictionary

    原文地址http://www.cnblogs.com/txw1958/archive/2012/11/07/csharp-dictionary.html  侵删

  7. 谈一谈Java8的函数式编程 (三) --几道关于流的练习题

    为什么要有练习题?    所谓学而不思则罔,思而不学则殆,在系列第一篇就表明我认为写博客,既是分享,也是自己的巩固,我深信"纸上得来终觉浅,绝知此事要躬行"的道理,因此之后的几篇博 ...

  8. c语言项目开发流程二部曲

    一.在第一部曲中我们介绍了电子词典项目开发的前5步,下面继续我们的步伐. 6.函数接口设计,这一步不是一蹴而就的,在项目进行中得不断修改,下面是我电子词典项目接口. /**************函数 ...

  9. Plotting trees from Random Forest models with ggraph

    Today, I want to show how I use Thomas Lin Pederson's awesome ggraph package to plot decision trees ...

  10. Centos7 最小系统安装Redis

    最近想写一个调度系统,一顿查资料之后决定用Django+Celery+Redis实现,前面两个都已经有了,就缺一个Redis,所以准备安装一个Redis 获取Centos7并配置网络 获取Centos ...