6月22日Java学习

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

        double a = 3.5;
        int b = (int) a;  //这里需要对double类型的变量a进行强制转换为int类型
        System.out.println(b);

打印结果为:

 

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

    public static void main(String[] args) {
        int a = 5;
        float b =  a;    //这里不需要强制转换,原因后面会说到
        System.out.println(b);

    }

打印结果为:

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

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

    }

打印结果为:

 

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

    public static void main(String[] args) {
        int a = 68;
        char b= (char) a; //需要进行强制转换

        System.out.println(b);

    }

打印结果为:

 

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

 

6.变量的命名规则 驼峰命名法 大驼峰 小驼峰 连字符命名法

 (1)变量的命名规则

    a.变量可以由字母、数字、下划线和美元符号$组成,其中数字不能打头

    b.变量不能是Java关键字和保留字,但可以包含关键字和保留字。

    c.变量不能包含空格。

 

    d.变量只能包含美元符号$,不能包含@、#等其他特殊字符

                                                  Java中的50个关键字

  (2)驼峰命名法

     a.驼峰命名法:当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母,例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。

    b.小驼峰法:变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如int myStudentCount;变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。常用于函数名。

    c.大驼峰法:相比小驼峰法,大驼峰法(即帕斯卡命名法)把第一个单词的首字母也大写了。常用于类名,属性,命名空间等。譬如public class DataBaseUser;

  (3)连字符命名法

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

   (1)算术运算符

      运算符

       运算

              表达式示例

           结果

+加法int a = 5,b = 3;   a  +  b8
-减法int a = 5,b = 3;   a  -  b2
*乘法int a = 5,b = 3;   a  *  b15
/除法int a = 5,b = 3;   a  /  b1
%取余int a = 5,b = 3;   a % b2
++自加int a = 5,b ;   b = a++; b= ++a;5   ,    6
--自减int a = 5,b;   b =a--; b = --a;5   ,    4

(2)赋值运算符

运算符

运算

表达式示例

结果

=赋值int b = 5;5

(3)比较运算符

     运算符

       运算

              表达式示例

           结果

>大于int a = 5,b = 3;   a  >  btrue
>=大于等于int a = 5,b = 3;   a  >=  btrue
<小于int a = 5,b = 3;   a  <  bfalse
<=小于等于int a = 5,b = 3;   a  <=  bfalse
==等于int a = 5,b = 3;   a == bfalse
!=不等于int a = 5,b = 3;      a != b;true

 (4)  逻辑运算符

运算符

运算

表达式示例

结果

说明

&&短路与true && truetrue前后两个操作数必须都是true才返回true,否则返回false。当前一个操作数为false时,后一个操作数不进行运算,直接返回false。
&不短路与true && falsefalse前后两个操作数必须都是true才返回true,否则返回false。当前一个操作数为false时,后一个操作数也要进行运算,然后返回false。
||短路或true || falsetrue前后两个操作数必须都是false才返回false,否则返回true。当前一个操作数为true时,后一个操作数不进行运算,直接返回true。
|不短路或false | falsefalse前后两个操作数必须都是false才返回false,否则返回true。当前一个操作数为true时,后一个操作数也要进行运算,然后返回true。
! truefalse只需要一个操作数,如果操作数为true,则返回false;如果操作数为false,则返回true。
^异或true ^ falsefalse当两个操作数不同时才返回true,如果两个操作数相同则返回false。

(5)位运算符

运算符

运算

表达式示例

结果

说明

&按位与3 & 51当两位同时为1时才返回1
|按位或3 | 57只要一位为1即可返回1
~按位非~ 3-4单目运算符,将操作数的每个位(包括符号位)全部取反
^按位异或3 ^ 56当两位相同时返回0,不同时返回1
<<左移运算符8 << 232高位舍弃,低位以0补充
>>有符号右移运算符8 >> 22正数最高位补0,负数最高位补1
>>>

无符号右移

运算符

8 >>> 22无论正数负数,高位都是补0

(6)单目运算符

      运算符只对一个操作数进行运算

(7)三目运算符

运算符

运算

表达式示例

结果

说明

?:三目运算符5 > 3?yes:noyes
操作数1必须是boolean类型,或者是一个表达式,运算结果是boolean类型,操作数2和操作数3的类型必须是一样,操作数1为true,则操作数2是整个表达式的运算结果,操作数1为false,则操作数3是整个表达式的运算结果

8.=和==的区别

= 是赋值,==是比较运算符,判断左右是否相等,返回true / false

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

i++是先赋值后自加

++i是先自加后赋值

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

+操作数值是相加

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

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

11.&和&&的区别

&是不短路与,前后都为true才返回true;前面false,后面也执行

&&是短路与,前后都为true才返回true;前面false,后面不执行

12.|和||的区别

|是不短路或,前后任一为true就返回true;前面true,后面也执行

||是短路或,前后任一为true就返回true;前面true,后面不执行

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

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

前后可以是表达式

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

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

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

前后可以是表达式

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

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

原码:原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。
反码:正数的反码是其本身。负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
补码:正数的补码就是其本身。负数的补码是在其原码的基础上, 符号位不变, 其余各位取反, 最后+1

正数的原反补一样

如3:

原码:00000011

反码:00000011

补码:00000011

负数的反码是原码符号位不变其他位取反

负数的补码的反码加一

如-3:

原码:10000011

反码:11111100

补码:11111101

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

300000011
500000101
3&500000001
结果                                                                       1

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

300000011
500000101
3|500000111
结果                                                                       7

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

500000101
~510000110
结果                                                                       -6

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

300000011
500000101
3^500000110
结果                                                                       6

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

800001000
8<<200100000
结果                                                                       32

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

800001000
8>>200000010
结果                                                                       2

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

500000101
~500100100
结果                                                                       -6

-510001000
~-500000100
结果                                                                       4

23.>>和>>>的区别是什么 如何最快速计算 8 * 4 如何最快速计算 8 / 4

>>: 整体向右移,右边移出的截断,左边空的用符号位填充

>>>:整体向右移,右边移出的截断,左边空的用0填充

快速计算8 * 4: 8<<2

快速计算 8 / 4 :  8>>2

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

                                            运算符优先级

 加()号改变优先级

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

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

~5按位非、i++自增、!a取反

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

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

?:

26.说说第二行代码中有几个运算符和运算顺序

      int a = 10

      char b = a++ > 10 ? 'A': 'B'

      打印a

      打印b

第二行代码中一共有四个运算符:++、>、?:、=

运算顺序:>、++、?:、=

27.流程控制与数组预习

(1)顺序结构

        任何编程语言中最常见的程序结构就是顺序结构。顺序结构就是程序从上到下逐行的执行,中间没有任何判断和跳转。

        如果main方法的多行代码之间没有任何流程控制,则程序总是从上向下依次执行,排在前面的代码先执行,排在后面的代码后执行。这意味着:如果没有流程控制,Java方法里的语句是一个吮吸执行流,从上向下依次执行每条语句。

(2)分支结构

        Java提供了两种常见的分支结构:if语句和switch语句,其中if语句使用boolean表达式或boolean值作为分支条件来进行分支控制;而switch语句则用于对多个整型值进行匹配,从而实现分支控制。

(3)循环结构

        循环语句可以在满足循环条件的情况下,反复执行某一段代码,这段被重复执行的代码被称为循环体。当反复执行这个循环体时,需要在合适的时候把循环条件改为假,从而结束循环,否则循环将一直执行下去,形成死循环。

(4)控制循环结构

        Java语言没有提供goto语句来控制程序的跳转,这种做法提高了程序流程控制的可读性,但降低了程序流程控制的灵活性。为了弥补这种不足,Java提供了continue和break来控制循环结构。除此之外,return可以结束整个方法,当然也就解释了一次循环。

(5)数组类型

        数组是编程语言中最常见的一种数据结构,课用于存储多个数据,每个数组元素存放一个数据,通常课通过数组元素的索引来访问数组元素,包括为数组元素赋值和取出数组元素的值。Java语言的数组则具有其特有的特征,Java的数组要求所有的数组元素具有相同的数据类型。因此,在一个数组中,数组元素的类型是唯一的,即一个数组里只能存储一种数据类型的数据,而不能存储多种数据类型的数据。此外,Java语言中数组必须先初始化,然后哦才可以是同。所谓初始化,就是为数字的数组元素分配内存空间,并为每个数组元素赋初始值。

(6)深入数组

        数组是一种引用数据类型,数组引用表变量只是一个引用,数组元素和数组变量在内存里是分开存放的。下面将深入介绍数组在内存中的运行机制。

        1)内存中的数组

        数组引用变量只是一个引用,这个引用变量可以指向任何有效的内存,只有当改引用指向有效内存后,才可通过该数组变量来访问数组元素。

        2)基本类型数组的初始化

        对于基本类型数组而言,数组元素的值直接存储在对应的数组元素中,因此,初始化数组时,纤维该数组分配内存空间,然后直接将数组元素的值存入对应数组元素中。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值