JAVA自学基础知识巩固-八大基础数据类型(第六课)

简介: JAVA自学基础知识巩固-八大基础数据类型(第六课)

image.png

目录

标识符

为什么标识符命名时不推荐使用中文或者拼音的呢?

关键字

转义符

数据类型

常量和变量

思考讨论

小结

 文章开始前,先问大家一个问题,你觉得什么方式能够让你更快接受、学习一门新的语言?


 首先我们知道语言的目的在于让人能够和特定的对象进行交流,向特定对象传达我们想要表达的意思并得到响应,而程序语言的交流对象是计算机,通过它告诉计算机我们想要做什么,它应该怎么做。


 博主认为:让一个初学者更快接受一门新的语言的方式就是新语言要有和初学者生活中相贴切的特点,回想我们从小学(初中)就开始学习英语,为什么大部分人还是无法很好掌握和使用英语呢?


 很大程度上就是英语有自己全新的一套规则,从语法和词汇都跟汉语不一样,而汉语从出生那一刻就开始伴随着我们,我们在潜移默化中已经习惯了使用汉语的思维方式去了解新的东西,这个思维让我们很难去重新再学习、接纳另一套不同规则的语言(当然,如果有人能够出一个将英语的思维转成汉语的思维,相信会让学习英语的难度有一定程度降低)。


 回归正题,如果我们想要学好JAVA语言,那么最好的方式就是找出JAVA语言和汉语之间的关联,使用类比的思想去学习,这样能够最小程度地去更快接纳和学习JAVA语言中的特点。


标识符

 在汉语中我们都通过名字来标识自己是谁如张三、李四,在JAVA中也有相类似的该概念,我们把它叫做“标识符”,它的作用就是用来标识类名、变量名、方法名等,跟我们的名字命名一样,它也有一些规则,而不能胡乱定义。


 1、标识符只能由数字、JAVA字母、下划线和美元符号组成,长度不受限制(简短能表达语义就行,太长的话不但不好记也不好看)


 2、标识符的首字母不能是数字(目的是为了制作编辑器的方便,试想一下,如果允许首字母是数字,那就会出现类似这样的定义:int 123 = 321,这个如何让JAVA虚拟机去解释执行)


 3、标识符不能是语言中的关键字(就像我们平常申请商标名称一样,有一些国家需要使用的关键字是不允许申请的,具体的关键字下面介绍)


 4、标识符不能是true、false、null


 5、标识符是区分大小写的,因此标识符name和标识符Name是两个不同的标识符。


 介绍完标识符的命名规范后,我们来实际定义一个标识符吧!比如我想要定义一个人的名称,用标识符表示则可以定义成username,简短且有语言,很不错吧。


 既然定义标识符的名称有这么多规则,那么是否有一些在定义标识符好的建议呢?答案是肯定的,我们在定义时有以下的一些建议,但不是强制要求。


 1、标识符的名称应该尽量不要太长,能够表达语义,能够表达出这个标识符的作用(如:你想定义性别的含义,标识符就可以写成sex)


 2、推荐标识符以小写字母开头,如果名称有多个单词组成时,使用驼峰命名法(即除了第一个单词首字母小写外,其他的单词首字母都大写,看起来像驼峰一样,由此得名,需要注意的是,有一个例外的是在定义类、接口的名称时,推荐首字母大写)


 3、不要使用中文或者拼音命名,上面第一点提到JAVA只能由数字、JAVA字母、下划线和美元符号组成,这里的的JAVA字母并不单纯只指英文字母,它的意思是Unicode字符集中包含的字符,其中也包括一些中文汉字,但是命名的时候并不推荐使用中文命名

image.png

为什么标识符命名时不推荐使用中文或者拼音的呢?

第一有局限性,编程语言是由国外先普及,很多语言、框架的设计都是使用英文的方式,英语作为全球使用最广泛的语言,有着先天优势,使用中文或者拼音命名需要有汉语基础的人才能够读懂,不利于全球性传播(博主也希望有一定中文语言真的能够流行起来,大家也值得为之努力)。


第二可读性不太高,比如一个变量的属性命名为中文,如果需要定义它的get/set方法就会看起来很奇诡。如字段为private String 姓名;则它的get/set方法public String get姓名/set姓名(…)。


出现乱码的概率更高。因为许多字符集不能完全支持中文,所以使用中文命名在不同的编码方式下会比英文出现乱码的概率更高。


很难统一,因为中文博大精深,一个意思能够使用多种不同的词语来表达,每个人的理解又不一样,这样一份代码中可能相同的东西有多种表达,不利于管理。


关键字

 所谓关键字就是在JAVA中已经被赋予特殊含义的一些单词,这些被赋予特殊含义的单词不能在被作为自定义的标识符。 JAVA常见的50个关键词如下(按照字母顺序排序):


 abstract、assert、boolean、break、byte、case、catch、char、class、const、continue、default、do、double、else、enum、extends、final、finally、float、for、goto、if、implements、import、instanceof、int、interface、long、native、new、package、private、protected、public、return、short、static、strictfp、super、switch、synchronized、this、throw、throws、transient、try、void、volatile、while。


转义符

 在JAVA中,定义了一种特殊的字符常量,它们被称作转义符。转义符都是以反斜杠()为标志,配合其他的一些字符来表达特殊的含义。 如\n则表示换行、\b表示退格、\r表示回车、\t表示横向跳格(即制表符tab)


数据类型

 就如人类在自然界中运输物品是需要借助有容纳空间的外物来实现如箱子、袋子等,JAVA语言作为人类和计算机交流的方式也有相似的概念,在JAVA中这种“外物”也叫数据类型,主要的作用是用来对数据的运算和存储。


 在自然界中,我们可以通过经纬度坐标的方式能够精确地得知地球上的任意一个位置,在JAVA中这个"坐标"也叫作变量,它是表示一个数据存储在计算机空间的位置,将数据复制给变量,实际上就是将数据存储到对应对的内存空间,并且可以通过这个变量去访问到这些数据。


 我们可以简单地理解一个变量就是一个内存空间,数据就存储在变量对应的空间中,不同的数据需要存储的空间不同(就好比装一头大象可能需要一辆货车、装一条鱼只需要一个袋子),JAVA中使用数据类型来区分不同的数据,用以表示不同数据占用不同的空间。


image.png

在JAVA中,数据类型可以区分为两大类即:基本数据类型和引用数据类型。


 基本数据类型: 由程序语言在发行时就已经定义好的,值直接存储在内存中,它的空间大小是固定的,不会随着软硬件环境不同而改变。


 引用数据类型: 可以是开发者自由定义,也可以是由一个或者多个基本数据组成,它存储的是指向组成这个数据类型的数据地址,故也被称为引用类型。


 JAVA中,默认提供了8种基本数据类型即字节型、短整形、整形、长整型、浮点型、双精度浮点型、布尔型、字符型,它们的特点如下:

image.png

image.png

常量和变量

 在实际的程序开发中,我们会根据自己需求去申请实际的空间大小存储我们需要的数据(即定义数据类型),因此,我们需要有一个名称来标识和指向这个申请到的存储地址,这个名称分为常量和变量两种。


 常量: 一旦指定了数据值就不能再被修改的标识符。


 变量: 指定数值后数据值也可以被修改的标识符。


 在JAVA语言中,常量和变量都必须遵循先声明、后使用的原则,所以,在使用前必须指定常量或者变量的数据类型,作用如下:指定数据类型便于系统分配足够的空间大小,指定变量名称方便开发者和系统指向分配好的空间以及标识使用该名称。


 常量声明规范:final 数据类型 变量名1,变量名2…(常量声明时必须给定一个固定的值)。


 常量声明示例:final int CONST = 100;


 变量声明规范:数据类型 变量名1,变量名2…;


 常量声明示例:int number,number2;(可以同时声明多个变量,变量名之间用逗号隔开)


 注意事项: 在编码的习惯或者约定俗称中,常量名用大小字母表示,多个单词时用下划线连接如:NUMBER_NAME,变量名则遵循驼峰原则即首单词首字母用小写,其他单词首字母用大写入:numberName。


思考讨论

 文章结束前,预留一些问题与大家讨论:


你觉得在未来普遍使用中文编程的可能性有多大?它们的优缺点在哪里?为什么中文编程迟迟没有流行起来?


如果真的想推广中文编程,我们需要为此做哪些方面的努力?


小结

 文章介绍了JAVA标识符定义的命名规范、JAVA中的数据类型以及如何使用这种数据类型,掌握了这些知识,对日后编码习惯和编码进一步学习都直观重要。


 如果文章有帮助,请给作者关注、点赞、收藏、评论,让博主有动力创作更加优质的文章。


 跟博主重走JAVA学习之路,探索更多编程语言的谜题。打卡解疑地址: 重学社区


领取重学大礼包福利


300+JAVA经典编程案例

50G+学习视频教程

100+JAVA初阶、中阶、高阶电子书籍

1000+简历模板和汇报PPT模板(转正、年终等)


相关文章
|
7天前
|
Java 程序员 容器
Java中的变量和常量:数据的‘小盒子’和‘铁盒子’有啥不一样?
在Java中,变量是一个可以随时改变的数据容器,类似于一个可以反复打开的小盒子。定义变量时需指定数据类型和名称。例如:`int age = 25;` 表示定义一个整数类型的变量 `age`,初始值为25。 常量则是不可改变的数据容器,类似于一个锁死的铁盒子,定义时使用 `final` 关键字。例如:`final int MAX_SPEED = 120;` 表示定义一个名为 `MAX_SPEED` 的常量,值为120,且不能修改。 变量和常量的主要区别在于变量的数据可以随时修改,而常量的数据一旦确定就不能改变。常量主要用于防止意外修改、提高代码可读性和便于维护。
|
28天前
|
算法 Java 数据处理
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。
从HashSet到TreeSet,Java集合框架中的Set接口及其实现类以其“不重复性”要求,彻底改变了处理唯一性数据的方式。HashSet基于哈希表实现,提供高效的元素操作;TreeSet则通过红黑树实现元素的自然排序,适合需要有序访问的场景。本文通过示例代码详细介绍了两者的特性和应用场景。
37 6
|
26天前
|
存储 Java API
深入剖析Java Map:不只是存储数据,更是设计艺术的体现!
【10月更文挑战第17天】在Java编程中,Map是一种重要的数据结构,用于存储键值对,并展现了设计艺术的精髓。本文深入剖析了Map的设计原理和使用技巧,包括基本概念、设计艺术(如哈希表与红黑树的空间时间权衡)、以及使用技巧(如选择合适的实现类、避免空指针异常等),帮助读者更好地理解和应用Map。
80 3
|
8天前
|
存储 缓存 安全
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见
在 Java 编程中,创建临时文件用于存储临时数据或进行临时操作非常常见。本文介绍了使用 `File.createTempFile` 方法和自定义创建临时文件的两种方式,详细探讨了它们的使用场景和注意事项,包括数据缓存、文件上传下载和日志记录等。强调了清理临时文件、确保文件名唯一性和合理设置文件权限的重要性。
20 2
|
8天前
|
Java
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式
Java 8 引入的 Streams 功能强大,提供了一种简洁高效的处理数据集合的方式。本文介绍了 Streams 的基本概念和使用方法,包括创建 Streams、中间操作和终端操作,并通过多个案例详细解析了过滤、映射、归并、排序、分组和并行处理等操作,帮助读者更好地理解和掌握这一重要特性。
16 2
|
11天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
35 4
|
9天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
23 1
|
12天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
35 2
|
1月前
|
存储 SQL 小程序
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
这篇文章详细介绍了Java虚拟机(JVM)的运行时数据区域和JVM指令集,包括程序计数器、虚拟机栈、本地方法栈、直接内存、方法区和堆,以及栈帧的组成部分和执行流程。
31 2
JVM知识体系学习五:Java Runtime Data Area and JVM Instruction (java运行时数据区域和java指令(大约200多条,这里就将一些简单的指令和学习))
|
18天前
|
SQL Java OLAP
java实现“数据平滑升级”
java实现“数据平滑升级”
36 2