| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Java知识库 -> 02_星仔带你学Java之变量、常量、字面量、数据类型 -> 正文阅读 |
|
[Java知识库]02_星仔带你学Java之变量、常量、字面量、数据类型 |
?资料和代码存放地址:《华星详谈-学习中心》。开源项目持续更新中。
目录 2、假设有a b两个整形变量,交换他们的值,可以用下列代码中的: 6、System.out.println('a' + 1); 这个语句输出的是多少? 8、byte a = 125 是否会编译报错。并请说明原因。 一、字面量、常量、变量以及表达式1、字面量1.1 字面量概念我们平常说的字面量其实就是等价于字面值。字面量的官方定义:给基本类型变量赋值的方式就叫做字面量或者字面值。如Float f=120;、Int armor=10;等 解释:创建一个对象会用到new关键字,但是给一个基本数据类型变量赋值是不需要new关键字,基本类型的变量在java中是一种特别的内置数据类型,并非某个对象。 1.2 整数类型字面量整数字面量可以用四种类型来表示,如二进制、八进制、十进制、十六进制
1.3 浮点类型字面量
1.4 字符和字符串类型字面量
2、常量常量:程序中固定不变化的值。Java规范中常量的字段名称一般为全大写。 常量分类:
3、变量变量的定义表示一个存储空间。可用来存放某一类型的常量,变量没有固定值,并可以重复使用,也可以用来存储某种类型的未知数据。 变量在我们平常生活中也很常见,比如车牌、岗位、房间号等可以变化的内容。 变量的特点① 占据着内存中的某一块存储区域; ② 该区域有自己的名称(变量名)和类型(数据类型); ③ 可以被重复使用; ④ 该区域的数据可以在同一类型范围内不断变化; Java代码中变量的定义方式一:先定义变量,再赋值 ? 步骤一:定义数据类型? 变量名 ps:int a; ? 步骤二:变量名 = 值; a = 1; 方式二在声明时同时赋值(推荐使用) ? ????????数据类型? 变量名? =? 初始化值; eg: ????????int ????????a????????= ????????1; 注:格式是固定的,记住格式,以不变应万变。不推荐同时定义多个变量。 变量的分类、作用域、使用规则:变量的分类 随着变量定义在类中的位置不同,故把变量分成两大类: ? 成员变量:直接定义在类里的变量,又称为全局变量或字段。 ? 局部变量:变量除了成员变量之外,其他就是局部变量。根据定义的位置不同有3种表现形式:方法形参,方法内变量,代码块变量。 变量作用域 指变量的存在范围,只有在这个范围内,程序代码才能访问它。当一个变量被定义时,它的作用域就确定了: 作用域是定义开始到定义所在的花括号结束; 变量使用规则: 1.变量必须先声明,并且初始化后才能使用; 2.声明变量必须有数据类型 3.同一作用域内变量名不能重复定义,可重复赋值; 4、表达式表达式(expression):是由数字、运算符、数字分组符号(括号)、常量、变量等以能求得结果的有意义排列的组合。 用运算符号连接的变量/常量可称为表达式。那么也就是说表达式是由常量、变量、运算符、括号组成能求得值的有意义结果的语句。 如:
注意: 表达式中操作数进行运算得到的最终结果就是表达式的结果。 表达式的运算顺序大多和数学一样,可以参照接下来说的运算符操作优先级。 二、数据类型1、数据类型概念Java中的数据类型分为基本类型和引用类型两种,其中基本数据类型包括数值型(byte、short、int、long、float、double);字符型(char);布尔型(boolean)。引用类型包括类、接口、数组。 如下图所示: ? 2、基本数据类型Java中基本数据类型共分为八类,即byte、short、int、long、float、double、char、boolean。 其数据范围、占位、默认值如下:
注意:byte、short、int、long唯一的不同就是存储空间的容量大小不一样。我们平常在使用时根据具体需要存储的数据去选择合适的数据类型即可。当然,一般来说我们使用int即可。 整数类型(byte-short-int-long)byte、short、int、long类型都是属于整数类型。 整型常量的四种表示形式: ① 二进制整数:0B或0b开头(Java7的新特性),如:int a = 0B110; ② 八进制整数:要求以0开头,如 int a = 012; ③ 十进制整数:如:int a = 17; ④ 十六进制整数:要求0X或0x开头,如int a = 0x12; Java语言的整型常量默认是int型,声明long型变量后加上‘l’或‘L,因小写的l容易和数字1相混淆,建议使用大写L。 默认情况下,一个整型的字面量默认是int类型。 小数类型(float-double)float、double类型:表示小数类型又称为浮点类型,其中float表示单精度类型,double表示双精度类型,但是二者都不能表示精确的小数。 Java的浮点类型常量有两种表现形式:
科学计数法表达式返回的结果是double类型。 默认情况下,一个浮点类型的字面量默认是double类型.若要声明一个常量为float型,则需在常量后加上f或 F,double常量后面的D或d可省略。 注意:
字符类型(char)字符,字母和符号 char类型:表示16位的无符号整数或者Unicode字符,Java对字符采用Unicode字符编码。Unicode收集了世界上所有语言文字中的符号,是一种跨平台的编码方式。Java的字符占两个字节,可以表示一个汉字。 什么是编码? 计算机只能表示0和1两个数,于是人们做规定使用一个数字去表示一个特定的字符,比如a使用97表示。char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复。 char常量有3种表示形式: ① 直接使用单个字符来指定字符常量,格式如'◆'、'A','7'; ② 直接作为十进制整数数值使用,但是数据范围在[0,65535],格式如97,但是打印出来的值依然是ASCII码表对于的符号,如97打印出来是字符a。 ③ 和2一样,只不过表示的是16进制的数值,格式如'\uX',X表示16进制整数;如:97的16进制是61。那么表示为‘\u0061’打印出来也是a。 所以有人说char本质上也是整型,也是有道理的。 char前256个字符和ASCII(美国信息交互标准编码)码中的字符重复,可查表。 ? boolean类型通常用于逻辑运算和程序流程控制(条件选择/循环)。该类型的值只能是true 或 false,表示真或假。 不可以使用0或非0的整数来代替false和true,主要是用于区分于C语言。(其实在JVM中对boolean的处理也是用0表示false,非0表示true的。) false和true是boolean的常量。 3、引用数据类型除了8种基本数据类型,其他所有类型都是引用数据类型,包括类、接口、数组。引用数据类型默认初始值都是null。
最常用的引用类型String类型String是一个类,表示字符串(后面详讲),所谓字符串,就是一串字符,也就是N个字符连接在一起(N可以表示0或多个),好比羊肉串。 字符串都得使用 "" 括起来的,连接字符串使用 “+”符号。 字符串拼接:字符串和任意数据类型相连接,结果都是字符串类型。 String str2 = (String)17 + "ABC";//编译错误: 不可转换的类型。因为基本类型不能够直接强转为引用类型String。 三、基本数据类型转换在8大基本数据类型中,boolean不属于数值类型,不参与转换。一般的byte、short、char不需要我们参与转换操作,我们直接把byte、short、char直接付给int类型。其底层会通过隐式转换进行数据类型的转换。 转换规则其实就是各自数据类型的空间大小。如图所示 ? 我们可以把不同的数据类型看出是不同容量的容器 byte是1个字节,最多只能装1斤水. short是2个字节,最多只能装2斤水. 代码演示如下: 自动类型转换,也称为“隐式类型转换当把小数据范围类型的数值或变量赋给另一个大数据范围类型变量,系统可以完成自动类型转型。这好比把装一斤水容器里的水倒进可以装两斤水的容器里一样。 再次强调:boolean 类型是不可以转换为其他数据类型。 强制类型转换,也称为“显示类型转换”当把大范围类型的数值或变量赋给另一个小范围类型变量时,此时系统不能自动完成转换,需要加上强制转换符,但这样的操作可能造成数据精度的降低或溢出,所以使用时要格外注意。 这就好比把装两斤水容器里的水倒在可以装一斤水的容器里,是可能造成水溢出的。 注意:String和任意数据使用 + 连接起来,结果都是String(字符串)。 表达式类型的自动提升当一个算术表达式中包含多个基本数据类型(boolean除外)的值时,整个算术表达式的数据类型将在数据运算时出现类型自动提升, 其规则是:
我们可以一起来看下面的这个例子 ? double d1 = 123 + 1.1F + 99L + 3.14; ? 四、面试题1、以下变量定义哪个是错误的A:x = new Int(100) B:var x = 3.14; C:String line = "一个字符串变量"; D:float x;
2、假设有a b两个整形变量,交换他们的值,可以用下列代码中的:A:
B:
C:
D
3、以下变量定义,哪个是错误的A:string x = "1"; B:boolean flag = true; C:String name = "csdn"; D:String x;
4、下面哪个常量定义是错的?A:final int value = 100; B:public static final int value = 100; C:public final int value = 100; D:const int value = 100;
5、下面选项中,输出为 100 的是A:
B:
C:
D:
6、System.out.println('a' + 1); 这个语句输出的是多少?
7、以下代码的编译结果最终是多少?
8、byte a = 125 是否会编译报错。并请说明原因。这是符合强转类型转换条件的,可为什么没转呢?
9、判断以下表达式的结果类型:
|
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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/24 11:31:40- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |