6月22日Java学习

本文探讨了Java中的数据类型转换,包括浮点数到整数、整数到浮点数、字符到整数以及反之的转换,并详细讲解了变量命名规则和基本数据类型的兼容关系。此外,还深入分析了算术、赋值、比较、逻辑和位运算符的使用及区别,如i++与++i、&与&&、|与||、以及位运算的实例解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

public class text {
    public static void main(String[] args) {
        float a = 3.5;
        int b = a;
        System.out.println(b);
    }
}

打印b时会出现错误,因为不能兼容,数据从float转换到int可能会有损失。


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

public class text {
    public static void main(String[] args) {
        int a = 5;
        float b = a;
        System.out.println(b);
    }
}

打印会输出5.0,因为从数据可以从int转换到float,在赋值时会变成float数据类型。


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

public class text {
    public static void main(String[] args) {
        char a = 'A';
        int b = a;
        System.out.println(b);
    }
}

打印会输出65,因为'A'表示是得到A的ASCII码,赋值时会把原来的char类型转换成int类型。


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

public class text {
    public static void main(String[] args) {
        int a = 68;
        char b = a;
        System.out.println(b);
    }
}

打印会出现错误,因为不能兼容,数据从int转换到char可能会有损失。


5. 画出基本数据类型的兼容关系图


6. 变量的命名规则

(1).必须以字母、下划线、或者美元符开头;
①以美元符 开头命名的变量虽然能够编译通过但是不建议使用;
②中文也可以作为命名开头且编译也能通过,但是不建议使用。
(2).除开头外后面的部分可以有字母、下划线、美元符$以及数字组成;
(3).虽然变量名不限制长度,但能表达清楚命名的含义即可;
(4).变量名不可以和java的关键字冲突;

驼峰命名法

大驼峰式命名法(upper camel case): 每一个单字的首字母都采用大写字母,例如:MyName
小驼峰式命名法(lower camel case): 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName

标识符命名法

(1).所有变量、方法、类名:见名知意。

(2).类成员变量:首字母小写和驼峰原则:monthSalary。

(3).局部变量:首字母小写和驼峰原则

(4).常量:大写字母和下划线:MAX_VALUE。

(5).类名:首字母大写和驼峰原则:Man,GoodMan。

(6).方法名:首字母小写和驼峰原则:run(),runRun()。

标识符命名规则

(1).标识符:凡是自己可以起名的都叫标识符

(2).标识符由数字0-9和26个字母以及_和$组成

(3).标识符不能以数字开头

(4).JAVA语言严格区分大小写

(5).标识符不能包含空格


7. 分别用表格整理算术运算符, 赋值运算符,比较运算符,逻辑运算符,位运算符,单目运算符,三目运算符

算数运算符

+代表 加法

-代表 减法

*代表 乘法
/代表 除法
%代表 求、求模
//代表 整除
**代表 幂次方

 

赋值运算符

= 代表将右侧的值赋给左侧。     例如a=10

+= 例如a += 1  ---->a = a + 1
*= 例如a *=1 ---> a = a * 1
/= 例如a =10  a/=5     a= 10/5 = 2  
**= 例如 a = 10  a^^=2   a= 10 ^2 = 100
//= 这个结果只取整数,余数不取
%/ 这个只取余数

比较运算符

>代表 大于
<代表 小于
>= 代表 大于等于
<= 代表 小于等于
!= 代表 不等于
== 代表 等于判断。和=不一样,=是赋值。

逻辑运算符
运算符运算实例结果说明
&AND(与)true&falsefalse两边同true,则结果为true,否则为false。
&&AND(短路与)false&&truefalse若第一个为false,则不往后进行,因为已经确定两边不能同true了。
|OR(或)true|falsetrue只要有一个为true,则结果为true。否则为false。
^XOR(异或)true^falsetrue两边不同为true,相同为false。
||OR(短路或)true||falsetrue左边true则直接得到结果true。不往右进行。
!truefalse操作数为true,返回false。

位运算符

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


8. =和==的区别

(1)、二者的含义不同

=是赋值号;==是条件判断语句中是否相等的意思。

(2)、二者的作用不同

①、==

作用是将一个表达式的值赋给一个左值。一个表达式或者是一个左值,或者是一个右值。所谓左值是指一个能用于赋值运算左边的表达式。左值必须能够被修改,不能是常量。我们用变量作左值,还可以看到,指针和引用也可以作左值。

②、==

当左边的内容与右边的内容相同时,返回1。其余时候返回0。==是判断两个值大小是否相同的运算符。


9. i++和++i的区别

 (1)、 i++ 返回原来的值,++i 返回加1后的值。

 (2)、 i++ 不能作为左值,而++i 可以。


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

+操作数值是相加

+操作字符是字符对应编码相加

+操作字符串是把字符串拼接


11. &和&&的区别

&AND(与)true&falsefalse两边同true,则结果为true,否则为false。
&&AND(短路与)false&&truefalse若第一个为false,则不往后进行,因为已经确定两边不能同true了。


12. |和||的区别

|OR(或)true|falsetrue只要有一个为true,则结果为true。否则为false。
||OR(短路或)true||falsetrue左边true则直接得到结果true。不往右进行。


13. &可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么

逻辑运算符:不短路与(&),前后都为true才返回true;前面false,后面也可以执行,

前后可以是表达式。

位运算符:与(&),2位同时为1才返回1,只能用于前后是整形数据。


14. |可以作为逻辑运算符使用, 也可以作为位运算符使用, 区别是什么

逻辑运算符:不短路或(|),前后任一为true就返回true;前面true,后面也可以执行

前后可以是表达式。

位运算符:或(|),一位为1就返回1,只能用于前后是整形数据。


15. 什么是原码、反码、补码

原码 :最高位是符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制。

反码:正数的反码与原码一致,负数的反码是对原码按位取反,只是最高位(符号位)不变。 

补码:正数的补码与原码一致,负数的补码是对原码按位取反加1,符号位不变。

正数原码反码补码是一样的,以5为例

原码:00000101

反码:00000101

补码:00000101   按位取反~5 = 11111010     补码

                                                     11111001    反码

                                                     10000110    原码

以-5为例

原码:10000101

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

补码:11111011      补码=反码+1    按位非运算  ~5 = 00000100   补码反码原码


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

二进制300000011
二进制500000101
二进制100000001

3&5是与运算,与运算是当二者同为1是才返回1。


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

二进制300000011
二进制500000101
二进制700000111

3|5是或运算,或运算是当二者只要有一个为1就返回1。


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

原码500000101
反码00000101
补码00000101
取反后补码~11111010
反码11111001
原码-610000110


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

二进制300000011
二进制500000101
二进制600000110

3^5是异或运算,异或运算是当二者相同时返回0,二者不同返回1。


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

 8<<2       8*4

<---------------------

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

向左移两位

00001000
00100000


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

8>>2       8/4    正数高位补0,负数高位补1

------------------>

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

00001000
00000010


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

原码500000101
反码00000101
补码00000101
取反后补码~11111010
反码11111001
原码-610000110

原码-510000101
反码11111010
补码11111011
取反后补码~00000100
反码00000100
原码400000100


22. >>和>>>的区别是什么

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

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

(1)、如何最快速计算 8 * 4

通过左移计算


(2)、如何最快速计算 8 / 4

通过右移计算


23. 说说运算符的优先级, 以及如何改变优先级

 使用括号()可以改变优先级。


24. 什么是单目(一元), 双目(二元), 三目(三元)运算符


      单目: 运算符只对一个操作数进行运算
           ~5 按位非
           i++ 自增
           !a  逻辑取反
      双目: 运算符对两个操作数进行运算
              3 + 4
              5-2
              6*7
              8/2
              10%3
              a > b...........
      三目: 运算符对三个操作数进行运算
            ?:

25. 说说第二行代码中有几个运算符和运算顺序
int a = 10
char b = a++ > 10 ? 'A': 'B'
打印a
打印b 

第二行有四个运算符,最先是>,然后是++,接着是?:,最后是=。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值