栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java 语法踩坑集合

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java 语法踩坑集合

类型转换

变量相加,首先提升类型,再做操作。
常量相加,它先做操作,然后判断结果是否在左边的范围内容,如果在就不报错。如果不在,报错。

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		byte b1=3,b2=4,b;
		// b = b1+b2; // 右边类型自动提升
		b = (byte)(b1+b2); // 显示类型转换
		b = 3+4;
	}

    (1)计算机中数据的存储和运算都是采用补码进行的。
    (2)数据的有符号表示法
        用0表示正号,1表示负号。
        A:原码
            正数:正常的二进制
            负数:符号为为1的二进制
        B:反码
            正数:和原码相同
            负数:和原码的区别是,符号位不变,数值位取反。1变0,0变1
        C:补码
            正数:和原码相同
            负数:反码+1

(3)补充:float浮点数在计算机中的表示
            符号位        指数位        底数位
            S        E        M

public static void main(String[] args) {
		// byte b = 130;

		// 解决方案
		// 方案1
		// int a  = 130;
	
		// 方案2
		byte b = (byte) 130;
		System.out.println(b); // -126
	}

算术运算符
    // %的最终结果和第一个数据的符号相关。
	// 用%,如果余数为0,说明整除。
	System.out.println(5%3); //2
	System.out.println(5%-3);//2
	System.out.println(-5%3);//-2
	System.out.println(-5%3);//-2

++,--:自增自减运算符。
A:单独使用
    放在操作数据的前后,效果一样。
B:参与操作使用
    放在操作数前面,先自增或者自减,然后再参与运算
    放在操作数后面,先参与运算,然后再自增或者自减

int a = 10;
int b = a++;
System.out.println(a);//11
System.out.println(b);//10
System.out.println("------------");

int c = 10;
int d = ++c;
System.out.println(c);//11
System.out.println(d);//11

System.out.println("------------");
int e = 10;
//e++;
++e;
System.out.println(e); //11

int i = 1;
System.out.println(i++ + ++i + i++ + ++i);//1+3+3+5

赋值运算符
// short s = 1;
// s = s + 1; 
// 有问题,可能损失精度

short s = 1;
s += 1; //s = s + 1;
// 这个是没有问题的。
// 因为这个式子等价于:
// s = (s的数据类型)(s + 1);

关系运算符与逻辑运算符

&&和&的区别? 前者为关系运算符,有短路效果,只要左边是false,右边不执行。而后者为逻辑运算符,全部执行。
||和|的区别? 前者为关系运算符,有短路效果,只要左边是true,右边不执行。而后者为逻辑运算符,全部执行。

位运算符
A:计算出3,4的二进制
	3的二进制:00000000 00000000 00000000 00000011
	4的二进制:00000000 00000000 00000000 00000100
B:位&运算	有0则0
	00000000 00000000 00000000 00000011
   &00000000 00000000 00000000 00000100
   ------------------------------------
	00000000 00000000 00000000 00000000
C:位|运算	有1则1
	00000000 00000000 00000000 00000011
   &00000000 00000000 00000000 00000100
   ------------------------------------
	00000000 00000000 00000000 00000111
D:位^运算	相同则0,不同则1
	00000000 00000000 00000000 00000011
   &00000000 00000000 00000000 00000100
   ------------------------------------
	00000000 00000000 00000000 00000111
E:位~运算 把数据每个位都按位取反
	00000000 00000000 00000000 00000011
   ~11111111 11111111 11111111 11111100
 反:11111111 11111111 11111111 11111011
 原:10000000 00000000 00000000 00000100
F:<<
	4的二进制:
		00000000 00000000 00000000 00000100
	(00)000000 00000000 00000000 0000010000

G:>>>
	原:10000000 00000000 00000000 00100000
	反:11111111 11111111 11111111 11011111
	补:11111111 11111111 11111111 11100000

	>>>
		11111111 11111111 11111111 11100000
		0011111111 11111111 11111111 111000(00)
参考或转载

https://github.com/DuGuQiuBai/Java

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/704542.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号