| |
|
开发:
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的数据类型与运算符 |
目录 一、用IDEA写Java程序上一节我们简单认识了Java的main函数,并了解了用记事本如何书写简单的Java程序。 但是用记事本写只是方便我们了解Java程序编译运行的原理,我们真正还是要选择合适的编译工具。 这节我们选择用最常用的工具——IDEA来写Java程序。 (用之前记得先配置好相应的环境) IntelliJ IDEA的下载的地址:IDEA官网。 1.进入主页面点击左上角:file>new>project ?2.取合适的项目名称,选好路径 ?3.选择 src>New>Java Class? ?4.取一个合法的类名 回车即可开始写Java程序? ? 5.编写Java程序。 ?6.最后只要点代码左边绿色的开始键 或者 单击鼠标右键选择run行即可运行。 ? ?二、Java中数据类型Java中基本数据类型细分为: ? (这个水印挡住字了,不过话说还不知道怎么去水印QAQ) 回归正题,上节说到布尔类型变量—— 布尔类型变量基本语法格式: boolean 变量名 = 初始值; 代码示例: boolean value = true; System.out.println(value); 注:1.boolean 类型的变量只有两种取值,true 表示真, false 表示假。 2. Java 的 boolean 类型和 int 不能相互转换,不存在 1 表示 true, 0 表示 false 这样的用法。 3. boolean 类型有些 JVM 的实现是占 1 个字节,有些是占 1 个比特位,这个没有明确规定。 字符串类型变量?基本语法格式: String 变量名 = "初始值"; 代码示例: String name = "zhangsan"; System.out.println(name); 注:1.和上面的类型不同, String 不是基本类型, 而是引用类型。 2.字符串中的一些特定的不太方便直接表示的字符需要进行转义。 1、 字符串的 + 操作, 表示字符串拼接:(注意:俩字符串拼接,打印结果中间没有空格)
2、字符串和整数进行拼接:
?归纳:当Java在输出时,先碰到 "字符串"+ 的时候,就会默认后面都执行字符串拼接操作;如果第一个不是字符串,则先执行正常的运算。 【例如上述代码改成:System.out.println(a+b+str),则输出“30result=”】 final 关键字修饰的常量一旦被final修饰,则在程序运行的过程中,不能再次被修改。即在程序编译时,就已经确定其值了。 (而变量,则是在程序运行过程中才能知道里面的是几) ? 三、 理解类型转换Java 作为一个强类型编程语言, 当不同类型之间的变量相互赋值的时候, 会有严格的校验。 先看一个例子: ?结论: 不同数字类型的变量之间赋值, 表示范围更小的类型能隐式转换成范围较大的类型, 反之则不行。 类比理解一下:假如有水杯1、水杯2。 ?水杯1的容量大于水杯2。 则将水杯2的水倒入水杯1是保证能被装下的,(即绝对不会超出范围,不会报错),而水杯1的水倒入水杯2则不一定能被完全装下。 ?结论: 1. 强制类型转换可能会导致精度丢失。如刚才的例子中,赋值之后,?10.5 就变成 10 了,小数点后面的部分被忽略。 2. 强制类型转换不是一定能成功,互不相干的类型之间无法强转。(例如布尔值与整型之间不能转换,这与C语言有很大区别,Java中的布尔值只有true和false,没有1或0的表示形式) ?四、理解数值提升?int和long的混合运算? ?结论: 当 int 和 long 混合运算的时候,int 会自动提升成 long,得到的结果仍然是 long 类型,需要使用 long 类型的变量来接收结果。如果非要用 int 来接收结果,?就需要使用强制类型转换。 byte 和 byte 的运算? 结论:byte和byte都是相同类型,但是居然出现编译报错。虽然a和b都是byte,但是计算a+b会先将a和b都提升成int,再进行计算,得到的结果也是int,这是赋给c,就会出现上述错误。 由于计算机的CPU通常是按照4个字节为单位从内存中读写数据。如byte和short这种低于4个字节的类型,会先提升成int,再参与计算。 正确的写法:(要用强制类型转换)
五、Java中的运算符1.算术运算符
需要额外注意的是,
2.关系运算符关系运算符主要有六个: ==? ? !=? ? <? ? >? ? <=? ?>= 注意:关系运算符的表达式返回值都是:boolean 类型。 3.逻辑运算符逻辑运算符主要有三个:?&&? ? ||? ? ! 逻辑与 ——&&规则: 两个操作数都为 true, 结果为 true, 否则结果为 false。
逻辑或? ——||规则: 两个操作数都为 false, 结果为 false, 否则结果为 true。
逻辑非 !规则: 操作数为 true, 结果为 false; 操作数为 false, 结果为 true。(注:这是个单目运算符,仅有一个操作数) 短路求值&& 和 || 遵守短路求值的规则。
由上面例子能看出,要是计算到右侧表达式,则一定会报错,可是结果却没有报错,说明压根没有执行到右侧的表达式就已经得出结果了。 结论: 1. 对于&&,如果左侧表达式值为false,则表达式的整体的值一定是false,无需计算右侧表达式。 2.对于||,如果左侧表达式值为 true,则表达式的整体的值一定是true,无需计算右侧表达式。 4.位运算符位运算符主要有四个:&? ? ?|? ? ?~? ? ?^ 按位与 &:如果两个二进制位都是 1, 则结果为 1, 否则结果为 0。
进行按位运算, 需要先把 10 和 20 转成二进制, 分别为 1010 和 10100,再进行对应位的比对,最后转为十进制输出。 按位或 |:如果两个二进制位都是 0,则结果为 0,否则结果为 1。 (运算方式同上) 注意:当 & 和 | 的操作数为整数(int, short, long, byte) 的时候,表示按位运算,当操作数为 boolean 的时候,表示逻辑运算。 按位取反 ~:如果该位为0,则转为 1,如果该位为 1,则转为 0。
注意: 0x前缀的数字为十六进制数字。十六进制可以看成是二进制的简化表示方式。一个十六进制数字对应4个二进制位。0xf 表示十进制的15, 也就是二进制的1111。 按位异或 ^:如果两个数字的二进制位相同,则结果为0,相异则结果为1。 5.移位运算移位运算符有三个:<<? ? ? ? >>? ? ? ? >>> 左移 <<:最左侧位不要了,最右侧补0。 右移 >>:最右侧位不要了,最左侧补符号位(正数补0, 负数补1)。 无符号右移 >>>:最右侧位不要了,最左侧补0。 结论: 1. 左移 1 位, 相当于原数字 * 2 ;左移 N 位, 相当于原数字 * 2 的N次方。 2. 右移 1 位, 相当于原数字 / 2 ;右移 N 位, 相当于原数字 / 2 的N次方。 3.由于计算机计算移位效率高于计算乘除, 当某个代码正好乘除 2 的N次方的时候可以用移位运算代替。 6.运算符优先级如下表所示。可以稍微记忆一点,一般写程序直接要先的打上括号即可,优先级一般只有部分考试题目会用到。 ?to be continue → 欢迎大家互相探讨交流补充 欢迎捉虫! |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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 0:07:13- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |