最终类型=值;
为了更好的区分和表达,一般将1、2、3、'a'、'b'、true、false、""等称为文字常量,而用final修饰的PI称为符号常量。
2.4 使用键盘输入
为了让我们能够写出更复杂的程序,让我们的程序和用户通过键盘进行交互,我们首先学习简单的键盘输入和输出。
注意:
1).in代表键盘输入,.out代表控制台输出
2)输入=新(.in); 就是创建一个对象,后面会详细解释。 您可以在这里使用它。
3)导入需要通过java.util实现; 并且必须指定类的完整路径。
4) r = 输入.(); 从键盘输入类型编号并将其分配给半径变量 r。
2.5 数据类型
Java 是一种强类型语言,每个变量都必须声明其数据类型。 Java的数据类型可以分为两大类:基本数据类型(数据类型)和引用数据类型(数据类型)。
数据类型的分类
Java定义了3类和8种基本数据类型
防范措施
引用数据类型的大小统一为4字节,记录了引用对象的地址! q 本章仅解释基本数据类型。 参考数据类型将在后续的数组和面向对象章节中进行解释。
3. 八种基本数据类型 3.1 整数数据类型
整数类型用于表示没有小数部分的数值,并且允许负数。 整数的范围与运行Java代码的机器无关,这也是Java程序具有很强可移植性的原因之一。 相比之下,C 和 C++ 程序需要针对不同的处理器选择最高效的整数类型。
Java语言整型常量的四种表示形式
> 十进制整数,如:99、-500、0
> 八进制整数,要求以0开头,如:015
> 十六进制数,要求以0x或0X开头,如:0x15
> 二进制数必须以0b或0B开头,如:
Java语言中的整型常量默认为int类型,长常量可以在末尾声明“l”或“L”。
如何编写长类型常量和声明变量
错误:int类型超出范围,所以我们需要修改代码为:
3.2 浮点数据类型
带有小数的数据在Java中称为浮点数。 浮点类型可分为float类型和type类型。
float类型也称为单精度类型,尾数可以精确到7位有效数字。 很多情况下,浮点型的精度很难满足需求。 该类型的数值精度约为浮点类型的两倍,也称为双精度类型。 大多数应用程序都使用这种类型。
Java浮点类型常量有两种表示形式
> 十进制数字形式,例如:3.14314.00.314
> 科学计数形式,如3.14e03.14E23.14E-1
使用科学计数法为浮点变量赋值
float类型的值有后缀F或f。 不带后缀F/f的浮点值默认为该类型。 您还可以在浮点值后面添加后缀 D 或 d,以明确它是一种类型。
如何编写浮点型常量和声明变量
专家建议
浮点类型float的数据不适合不允许舍入误差的金融计算。 如果需要执行精确的数值计算而没有舍入误差,则需要使用类。
浮点数据比较1
浮点数据比较2
运行上面两个例子,发现例2-13的结果是“false”,而例2-14的输出结果是“d1==d2”。 这是因为由于字长有限,浮点数能够准确表示的数量有限,因此也是离散的。 浮点数一般都会有舍入误差,很多数字无法准确表示(例如0.1)。 结果只能是接近,而不能相等。 二进制浮点数无法准确表示 10 的负幂,例如 0.1、0.01 和 0.001。 并不是所有的小数都可以用二进制浮点数准确表示。
新秀雷区
不要使用浮点数进行比较! 很多新手甚至很多理论知识薄弱的资深程序员都会犯这个错误!如果需要比较,请使用类
3.3 字符数据类型
字符类型在内存中占用2个字节,Java中使用单引号来表示字符常量。 例如,“A”是一个字符,它与“A”不同,“A”表示包含一个字符的字符串。
char类型用于表示编码表中的字符。 该编码旨在处理各种语言的文本。 占用2个字节,允许65536个字符。
角色演示
Java语言还允许使用转义字符“\”将后面的字符转换为其他含义。 常用的转义字符及其含义和值如表所示。
转义字符
编码从0到65535,通常用从'\u0000'到'\uFFFF'的十六进制值表示(以u为前缀)
十六进制值的字符表示
Char类型在内存中存储的实际上是字符的编码,是一个数字。 其实也可以这样赋值。
防范措施
“a”是一个字符串,而不是一个字符。 可以是0到多个字符的字符串。
3.4 布尔数据类型
该类型有两个常量值:true 和 false。 不能使用 0 或非 0 整数来替换 true 和 false。 这一点与C语言不同。 类型用于确定逻辑条件,一般用于程序流程控制。
专家建议
少即是多! ! 请不要这样写:if (flag == true),只有新手才会这样写。 关键也很容易写错if(flag=true),变成把flag赋给true而不是判断! 老鸟的写法是if(flag)或者if(!flag)
该类型的几个字节的描述:
《Java虚拟机规范》一书中的描述:“虽然定义了这种数据类型,但只为其提供了非常有限的支持。Java虚拟机中没有特定于值的字节码指令。Java语言操作的值编译后表达式将被Java虚拟机中的int数据类型替换,数组将被编码为Java虚拟机的字节数组,每个元素占用8位。 换句话说,JVM规范规定将其视为int,即4个字节,而将数组视为字节数组。 由此我们可以得出,类型单独使用时占用4个字节,在数组中肯定是1个字节。
4. 运营商
计算机最基本的用途之一是执行数学运算。 作为一种计算机语言,Java还提供了丰富的运算符来操作变量。
相关概念解析
4.1. 算术运算符
算术运算符中,+、-、*、/、% 是二元运算符。 二元运算符是指需要两个操作数才能完成运算的运算符。 %是取模运算符,也就是我们常说的求余运算。
二元运算符的运算规则:
整数运算:
浮点运算:
模运算:
算术运算符中,++(自增)和--(自减)是一元运算符,只需要一个操作数。
我++; 和++i;
如果是单个语句,则没有区别,两者都会加1;
如果不是单独的语句(语句的一部分),则存在差异
int n = 6 + m++; 先运算符,然后+1
int n = 6 + ++m; 先+1再运算
先做乘法和除法,然后做加法和减法。 算术运算符具有不同的优先级:
++ -- 大于 * / % 大于 + -
您可以使用括号来更改运算顺序
4.2.赋值运算符
赋值运算符可以说是Java中使用频率最高的运算符,也是操作级别最低的运算符。 其操作顺序是从右到左。
除了基本的赋值运算符外,还可以与算术运算符组合形成扩展赋值运算符。
4.3. 关系运算符
关系运算符用于执行比较运算,如下表所示。 关系运算的结果是一个布尔值:true/false; 常用于选择结构if和循环结构for while的条件表达式中进行条件判断。
防范措施
=是赋值运算符,真正判断两个操作数是否相等的运算符是==。
==、!= 适用于所有(基本和参考)数据类型。
>、>=、= 或者,可以使用括号来改变运算顺序,提高可读性
4.5. 位运算符
位运算符以二进制位为单位对操作数进行运算,操作数和结果都是整数。
如果运算对象是char、byte、short,则在位移动发生之前,其值会自动提升为int,运算结果也为int。
4.6.条件运算符
语法格式:
X ? y:z
其中x是类型表达式,首先计算x的值。 如果为真,则整个运算的结果就是表达式 y 的值,否则整个运算的结果就是表达式 z 的值。
可用于替换简单的 if-else 选择语句。
4.7. 运算符优先级
专家建议
> 你不需要刻意记住这些优先事项。 首先使用括号来组织表达式! !
>优先级最低的赋值运算符和条件运算符
> 总体、算术 > 关系 > 逻辑 > 条件 > 赋值
> 最高的运算级别是( ),一元运算符的运算级别非常高,如++、--、~、!
5、基本数据类型的类型转换
我们已经解释了八种基本数据类型,除了类型之外还有七种类型可以自动转换。 甚至,我们可以使用“强制转换”将数据类型更改为我们需要的类型。 本节详细解释了有关类型转换的细节。
什么是类型转换
在(赋值或算术)运算时,要求数据类型相同,否则需要进行类型转换
类型转换类型
基本数据类型可以分为数值类型(int Short byte Long float char)和非数值类型()
类型转换只涉及数值类型,不涉及类型
父类和子类Dog将在后面讨论。
5.1 自动类型转换
自动类型转换是指可以将小容量的数据类型自动转换为大容量的数据类型。 如图所示,黑色实线表示自动类型转换,不会丢失数据,而虚线则表示转换过程中可能会有精度损失。
5.2 强制类型转换
强制类型转换,也称为强制类型转换,用于强制转换数值类型。 可能丢失信息的转换是通过强制转换完成的,但可能会导致准确性降低或溢出。
语法格式:
(类型)变量
运算符“()”中的类型表示值 var 要转换成的目标数据类型。
投掷
运行结果如图所示。
当从一种类型转换为另一种类型超过目标类型的表数量时,它将被截断为完全不同的值。
演员表的特殊情况
新手的雷区
无法在布尔类型和任何数字类型之间进行转换
5.3 转换基本类型时的常见错误和问题
类型转换常见问题1
运行结果如图所示。
操作效果图
自动类型转换特殊情况
视频指导:
支持信息:
链接:/s/V6g
提取码:ewzm
发送私信即可免费获得200G视频+源码+课件~