数据类型转换:

小数据类型-------->大数据类型     自动类型转换
大数据类型--------->小数据类型 强制类型转换
强制类型转换的格式
小数据类型 变量名 = (小数据类型)大数据类型

数据类型转换要注意的细节:

1. 凡是byte、short 、 char数据类型数据在运算的时候都会自动转换成int类型的数据再运算。
2. 两个不同数据类型的数据在运算的时候,结果取决于大的数据类型。
3.
//如果是负数,那么最高位肯定是1, 正数的二进制位的最高位是0。
System.out.println(Integer.toBinaryString(-7)); //sun给我们提供一个功能 Integer.tobinaryString() 查看一个数据的二进制数据形式的。
byte b1 =1;
byte b2 = 2;
byte b3 = (byte)(b1+b2);
System.out.println(b3); //3
System.out.println('a'+1); //98
两个不同数据类型的数据在运算的时候,结果取决于大的数据类型

Java转换二进制的方法

Integer.toBinaryString(-7)//把-7转换为二进制

    int i =10;
long l = 20;
i = (int)(i+l); //当去掉(int)时会报错
System.out.println(i);
因为:两个不同数据类型的数据在运算的时候,结果取决于大的数据类型 int i = 10; //
byte b = i; //(报错) 一个整数没有加上任何标识的时候,默认是int类型的数据。
//10 是一个常量, 编译器在编译的时候就能够确认常量的值了,byte b = 10,在编译到的时候
byte b=10; //不报错
//java编译器就会检查到10并没有超出byte的表示范围,所以允许赋值。
//java编译器在编译 的时候并不能确认变量所存储的值,变量存储的值是在运行的时候才在内存中分配空间的。
System.out.println(b);

连接符(+)的作用: 让任何的数据都可以与字符串进行拼接。
如果+号用于字符串的时候,那么+号就是一个连接符,并不是 做加法功能了。
连接符要注意:任何类型的数据与字符串使用连接符连接,那么结果都是字符串类型的数据。

System.out.println(1+2+3 +" world"+1+2+3);//结果:6 world123

    在java中做取模(取余) 运算的时,结果的正负号是取决于被除数。
如下:
System.out.println("结果:"+(10%3)); // 1
System.out.println("结果:"+(10%-3)); // 1 1
System.out.println("结果:"+(-10%3)); // -1 -1
System.out.println("结果:"+(-10%-3)); // -1 -1 byte b1 = 1;
byte b2 = 2;
//b2 = (byte)(b2+b1); //报错。, 需要强制类型转换
b2+=b1; //相当于b2 = b2+ b1;(不报错)b2+=b1 在编译的时候,java编译器会进行强制类型转换,不需要我们手动转换了。
System.out.println("b2 : "+ b2);

==用于比较两个基本数据类型数据的时候,比较的是两个变量所存储的值是否一致.
==用于比较两个引用类型变量的数据时候,比较的是两个 引用类型变量所记录的内存地址是否一致.

^ (异或)

规律: 只要两边的布尔表达式 结果不一致,那么结果就为true,如果左右两边 的布尔表达式一致,那么就为false.

位运算符:位运算符就是直接操作二进制位的。效率相对较高

& (与)
| (或)
^ (异或)

规律: 如果操作数A连续异或同一个操作数两次,那么结果还是操作数A。

应用: 对数据加密.

~ (取反)

交换两个变量的值,不准出现第三方变量。

方式2:相加法, 缺点: 两个int类型的数据相加,有可能会出现超出int的表示范围。

    a = a+b;  // a =8
b = a-b; //b = 8 - 5 = 3
a = a-b; // a = 8 - 3 = 5 方式3: 可以使用异或。 缺点: 逻辑不清晰。
*/
a = a^b; // a = 3^5
b = a^b; // b = (3^5)^5 = 3
a = a^b; // a = (5^3)^3 = 5
System.out.println("a = "+ a+" b="+b);

取出一个二进制数据的指定位数。要求读取该二进制数据的低4位
00000000-00000000-00010100-01001101
& 00000000-00000000-00000000-00001111(低4位全是1,前几位都是0 ,然后与,就能得到结果)
——————————————
00000000-00000000-00000000-00001101

移位运算符:

<<(左移)

规律:一个操作数进行左移运算的时候,结果就是等于操作数乘以2的n次方,n就是左移 的位数.
3<<1 = 3 *2(1) = 6;
3<<2 = 3*2(2) = 12
3<<3 = 3*2(3) = 24

>>(右移)

规律:一个操作数在做右移运算的时候,实际上就是等于该操作数除以2的n次方,n就是右移的位数。

3>>1 = 3 / 2(1) = 1
3>>2 = 3 / 2(2) = 0 。。 >>>(无符号右移) :

无符号右移与右移的区别:进行右移运算的时候,如果操作数是一个正数,那么左边的空缺位使用0补,
如果操作数是一个负数,那么左边的空缺位使用1补。而使用无符号右移的时候,不管是正数还是负数都
统一使用0补。

笔试题目:使用最高的效率算出2乘以8的结果。
2<<3 = 2*2(3) = 16;
*/

三元运算符(三目运算符)

格式;
布尔表达式?值1:值2 ;

三元运算符要注意的细节:
使用三元运算符的时候,一定要使用该表达式返回的结果,或者是定义一个变量接收该表达式返回的结果。

if语句要注意的细节:
1. 如果符合条件后只有一个语句需要执行,那么可以省略大括号。但是建议不要省略,因为结构不清晰。

    int workAge = 2;
if(workAge>=2)
System.out.println("电话通知过来面试..");

2. if语句的判断条件后不能添加分号,否则会影响到执行的效果的,

控制台程序接收用户输入的整数:

//创建一个扫描器
Scanner scanner = new Scanner(System.in);
//调用扫描器扫描键盘录入的数据 System.out.println("请输入一个分数:");
int score = scanner.nextInt(); //定义了一个num变量接收扫描到内容。
if(score>=90&&score<=100)
System.out.println("A等级");

java基础——数据类型转换的更多相关文章

  1. Java基础-数据类型转换

     1).简单类型数据间的转换,有两种方式:自动转换和强制转换,通常发生在表达式中或方法的参数传递时.  自动转换 当一个较"小"数据与一个较"大"的数据一起运算 ...

  2. [.net 面向对象编程基础] (4) 基础中的基础——数据类型转换

    [.net面向对象编程基础] (4)基础中的基础——数据类型转换 1.为什么要进行数据转换? 首先,为什么要进行数据转换,拿值类型例子说明一下, 比如:我们要把23角零钱,换成2.30元,就需要把整形 ...

  3. Java中数据类型转换&基本类型变量和对象型变量

    1.Java的数据类型分为三大类 布尔型,字符型和数值型 其中数值型又分为整型和浮点型 2.Java的变量类型 布尔型 boolean 字符型 char 整型    byte,short,int,lo ...

  4. Java基础知识强化22:Java中数据类型转换

    数据类型转换: (1). 自动转换 低级变量可以直接转换为高级变量,这叫自动类型转换.比如: byte b: int b:  long b:  float b:   double  b: 上面的语句可 ...

  5. Java基础之类型转换总结篇

    Java中,经常可以遇到类型转换的场景,从变量的定义到复制.数值变量的计算到方法的参数传递.基类与派生类间的造型等,随处可见类型转换的身影.Java中的类型转换在Java编码中具有重要的作用.    ...

  6. Java中数据类型转换大全(个人总结)

    一.字符串转换为其他类型 1.将字符串转化为int型 (1)方法一 int i = Integer.parseInt(String str); (2)方法二 int i = Integer.value ...

  7. java常用数据类型转换

    在Java开发过程中经常会涉及到数据类型的转换问题,比如数字型转字符型,字符型转日期型,字符串转数组等等,以及其他类型的强制转换等.经常出现,所以有必要总结一下. 1.如何将字串 String 转换成 ...

  8. 检验 java 基础数据类型参数传递方式

    测试证明,java基础数据类型参数传递值虽是引用传递但是值不会改变.对象是引用传递,值会改变. 为什么?找到一段话来解释这个问题. "对于字符串对象来说,虽然在参数传递的时候也是引用传递,但 ...

  9. Python基础 — 数据类型转换

    Python 数据类型转换 有时候,我们需要对数据内置的内心进行转换,数据类型的转换,你只需要将数据类型作为函数名即可. 以下几个内置的函数可以执行数据类型之间的转换,这些函数返回一个新的对象,表示转 ...

  10. Java基础知识强化23:Java中数据类型转换(面试题)

    1. 以下代码输出结果是( D ).                     public  class  Test   {                                       ...

随机推荐

  1. 基于Docker+DeepSeek+Dify:搭建企业级本地私有化知识库超详细教程

    在当今信息爆炸的时代,如何高效地管理和利用知识成为了企业竞争力的关键.为了帮助企业构建专属的知识库,本文将详细介绍如何使用Docker.DeepSeek和Dify来搭建一个企业级本地私有化知识库. 1 ...

  2. React项目报错:Element type is invalid: expected a string可能的原因

    React项目报错:Element type is invalid: expected a string  起因:React使用Antd组件库,因为某些原因实在用不下去了,代码不变直接改成Tdesig ...

  3. Asp.net core 少走弯路系列教程(四)JavaScript 学习

    前言 新人学习成本很高,网络上太多的名词和框架,全部学习会浪费大量的时间和精力. 新手缺乏学习内容的辨别能力,本系列文章为新手过滤掉不适合的学习内容(比如多线程等等),让新手少走弯路直通罗马. 作者认 ...

  4. Typora——锚点

    意思就是只能跳到标题(单击时可能需要按Ctrl),即# 开头的字段,格式很简单,例如对于一个二级标题,单击(按住Ctrl)"我想跳转",可以跳到"跳 到 这 里" ...

  5. Manus爆火,我发现平替开源项目OpenManus带你玩转AI智能体开发,无需邀请码!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 "在AI技术日新月异的今天,OpenManus像一把打开智能体开发大门的万能钥匙, ...

  6. TVM相关

    TVM介绍 为解决深度学习框架和硬件后端适配问题,华盛顿大学的陈天奇等人提出了TVM. TVM是一个端到端的全栈编译器,包括统一的IR堆栈和自动代码生成方法,其主要功能是优化在CPU.GPU和其他定制 ...

  7. WPF 的 await Application.Current.Dispatcher.InvokeAsync,Func 如果是Task , 等待赋值可能存在没有等待执行完成的问题

    最近在检查我们组内的代码,发现好多用到 await Application.Current.Dispatcher.InvokeAsync 相信好多WPF的开发都会用到 该方法做UI线程切换.但是细看里 ...

  8. MyBatis常见面试题:Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?

      MyBatis常见面试题:通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗?   Dao接口即Mapper接 ...

  9. 洛谷 P3396 哈希冲突

    洛谷 P3396 哈希冲突 Problem P3396 哈希冲突 Solution 本文摘自基础数据结构学习笔记 先想两种极端的做法 对于每个询问,暴力计算\(k,k+p,k+2\times p\do ...

  10. AI图像生成的"套娃"生意:一个月入240万美元的AI工具站

    AI图像生成的"套娃"生意:一个月入240万美元的AI工具站 今天和大家分享一个让我既佩服又警醒的案例--flux1.ai. 这个项目用最简单粗暴的方式,在AI图像生成这个红海市场 ...