IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> Java学习Day02 -> 正文阅读

[C++知识库]Java学习Day02

1.数据类型转换(必须拥有一致的数据类型)

①自动转换(小转大)

自动转换:将 取值范围小的类型 自动提升为 取值范围大的类型 。

PS:范围小的类型向范围大的类型提升, byte、short、char 运算时直接提升为 int,大致转换规则为byte、short、char——>int——>long——>float——>double

 public static void main(String[] args){
        byte b1=1;
        byte b2=2;
        byte b3=1 + 2;
        byte b4=b1 + b2;
        System.out.println(b3);
        System.out.println(b4);
    }

分析: b3 = 1 + 2 , 1 和 2 是常量,为固定不变的数据,在编译的时候(编译器javac),已经确定了 1+2 的结果并没有超过byte类型的取值范围,可以赋值给变量 b3 ,因此 b3=1 + 2 是正确的。 反之, b4 = b2 + b3 , b2 和 b3 是变量,变量的值是可能变化的,在编译的时候,编译器javac不确定b2+b3的结果是什么,因此会将结果以int类型进行处理,所以int类型不能赋值给byte类型,因此编译失败。 ?

②强制转换(大转小)

将取值范围大的类型 强制转换成 取值范围小的类型 。 比较而言,自动转换是Java自动执行的,而强制转换需要我们自己手动执行。

转换格式:数据类型 变量名 = (数据类型)被转数据值;

public static void main(String[] args) {
        //short类型变量,内存中2个字节
        short s = 1;
        /*
        出现编译失败
        s和1做运算的时候,1是int类型,s会被提升为int类型
        s+1后的结果是int类型,将结果在赋值会short类型时发生错误
        short内存2个字节,int类型4个字节
        必须将int强制转成short才能完成赋值
        */
        s = s + 1;//编译失败
        s = (short)(s+1);//编译成功
    }

③原码、反码、补码

正数:三码相同。

负数:原码:任意数(正数)除以2取余。(倒取)

? ? ? ? ? ?反码:原码除最高符号位不变其余位置取反。

???????????补码:反码加1

十进制常数160的原码、反码、补码为1010 0000

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?反码:1001 1111( 补码-1)

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?原码:1110? 0000(反码取反)

-(1*2^6+1*2^5)=-96?

?2.运算符

①算数运算符

②比较运算符

③逻辑运算符

   public static void main(String[] args) {
        System.out.println(true && true);//true
        System.out.println(true && false);//false
        System.out.println(false && true);//false,右边不计算
        System.out.println(false || false);//falase
        System.out.println(false || true);//true
        System.out.println(true || false);//true,右边不计算
        System.out.println(!false);//true
    }

位运算符:

&|^~<<>>?>>>
有0则0有1则1相同则0,不同则1按位取反左移?右移无符号右移


?? ??? ??? ?
?? ??? ??? ?
左移:空位补0,被移除的高位丢弃。
?? ??? ????注:当左移的运算数是byte 和short类型时,将自动把这些类型扩大为 int 型。
右移:被移位的二进制最高位是0,右移后,空缺位补0;最高位是1,高位补1空位1
无符号右移:被移位二进制最高位无论是0或者是1,空缺位都用0补。

0000 0101(5原反补)

1000 0011(-3原)

0000 0011(3原)

1111 1100(-3反)?

1111 1101(-3补)

例:5|-3? 1111 1101(补)——>1111 1100(反)——>1000 0011(原)——>-3

? ? ? ?5^-3 1111 1000(补)——>1111 0111(反)——>1000 1000(原)——>-8

? ? ? ? ~-3?1111 1101(补)——>0000 0010(取反)——>三码合一——>2

④赋值运算符

⑤三目运算符

三元运算符格式: 数据类型 变量名 = 布尔类型表达式?结果1:结果2

?3.方法的定义与调用

①定义

定义格式:

修饰符 返回值类型 方法名 (参数列表){
	代码...
	return ;
}

定义格式解释:

  • 修饰符: 目前固定写法 public static 。

  • 返回值类型: 目前固定写法 void ,其他返回值类型在后面的课程讲解。(八大基本数据类型)

  • 方法名:为我们定义的方法起名,满足标识符的规范,用来调用方法

  • 参数列表: 目前无参数, 带有参数的方法在后面的课程讲解

  • return:方法结束。因为返回值类型是void,方法大括号内的return可以不写

②方法调用

public class Test7 {
    public static void main(String[] args) {
        printNum();
    }
    public static void printNum(){
        float f1=12345.01f;
        float f2 = 12345.00f;
        float var1 = f1 >= f2 ? 12456 : 12456.02f;
        float var2=var1+1024;
        System.out.println("var1的值为:" + var1 + "var2的值为:" + var2);

    }
}

注:方法在定义完毕后,方法不会自己运行,必须被调用才能执行,我们可以在主方法main中来调用我们自己定义好的方法。在主方法中,直接写要调用的方法名字就可以调用了。

实现两个变量交换的三种方法:

public class Demo2 {
    public static void main(String[] args) {
        int a=2,b=5;
       /* int temp;
        temp=a;
        a=b;
        b = temp;*///方式一

       /* a=a+b;
        b = a - b;
        a = a-b;*///方式二
        a=a^b;
        b=a^b;
        a=a^b;//方式三
        System.out.println("a="+a+",b="+b);
    }
}

  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-08 10:29:29  更:2021-09-08 10:31:54 
 
开发: 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/23 20:45:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码