| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> Java基础语法 - Java数据类型 -> 正文阅读 |
|
[Java知识库]Java基础语法 - Java数据类型 |
数据类型🍎前言
所有的数据类型,都是围绕着变量来阐述的,没有变量,谈论数据类型则是没有意义的,接下来我们先介绍变量的概念。 🍦变量在计算机语言中,存在常量和变量的概念。 🐱?🚀常量在Java中,常量分为两种:
一般的字面常量有:
如:
常量是存放在常量区的,但以上两种不同常量也存在区别:
在编译时,字面常量会被翻译成字节码存放在字节码文件(.class文件)中。
会在堆栈中创建栈帧,为其分配空间,但也是在编译时就确定其值。 🚲变量变量分为:
而成员变量分为:
普通成员变量的定义介于类和方法之间,例:
这里的变量a就是普通成员变量。
静态成员变量就是用static修饰的变量,例如。
🌳生命周期及作用域在Java中,同样存在变量的生命周期及作用域,这两个概念和C语言中相似,这里便不过多介绍,只需要注意变量的作用域在代码块( { } )内即可。 如:
这里变量a的定义和赋值没有任何问题,但变量b就会报错,因为对b进行赋值的时候,他已经出了所处的代码块( { } )内,该变量已被销毁。 🚆变量的命名规则变量的命名规则有两个指标:
变量的命名和类的命名需要加以区别,类的命名我们习惯上使用大驼峰命名,比如本文中博主代码中常见的:
这里的DataType采用的就是大驼峰命名法,所有的英文单词首字母都要大写。 而变量的命名则需要采用小驼峰命名法。 小驼峰命名:
如:
或者:
在习惯上:final修饰的常量名用大写字母表示,变量名用小写字母表示 🤳数据类型Java提供了各种丰富的数据类型,以便不同变量可更加有效地存放数据。 数据类型又分为两大块:
但引用类型涉及面不同,例如数组,字符串,接口等等,每一个博主都可以专门出一篇文章详细介绍,所以这里就不过多赘述,本文只将基本数据类型详细介绍即可。 🥪基本数据类型。数据类型如下:
接下来逐一介绍。 布尔数据类型(boolean) 在Java中有布尔类型,其返回值只能是true/false,并且因为Java是强类型语言,所以和C语言不同,不存在0表示假,非0表示真这种说法。 所以下面这种写法就是坚决错误的。
这种写法编译器会给报错。
就像上面说的,不仅仅是while循环,类似的,if语句的判断表达式也只能是布尔表达式。 并且,boolean类型是无法与其他类型之间相互转换的,不论是强制类型转换还是自动转换,都无法做到! 字节数据类型(byte) 在Java中新增了一个byte类型,其大小为1个字节,可以存放-128~127之间及其所对Unicode码字符的数据。 如果所存放的数据超过其范围,将会发生报错,如:
因为编译器认为128超过了byte的取值范围,所以认为他是int类型的数据,而Java是强类型语言,就直接报错了,如果是C语言这样的弱类型语言可能只会给个警告哦~ 注意: 很多初学者会将字节类型和字符类型混为一谈,他们二者没有任何联系哦~只是简单的将一个字节大小内的数据类型叫做字节类型而已 ~ ~ 字符数据类型(char) 在Java中的字符数据类型区别于C语言中的字符类型,在C语言中的字符类型只占1个字节,类似于Java中的字节类型,但在Java中的字符类型被扩展为-256~255,也就是**占两个字节 并且Java中是支持中文的,例如:
中文占空间大小为两个字节,当然,我们自己写代码的时候除非特殊需要的情况,尽量避免这样赋值。 加一个题外话,在Java中,甚至可以将中文作为变量名!!! 如:
运行结果为:
回归正题,char类型赋值的数字将会被转换为字符,我们在学习C语言的时候知道,是按照ASCII码对应,但Java中不是ASCII码,而是将其进行扩展,扩展到255个数字对应字符,称为,Unicode码。 短整型数据类型(short) 短整型数据类型同样也是占2个字节,其存取范围为:-32768~32767,但这个数据类型并不常用,其范围较小,可能造成越界等等问题,所以一般情况下我们选择使用int数据类型。 简单举个小例子演示一下短整型的用法。
整形数据类型(int) int型数据类型,也就是整型数据类型,是我们写代码中最常见的一种数据类型。 但在这里需要着重讲一下,到底什么叫做Java是强类型语言。 我们知道,在C语言中,某些编译器底下会认为,32位平台机器下的int类型是占两个字节的,而64位平台机器下int类型是占4个字节的。 而Java作为强类型语言,就不存在这种模棱两可的情况,不管是在多少位的平台下,int类型永远都是4个字节。 而4个字节的范围是:-231 -> 231-1,也就是大概 -21亿~21亿。 这个范围足够大,所以我们定义整型变量时大多使用int类型。 如果有小伙伴不放心博主说的范围,可以通过代码的方式在编译器下确认:
这两行代码可以分别打印出int类型的最大值和最小值。 这里的Integer是int类型的包装类,所有的基本数据类型都有自己的包装类,在包装类中存在很多属于他们自己的一些方法,可以通过上面代码的形式进行调用。 单精度浮点型数据类型(float) 单精度浮点型变量 - float 占4个字节大小,具体数值范围可参考int类型数据变量。 基本用法:
如果不加上这个f,编译器则会直接报错,因为认为我们将一个双精度数据存放进一个单精度变量中,这是非法的~ 示例:
报错结果: 单精度浮点型数据的存取规则符合IEEE标准,详细可以看博主之前的博文:【数据类型存储原理】数据的存储 - 深度剖析数据在内存中的存储 在本文中博主详细整理了数据存储的有关知识。 长整型数据类型(long) 在生活中,总存在一些我们希望特别大的数值,比如薪水哈哈哈哈,那当然是多多益善,那如果这个值太大,超过了int类型怎么办? 所以Java中还有一种数据类型叫做长整型数据类型,所占空间大小位8个字节,这里需要再次强调,Java是强类型语言,所以不存在32位机器long类型占4个字节,64位机器占8个字节的说法,不论在多少位平台机器下,long类型数据永远都是占8个字节。 long类型用法:
那么在Java的long类型下,我们的薪水上限到底是多少呢~ 下面通过编译器帮我们计算一下。
双精度浮点型数据类型(double) double类型同样是不论在多少位的平台下,都是8个字节,这里展示一下8个字节的大小~
运行结果: 原因是用int类型进行计算,得到的结果也只能是int类型的,所以小数点后面的位直接被舍去了~(不是四舍五入哦 ~)
运行结果:
答案是否定的,因为Java规定了双精度浮点型只能精确到小数点后15位,所以小数点后15位之后的数据,并不能保证其准确性。 以上就是有关于Java当中8中基本数据类型的详解~ 如果有什么问题欢迎评论区留言或者私聊博主嗷~~ 💕字符串类型。
其实我们在main函数中就可以看的出来。
main函数的参数中就有一个字符串类型的字符数组,其数组名位args,这里可以看到,Java中对数组的命名习惯和C语言不同。 C语言中习惯先写数组名,后写中括号,而Java中正好相反,先写中括号,再写数组名。 数组相关的知识博主将会在本专栏后期给大家专门出一期博文分享~ 🔨转义字符在Java中常用到的转义字符不多,列出以下几个:
转移字符只需记住其用法即可。 给出以下几个例子:
运行结果: 🍚类型转换Java中的类型转换分为两种:
在了解这两种类型转换之前,应该先明白为什么要有类型转换。 🤢为什么要有类型转换我们知道,Java是一门强类型的语言,所以绝不允许在数据类型上出现差池。 例如:
这种做法在Java当中是绝对不会允许的,但有的时候我们又不得不将某一些数据存放到不同的数据类型中,于是就出现了类型转换的概念。 总结一下: 出现数据类型转换的原因是为了防止将高精度数据存放进低精度变量时发生精度丢失,而如果将低精度的数据存放进高精度变量中则可以正常运行。 如:
🦝算数类型转换(数值提升)算数类型转换,顾名思义,就是在计算中自动进行的类型转换,比如:
这就是算数类型转换。 进行算数类型转换的原因其实是为了提高运算效率,一般都是低精度类型转为高精度类型,整型数据转为浮点型数据类型。 🥛强制类型转换强制类型转换是指我们将某一些不属于这个数据类型的数据,强行转换为该类型的数据,然后进行存储。 比如:
但是注意,强制类型转换虽然好用,但它会造成一定程度上的精度丢失,比如这里的变量a,它其实存储的只是3,小数点后面的数据将会发生截断丢失。
但是注意一点,布尔类型(boolean)是不能和其他类型进行计算的,哪怕经过强制转换也不可以,因为布尔类型属于逻辑的真假,而其他类型属于算数运算,怎么能把逻辑针灸啊和算数运算放在一起计算呢? 而且对于逻辑真假自己本身来说,也是无法进行计算的, 比如:
运行结果: 这里给出报错,说+这个操作符的操作数不对,因为+属于算数操作符,只能对算数类型的数据进行运算,而布尔类型只能通过逻辑运算符进行计算,其结果仍然是逻辑真和逻辑假。 本文并不是主要将运算符的文章,博主预计过两天在本专栏内补上运算符的文章,有需要的小伙伴可以关注一波该专栏哦~专栏更新新文不错过 ~ 🏆整型和字符串类型之间的小故事整型和字符串类型其实是两个八竿子打不到一块儿去的两个不同的类型,但他们之中可以产生两个有意思的东西。
🎨整型和字符串类型的相互转换在Java中,整型数据和字符串类型数据的转换是很容易实现的,只需要在各自的类中调用valueOf方法,即可转换其数据类型。 如:
运行结果:
运行结果: 😑整型和字符串类型的拼接在字符串中,"+"号表示字符串的拼接,例如:
运行结果: 而字符串也可以和整数完成拼接:
运行结果:
当然,也可以通过不适用整型变量的形式完成拼接, 如下:
运行结果: 以上两点就是整型和字符串类型之间撞出的小火花啦~ 🐱?🏍总结本文的知识点偏基础,但要着重区分Java中数据类型和C语言中的差别,不能混淆。 而本文的重点在于理解Java是一门强类型的计算机语言,允许低精度数据存放在高精度变量中,但绝不允许高精度数据存放在低精度数据中 ,为了避免报错,可以使用强制类型转换的方法,但要知道强制类型转换大概率会发生精度的丢失。 以上就是本文的全部内容,希望可以对大家有帮助。 最后期待一波各位的小手指动一动~给个三连走一波吧 ~ ~ 👍点赞👍 + 👀关注👀 + ??收藏?? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/23 22:20:48- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |