【爪洼岛冒险记】第3站:任务1:学会int和String之间的转换;任务2:将Java运算符全部收入囊中~ 任务3:拿下Java中的类型提升

news2024/11/17 9:29:36

在这里插入图片描述

🌱博主简介:是瑶瑶子啦,一名大一计科生,目前在努力学习C进阶,JavaSE。热爱写博客~正在努力成为一个厉害的开发程序媛!
📜所属专栏:爪洼岛冒险记
✈往期博文回顾:【爪洼岛冒险记】第2站:带你学会:Java中三种输出语句,java中基本数据类型,学会变量,常量,类型转换知识点
🕵️‍♂️近期目标:成为百粉小博主。持续输出JavaSE、C进阶、数据结构、算法相关的优质博客,
🙇‍♀️写博客理念:力求用自己的语言加上自己的理解去阐述知识知识、技术。喜欢画图、思维导图去描述过程和知识之间的联系。
🎡您的点赞、关注、收藏、评论,是对我最大的激励和支持!!!
🌺:“再牛的程序员也是从小白开始,既然开始了,就全身心投入去学习技术”

爪洼岛冒险记-第3站

  • 👼上一站快速回顾:
  • 🌴本站任务:
  • 任务1:int和String之间的转换
    • int转String
    • String转int
  • 任务2:Java中的运算符
    • 1,算术运算符
      • 除法运算符:
      • 取模运算符:--取余数
      • 复合赋值运算符需注意
    • 2,关系运算符
    • 3,⭐逻辑运算符
    • 4,位运算符
    • 5,位移操作符
    • 优先级问题:
  • 任务3:Java中的类型提升
    • 1:隐式类型提升(自动类型转换)---只涉及除布尔类型外的7种数据类型
    • 2:强制类型转换(有风险)

👼上一站快速回顾:

在这里插入图片描述

🥫上一站重点学习Java中的基本数据类型有关的知识点,我们来快速回顾一下:
这里由一道牛客网上最近的一道百度面试题一道经典面试题带着我们复习一下:

百度面试题:🧛‍♂️:请你所说Java中基本数据基本数据类型和引用类型:(由于引用类型在后期会讲,但是为了之后学完整个JavaSE之后能更好的复习,这里还是说一下)

🙇‍♀️:在这里插入图片描述

  • Java中有8种基本数据类型,根据类型所描述的数据性质不同,分为4小类:整形,浮点型,字符型,布尔类型.其中整形根据数据描述范围不同,分为:字节类型(byte)占8bit位,短整形(short)占16bit位,整形(int)占32bit位.浮点型根据精度不同,分为单精度浮点数:float,双精度:double.字符类型是:char,占16bit位,与Unicode表对应.布尔类型boolean,只有两个取值,false,true,由于JDK规范中没有明确规定布尔类型所占内存大小,不同的JVM有不同的实现机制.除了boolean类型外,其他7基本数个数据类型都可以看作数字类型,他们之间可以进行类型转换.
  • 8种基本数据类型的变量的值是在程序运行时才被放到变量中的,在编译时期并不知道变量中存放了什么,在程序运行后,变量向内存的上申请空间.即8种基本数据类型的的变量的值存放在栈内存中.
  • 引用数据类型包括数组,类,接口类型,还有一个特殊的null类型,引用数据类型就是对一个对象的引用,对象包括实例和数组两种.引用类型变量存放的被引用对象的地址,堆内存中才是对象真正的值.

🧛‍♂️经典面试题 2:
为啥有时会出现 4.0 - 3.6 = 0.40000001 这种现象?

  • 首先,浮点数在内存中是依据按照二进制形式来存储的,二进制的小数部分无法总是精确的表示十进制的小数,只能无限接近.所以导致浮点数的存储不精确(根本原因).所以取出的时候就会表现的不精确.
    在这里插入图片描述

好啦,快速复习完上一站的知识,赶紧整装待发,咱们直冲下一站!!

在这里插入图片描述

🌴本站任务:

🙆‍♀️write int the front:
🥫此站路途较为轻松,可不要小看基础知识哦,把这些基础和细节收入囊中,后来的路途也不会那么艰辛,现在就出发吧~🎊

  • 学会int和String之间的转换
  • 将Java运算符全部收入囊中~
  • 拿下Java中的类型提升

任务1:int和String之间的转换

(❤ ω ❤)在上一站中,最后我们所讲的"类型转换",其实是8种基本数据类型种,除了boolean类型的其他7种数据类型(都可以看作的数字类型)的之间转换.任务1,我们将学习int和String之间的转换(不用太扣细节,关于包装类,如Integer会在后期讲到).

int转String

		int num=55;
        String str=String.valueOf(num);
        System.out.println(str);

String转int

		String str="55";
        int num=Integer.valueOf(str);
        System.out.println(num);

任务2:Java中的运算符

1,算术运算符

运算符说明
+加法
-减法
*乘法
⭐/除法
⭐%取模
%=复合赋值运算符;a%=b即a=a%b(下面同理)
/=
+=
–=
%=
++自增运算符:前置时,先自增,后使用(表达式的值);后置式,先使用,再自增
– –自减运算符:前置时,先自减,后使用(表达式的值);后置式,先使用,再自减

这里着重讲一下除法运算符,和取模运算符的注意事项

除法运算符:

  • java中除数不能为0.否则会抛出异常.(异常在后期讲,这里需要明白的是,抛出此算术异常则程序终止运行)
		int b = 3 / 0;
        System.out.println(b);

在这里插入图片描述

  • int/int结果是int(这点和C中是一样的),不能得到小数

取模运算符:–取余数

  • 和C中不同的是.java中的取模运算符的操作数可以为小数
 		double c=3.14/2;
        System.out.println(c);

在这里插入图片描述

  • a%b得到结果的正负取决于a的正负,和b无关
 		int a=6%4;
        System.out.println(a);//2
        a=-6%4;
        System.out.println(a);//-2
        a=6%(-4);//直接当作6%4
        System.out.println(a);//2
        a=-6%(-4);//当作-6%4
        System.out.println(a);//-2

复合赋值运算符需注意

  • Java中使用复合运算符在运算时,自动进行了强制类型转换
    如:
char c=25+c;

//报错,在上一站也提到过,CPU的整形运算器,默认操作字节长度为4,为了适应CPU,这里的25+c会在编译时提升为int.所以报错

🤷‍♀️"想要不报错,怎么办?"----强制类型转换(打包票)

char c=(char)25+c;

看下面这个代码,没有报错,虽然相当于c=c+25,但是由于Java中的符合运算符自动进行了强制类型转换,所以不报错.

char c+=25;

2,关系运算符

  • java中,使用关系运算符进行运算,运算后表达式的结果的数据类型为布尔类型:ture或者false
运算符说明
==判断左右操作数是否相等
!=不相等
<=
>=
<
>

3,⭐逻辑运算符

  • 用逻辑运算符运算后,表达式的结果同样也是布尔类型
运算符说明
&& (逻辑与)一假则假,全真则真
|| (逻辑或)一真则真,全假则假
!逻辑非

❗注意:

  1. 逻辑运算符要求运算数均为布尔类型.
  2. 逻辑与(&&)存在短路现象:
expr3=expr1&&expr2;

如果expr1的值为false,则expr2不执行,expr3=false;

  1. 逻辑或(||)存在短路现象
expr3=expr1||expr2;

如果expr1的值为true,则expr2不执行,expr3=true

4,位运算符

和C中一样,Java中对数据操作的最小单位是位(bit),而不是字节(byte)

运算符说明
&按照二进制位与
|按照二进制位或
^按照二进制位异或(一样的是0,不一样的是1)–>本质:找不同

🤷‍♀️:“怎么用?”
👉移位操作符、位操作符详解–图解演示、例题讲解、经验总结
❣关于位操作符和移位操作符,Java和C语言都是一样的使用,我之前写的这篇博客已经介绍得很清晰了,这里我就不重复造轮子了.

5,位移操作符

运算符说明
<<(左移)左边丢弃,右边补0
>> (右移)右边丢弃,左边补符号位对应的数字
>>> (无符号右移)💦(Java特有)右边丢弃,左边补0

关于二进制位具体咋移动的,可戳👉移位操作符、位操作符详解–图解演示、例题讲解、经验总结

优先级问题:

不必刻意取记优先级,根据逻辑,适当加括号即可~

任务3:Java中的类型提升

(其实在前一战有提到过,这里具体是系统总结一下~0

1:隐式类型提升(自动类型转换)—只涉及除布尔类型外的7种数据类型

  • 当数据类型范围大的变量和数据类型范围小的变量进行混合运算时,结果自动提升为大的那个变量.(具体原因上一站有讲)
 		long a=12;
        int b=a+2;

在这里插入图片描述

  • 特别地的是,byte,char,short,三种基本数据类型的字节数在4字节以下,所以当它们进行运算时,为了适应CPU,会自动转换成int.

2:强制类型转换(有风险)

//格式:
数据类型a 变量名=(目标类型) (被转换的变量/数据)

🎊以上就是第3站的所有知识点了~希望对大家有所帮助.
如果有用,还请关注+三连.您的关注和三连能给瑶瑶子带来无穷的动力~~~
🌻可以订阅专栏爪洼岛冒险记(free),和瑶瑶子一起,穿梭Java岛,学习java,一起努力,从小白变大牛~🙇‍♀️

往期blog回顾:

  1. 【爪洼岛冒险记】第2站:带你学会:Java中三种输出语句,java中基本数据类型,学会变量,常量,类型转换知识点
  2. 【爪洼岛冒险记】第1站:Java重要特性,JDK,JRE,JVM区别和联系,环境变量
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/160435.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Allegro172版本如何快速打开和关闭层面操作指导

Allegro172版本如何快速打开和关闭层面操作指导 在做PCB设计的时候,打开和关闭某个层面是非常频繁的操作,尤其是丝印等等层面。 Allgeo升级到了172版本的时候,可以将常用的层面添加到Visibility菜单里,就不需要频繁打开颜色管理器打卡和关闭层面了,如下图 具体操作如下 打…

常见锁策略,CAS,synchronized原理

1.常见锁策略锁策略不仅仅局限于java,任何与"锁"相关的话题(操作系统,数据库...),都会涉及到锁策略,这些策略是给锁的实现者用来参考的1.1乐观锁vs悲观锁这个不是两把具体的锁.而是两类锁,是在锁冲突的概率上进行区分的乐观锁指的是预测锁竞争不是很激烈(做的工作相对…

Ambari2.7.5安装Flink1.14

文章目录下载Flink配置安装源下载ambari-flink-service服务修改配置文件创建用户和组重启Ambari登录Ambari安装Flink提交Flink任务Flink 直接单独提交到 On Yarn指定Flink在Yarn跑的容器运行Flink异常异常1异常2异常3下载Flink配置安装源 wget https://archive.apache.org/dis…

Goby+AWVS 联动

系列文章 AWVS安装与激活 AWVS扫描Web应用程序 AWVS扫描报告分析 GobyAWVS 联动 1.Goby简介 Goby是针对目标企业梳理最全面的工具&#xff0c;同构goby可以清晰的扫描出ip地址开放的端口&#xff0c;以及端口对应的服务&#xff0c;于此同事会根据开放的端口及应用进行实战…

分享116个ASP源码,总有一款适合您

ASP源码 分享116个ASP源码&#xff0c;总有一款适合您 116个ASP源码下载链接&#xff1a;https://pan.baidu.com/s/1LEs24-feWjvhac6vzyVecg?pwdnosx 提取码&#xff1a;nosx 下面是文件的名字&#xff0c;我放了一些图片&#xff0c;文章里不是所有的图主要是放不下...&am…

2.线性表

##线性结构 基本特点&#xff1a;结构中各元素之间满足线性关系。 线性关系&#xff1a;数据元素之间存在一对一的关系 1.存在唯一的开始元素 2.存在唯一的终止元素 3.除了开始元素和终止元素&#xff0c;其他元素均有且仅有一个直接前驱元素和一个直接后驱元素。 所有元素可排…

Sass进阶指南 -- 写出更优雅的样式表

我以为已经会了&#xff0c;之前在公司写项目基本都是用sass写样式&#xff0c;十分顺手。直到有段时间&#xff0c;我准备参考Element Plus来设计自己组件库的工程结构&#xff0c;看到Element Plus那些优雅的sass用法时&#xff0c;我开始为我的浅薄和无知感到羞愧。这便开始…

Python学习笔记——集合

集合&#xff08;set&#xff09;是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合&#xff0c;注意&#xff1a;创建一个空集合必须用 set() 而不是 { }&#xff0c;因为 { } 是用来创建一个空字典。创建格式&#xff1a;parame {value01,value02,..…

LeetCode[313]超级丑数

难度&#xff1a;中等题目&#xff1a;超级丑数 是一个正整数&#xff0c;并满足其所有质因数都出现在质数数组 primes中。给你一个整数 n和一个整数数组 primes&#xff0c;返回第 n个 超级丑数 。题目数据保证第 n个 超级丑数 在 32-bit 带符号整数范围内。示例 1&#xff1a…

C++ 类和对象(三)

类和对象&#xff08;一&#xff09; 类和对象&#xff08;二&#xff09; 日期类 目录 一. 再谈构造函数 1.构造函数体赋值 2.初始化列表 3.隐式类型转换与explicit关键字 4.C11优化 二. static成员 1.概念 2.特性 三. 友元 1.友元函数 2.友元类 四. 内部…

Java 如何设计一款小游戏详细讲解(二)

继续上面(一)&#xff0c;Java 如何设计一款小游戏详细讲解(一)步骤步骤一接下来我们主要完成GameJFrame&#xff0c;就是拼图游戏的界面及代码。这里接下来完成菜单的设置&#xff0c;将主界面的代码放到一个方法中&#xff0c;像下面这样&#xff0c;接下来我们书写菜单的代码…

基于Python实现种差值方法(完整代码详细教程)

三种插值方法都是使用Python自己实现的。1.1 最近邻插值寻找每个中心点周围的八个点中有无未丢失的点&#xff0c;如果有的话就赋值为第一个找到的点&#xff0c;如果没有就扩大范围再次寻找&#xff0c;在最大范围内都找不到的话就跳过。1.2 双线性插值使用解方程的方法求解&a…

(十八)Threads异步和多线程(Thread、Threadpool、Task)-语言进阶2

Threads异步和多线程-语言进阶2一、Thread1. 线程启动2. 线程等待3.前台线程/后台线程4.扩展thread封装回调二、Threadpool1.线程池2.线程池使用3.ManualResetEvent 线程池等待三、Task1. Task启动方式2.waitall 、waitany1.waitall2.waitany3.WaitAll、waitany场景4. 应用&…

Spring为什么这么火 之 Spring的创建及存储、获取Bean对象

目录 1、创建Spring项目 1.1、创建一个Maven项目 1.2、添加Spring框架支持 1.3、添加启动类 2、存储Bean对象 2.1、创建Bean对象 2.2、将Bean对象注册到Spring容器中 3、获取、使用Bean对象 3.1、得到Spring上下文对象 使用ApplicationContext作为Spring的上下文 【更…

服务器相关命令(docker相关)

一:安装docker 之前安装过旧版本&#xff0c;使用以下命令可以卸载(整个copy过去): yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-selinux \docker-engine-selinux \docker-e…

AOP面向切面编程

AOP 面向切面编程 AOP是什么 AOP 为 Aspect Oriented Programming 的缩写&#xff0c;意为&#xff1a;面向切面编程&#xff0c;通过预编译方式和运行期间动态代理实现程序功能的统一维护的一种技术。 AOP 是 OOP 的延续&#xff0c;是软件开发中的一个热点&#xff0c;是 j…

【Linux】-- 环境变量

目录 环境变量 常见环境变量 HOME 和环境变量相关的命令 通过代码如何获取环境变量 环境变量参数 通过第三方变量environ获取 通过getenv函数来特定访问获取 通过setenv函数来特定访问获取 环境变量 命令&#xff1a;which ls 将命令ls的完整路径写入到标准输出。 #in…

用R语言理解洛必达法则

文章目录5 洛必达法则极限的种类洛必达法则作用于幂函数5 洛必达法则 极限的种类 令NNN为常数&#xff0c;则常规的极限运算大致有以下几种 ∞N∞∞⋇N∞(N̸0)N∔∞∞N−∞−∞N/∞0N/0∞N∞∞(N̸1)∞N∞(N̸0)\begin{matrix} &\infty\pm N\infty\quad&\infty\divi…

MySQL版本由5.7.37更新到5.7.39

一、前景 由于mysql5.7.37存在漏洞&#xff0c;影响系统安全&#xff0c;所以需要将mysql版本升级到5.7的最新版本5.7.39。 二、步骤 1、下载5.7.39的安装包&#xff1a; 下载链接如下&#xff1a; https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.39-1.el…

node基础知识

node基础知识 node在真实项目中的应用 webpack基于node环境 用nodejs的语法合并压缩打包 js放到客户端浏览器中执行 放到服务器端运行&#xff1a;java因为jdk php因为tomcat c#因为有.net framework 项目架构1&#xff1a;中小型项目-基于nodejs构建全栈 项目架构2&#xff1a…