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 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【JAVASE】初学者注意的几个问题 -> 正文阅读

[Java知识库]【JAVASE】初学者注意的几个问题

赋值运算符

  1. 赋值运算符包括“基本赋值运算符”和“扩展赋值运算符”

  2. 基本赋值运算符就是常见的“ = ”

  3. 扩展赋值运算符即:+=,-=,/=,%=

  4. 一个重要的语法机制:

    使用扩展赋值运算符的时候,永远不会改变运算结果类型

    例如:

    byte a = 100;	
    a += 36;
    System.out.println(a);	//结果: a=-120
    

    经过扩展赋值运算符的计算,虽然a=136超过了127也没关系,因为a变量经过扩展运算符计算后的类型永远都是byte。计算数字太大只是会损失精度。

    但是下面的程序就会出错:

    byte b = 8;
    b -= 1;
    System.out.println(b);
    /*
    	错误: 不兼容的类型: 从int转换到byte可能会有损失
                x=x+1;
     	程序报错,x是byte类型,1是int型,相加自动转换为int型,int型不能直接赋值给byte,应该强制转换,即x=(byte)(x+1);
    */
    

    5.顾从本质上而言, x = x + 1 和 x += 1两者完全不同: x = (byte)(x + 1) 才等价于 x += 1;

byte、short、char混合运算

//对于char、short和byte这三种类型在进行混合运算时都会进行整形提升,全部提升到int型计算
byte a = 12;
short b = 34;
char c = 97;
int sum1 = a + b;	//46
int sum2 = a + c;	//109
short sum3 = a + b;	//Incompatible types. Found: 'int', required: 'short'
//如果用short接收,必须强制转换
short sum4 = (short)(b + c);	//131

int、String 和Integer之间的转换

直接上转换图:
int、Integer和String的相互转换

移位运算符

  1. 移位运算符有三个: << >> >>>

  2. 左移 << 最右侧补0

    int x = 16;
    x = x << 1;
    System.out.println(x);	//32
    x = x << 1;
    System.out.println(x);	//64
    //可见左移N位,相当于原数字乘2的N次方
    

    3.右移 >> 最左侧补符号位

    x = -8;
    x = x >> 1;
    System.out.println(x);	//-4
    x = x >> 1;
    System.out.println(x);	//-2
    //可见右移N位,相当于原数字除2的N次方
    

    4.无符号右移 >>> 即不论正负,最左侧一律补0

    x = -8;
    x = x >>> 1;
    System.out.println(x);	//2147483644
    x = x >>> 1;
    System.out.println(x);	//1073741822
    //这里详细的过程就不展示了
    

    5.注意没有“无符号左移” <<<

Switch可取的值

  1. switch语句支持int类型和String类型
  2. 在jdk8之后,switch才开始支持字符串String类型的
  3. switch语句在本质上只支持int类型和String类型,但是byte、short、char和枚举也可以使用在switch语句中,因为byte、short、char可以进行类型转换。
  4. 上面四种基本数据类型对应的包装类也是可以用在switch中,即Byte、Short、Character和Integer
  5. switch中的值与case的值是使用“==”进行比较的。

关于自增的几个特殊案例

直接上题目:

int i = 10;
i = i++;
System.out.println(i);    //java中结果是10


int i = 10;
i = ++i;
System.out.println(i);    //java中结果是11


int i = 10;
int a = i + i++;  
System.out.println(a);   //java中计算结果是20 


int i = 10;
int a = i + ++i;
System.out.println(a);	//在java中是10 + 11 = 21,而在C中是i先自增再相加,结果是22


int i = 10;
int a = i + --i;
System.out.println(a);	//java中结果是19


int i = 10;
int a = i + i--;
System.out.println(a);	//java中结果是20

感言

第一次发博客,稍有激动。以上内容可能会有知识错误,如有发现欢迎大家指出。最后,希望能帮到一些需要的人。

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-09-09 11:36:30  更:2021-09-09 11:38:06 
 
开发: 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 16:49:24-

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