JAVA学习DAY-2

本文详细讲解了不同数据类型间的转换、基本数据类型的兼容关系、变量命名规则(驼峰命名法和连字符命名法),以及运算符的各类用法,包括算数、逻辑、位运算符及其区别。特别关注了赋值、比较、短路逻辑和位操作的实例与原理。
摘要由CSDN通过智能技术生成

目录

一.不同数据类型的打印

二.基本数据类型的兼容关系图

三.变量命名规则:

驼峰命名法:

1.大驼峰

2.小驼峰

连字符命名法:

四.运算符

1.算数运算符

1. ++运算符

2. - - 运算符(例子同++运算符)

2.比较运算符

3.逻辑运算符

4.赋值运算符

5.位运算符

左移和右移

6.单目运算符

7.双目运算符

8.三目运算符

五.运算符中的一些区别

1.=和==的区别

2.+运算符操作数值, 字符, 字符串的区别是什么

 3.&和&&的区别、|和||的区别

什么是短路现象呢?

什么时候使用&&,什么时候使用& ?

总结

4.&作为逻辑运算符和位运算符时的区别

&作为逻辑运算符时:

&作为位运算符时:

5. | 作为逻辑运算符和位运算符时的区别

| 作为逻辑运算符时:

| 作为位运算符时:

6.>>和>>>的区别

六.原码、反码、补码

七.图解一些运算过程和结果

  1. 图解3&5的运算过程和结果

2. 图解3|5的运算过程和结果

3.图解~5和~ -5 的运算过程和结果

4.图解3^5的运算过程和结果

 5. 图解8<<2的运算过程和结果

6.图解8>>2的运算过程和结果

7.三目运算实例


一.不同数据类型的打印

1. float a = 3.5; int b = a; 打印b的结果是什么

无法打印,因为 a是float型,b是int型。a到b是float-->int属于向下转型,需要强制类型转换。

2. int a = 5; float b = a; 打印b的结果是什么

a是int型,b是float型。a到b是int-->float属于向上转型,自动转型。

3. char a = 'A'; int b = a; 打印b的结果是什么

将char类型的a 转化到int类型的b, 从字符集中找到A的数值 赋值给b

 

4. int a = 68; char b = a; 打印b的结果是什么

无法打印,因为 a是int型,b是char型。a到b是int-->char属于向下转型,需要强制类型转换。

二.基本数据类型的兼容关系图

三.变量命名规则:

驼峰命名法:

     驼峰命名法是指多个单词组合在一起标识一个特定的含义时,第一个单词全部小写,第二个以及之后的单词首字母大写其余小写的命名规则,其中分为小驼峰法大驼峰法

1.大驼峰

  • 全部单词首字母大写,如CheckName
  • 主要用于接口名类名

2.小驼峰

  • 第一个单词首字母小写,其他单词首字母大写,如getMyName
  • 一般用于变量名方法名

连字符命名法:

     单词之间通过连字符“-”连接,比如“background-color

四.运算符

1.算数运算符

运算符含义

+

求和
-相减
*乘积
/
%求余数(求模)
++自加1

- -

自减1

1. ++运算符

   (1)++在变量前

当++出现在变量前,会先自加一,在做赋值运算

	int x = 100;
	int y = ++x;
	步骤: ②	 ①
	System.out.println(x); // 101
	System.out.println(y); // 101

    (2)++在变量后

当++出现在变量后,会先做赋值运算,再自加1

	int m = 20;
	int n = m++;
	步骤: ①	 ②
	System.out.println(n); // 20
	System.out.println(m); // 21

(3) 特别地,在print中

	int c = 90;
	System.out.println(c++);  // 传,这个“传”在这里有一个隐形的赋值运算。90
	// 把上面代码拆解开
	//int temp = c++;
	//System.out.println(temp);
	
	
	int d = 80;
	System.out.println(++d); //81
	// 拆解
	//int temp2 = ++d;
	//System.out.println(temp2);

2. - - 运算符(例子同++运算符)

(1) --在变量前

当–出现在变量前,会先自减一,在做赋值运算

(2) --在变量后

当–出现在变量后,会先做赋值运算,再自减1

注意:
对于++运算符来说:
     1.可以出现在变量前,也可以出现在变量后。
     2.不管出现在变量前还是后,总之++执行结束之后,变量的值一定会自加1。

2.比较运算符

运算符        含义
>大于
>=大于等于
<小于
<=小于等于
==等于
!=不等于

注意:所有的关系运算符的运算结果都是布尔类型,不是true就是false,不可能是其他值。

3.逻辑运算符

运算符含义结果
&逻辑与(可以翻译成并且)两边都是true,结果才是true
逻辑或(可以翻译成或者)有一边是true,结果就是true
!逻辑非(取反)!true = false、!false = true
&&短路与两边都是true,结果才是true
││短路或有一边是true,结果就是true

4.赋值运算符

运算符含义
=赋值
+=加等(原先的基础上加上/追加这个数)
-=减等(同理)
*=乘等(同理)
/=除等(同理)
%=模等(同理)

5.位运算符

运算符含义
&按位与,当两位同时为1时才返回1
|按位或,只要有一位为1即返回1
~按位非,单目运算符,将操作数的每个位(包括符号位)全部取反
^按位异或,当两位相同时返回0,不同时返回1
<<左移运算符
>>右移运算符
>>>无符号右移运算符

左移和右移

左移

<<

8 << 2    左移两位  相当于 8*4

高位 -- 低位

0000  1000

高位舍弃2位  低位以0填充

0010  0000

右移

>>:有符号右移,正数最高位补0,负数最高位补1

8 >> 2    右移两位  相当于 8/4

高位 -- 低位

0000  1000

高位以0填充 低位舍弃2位

0000 0010

>>>:无符号右移,无论正数或负数,最高位都是补0

如何最快速计算 8*4   8<<2

如何最快速计算 8/4   8>>2

6.单目运算符

 单目(一元):运算符只对一个操作数进行运算

运算符含义
~按位非
i++自增
!a逻辑取反

7.双目运算符

双目:运算符对两个操作数进行运算(很多)

   3 + 4

   5 - 2

  6 * 7

  8 / 2

  10%3

  a > b     ........

8.三目运算符

三目:运算符对三个操作数进行运算

?   :

五.运算符中的一些区别

1.=和==的区别

=:赋值运算符,将右边的值赋值给左边,例如 a = b 即将b的值赋给a。

==:比较运算符,判断左右两边值是否相等,运算结果为布尔类型,不是true就是false。

2.+运算符操作数值, 字符, 字符串的区别是什么

 3.&和&&的区别、|和||的区别

什么是短路现象呢?

   右边表达式不执行,这种现象叫做短路现象。

什么时候使用&&,什么时候使用& ?

   从效率方面来说,&&比&的效率高一些。因为逻辑与&不管第一个表达式结果是什么,第二个表达式一定会执行。以后的开发中,短路与&&和逻辑与还是需要同时并存的。大部分情况下都建议使用短路与&&只有当既需要左边表达式执行,又需要右边表达式执行的时候,才会选择逻辑与&。
 

总结

  1. 使用短路与 && 的时候,当左边的表达式为false的时候,右边的表达式不执行
  2. 使用短路或 || 的时候当左边的表达式结果是true的时候,右边的表达式不执行

注意:逻辑运算符两边要求都是布尔类型,并且最终的运算结果也是布尔类型。

4.&作为逻辑运算符和位运算符时的区别

&作为逻辑运算符时:

运算结果是布尔型,两边都是true,结果才是true

&作为位运算符时:

&按位与 当两位同时为1 则返回1

例如:

byte a = 3;  //0000 0011
byte b = 5;  //0000 0101

 a & b 按位与 得到结果0000 0001  即是1

5. | 作为逻辑运算符和位运算符时的区别

| 作为逻辑运算符时:

     运算结果是布尔型,两边都是true,结果才是true

| 作为位运算符时:

     | 按位或 只要有一位是1 则返回1 

例如:

byte a = 3;  //0000 0011
byte b = 5;  //0000 0101

a | b 按位或 得到结果 0000 0111 即是7

6.>>和>>>的区别

>>:有符号右移,正数最高位补0,负数最高位补1

8 >> 2    右移两位  相当于 8/4

高位 -- 低位

0000  1000

高位以0填充 低位舍弃2位

0000 0010

>>>:无符号右移,无论正数或负数,最高位都是补0

如何最快速计算 8*4   8<<2

如何最快速计算 8/4   8>>2

六.原码、反码、补码

计算机中存储的是补码


 

七.图解一些运算过程和结果

  1. 图解3&5的运算过程和结果

 结果为1

2. 图解3|5的运算过程和结果

结果为7

3.图解~5和~ -5 的运算过程和结果

计算机中存储的是补码

5:

正数原码、反码、补码是一样的

原码:0000 0101

反码:0000 0101

补码:0000 0101    --->按位取反 ~5 = 1111 1010   补码

                                                              1111 1001  反码

                                                              1000 0110  原码

                                                      ~5 结果是 -6

-5:

原码:1000 0101

反码:1111 1010  反码=原码取反(除符号位)

补码:1111 1011 补码=反码+1  ---> ~ -5 = 0000 0100 补码

                                                                   0000 0100 反码

                                                                   0000 0100 原码

                                                     ~ -5的结果是 4

4.图解3^5的运算过程和结果

 5. 图解8<<2的运算过程和结果

结果为32

6.图解8>>2的运算过程和结果

结果为4

7.三目运算实例

 一共有4个运算符

逻辑运算符       三目运算符  ?:

算数运算符++      赋值运算符  =

 运算顺序:

( 先 > 再  ?:  再 ++  再 =  )

先判断a>10  因为a=10所以不成立 所以通过?:选择 'B',字符'B'赋值给了b,a++后a的值变为11

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值