Skip to content

Java03-数据类型与运算-数据类型与运算

Task1.变量和数据类型

变量用于存放数据。

在Java中,变量分为基本类型和引用类型(类似于CS中的指针变量)。

基本类型有八种,都是Java语言预先定义好的关键字,分别是整型(4种),字符型(1种),浮点型(2种),布尔型(1种)

  1. 说出这八种基本数据类型,

  2. 说出四种整型数据类型占用的字节数和表示范围

不同的基本数据类型之间进行计算,比如int类型和long类型的变量相加,需要进行类型转换,请了解自动类型转换和强制类型转换。

  1. int a=4
    char c='0';
    int b=a+c;
    
    请回答这个过程涉及到的是自动类型转换还是强制类型转换,b的值是多少,为什么会是这个值。
    int a=4
    char c='0';
    int b=a+c;
    
    请回答这个过程涉及到的是自动类型转换还是强制类型转换,b的值是多少,为什么会是这个值。
  2. [拓展]请了解包装类,引用类型和基本数据类型缓存池。给出下面代码的输出结果并解释原因。

    Integer x = new Integer(18);
    Integer y = new Integer(18);
    System.out.println(x == y);
    
    Integer z = Integer.valueOf(18);
    Integer k = Integer.valueOf(18);
    System.out.println(z == k);
    
    Integer m = Integer.valueOf(300);
    Integer p = Integer.valueOf(300);
    System.out.println(m == p);
    Integer x = new Integer(18);
    Integer y = new Integer(18);
    System.out.println(x == y);
    
    Integer z = Integer.valueOf(18);
    Integer k = Integer.valueOf(18);
    System.out.println(z == k);
    
    Integer m = Integer.valueOf(300);
    Integer p = Integer.valueOf(300);
    System.out.println(m == p);

Task2.运算符

运算符分为算数运算符、关系运算符、位运算符、逻辑运算符、赋值运算符、三元运算符。请了解上述运算符后回答下列问题。

  1. 算数运算符除了我们熟知的加减乘除(+ - * /)外,还有取余(%),自增(++),自减(--)。为了加深你对于自增运算符的理解,请执行下列代码,给出结果,并大概解释计算的过程。
int a = 5 ;
int b = 7 ;
int c= (++a) + (b++)
System.out.println( c );
System.out.println(a+" "+b);
int a = 5 ;
int b = 7 ;
int c= (++a) + (b++)
System.out.println( c );
System.out.println(a+" "+b);

对初学者来说,位运算符比较难理解。其实位运算就是对数字背后的二进制形式进行操作。比如5<<1,表示把5往左移一位,就是先将5转化为二进制101,把101往左移动1位,不够的位用0补位,得到1010,还原为十进制的大小就是10。

  1. [拓展] 请了解补码。

    若a=0010(二进制),说出 a&(-a) 的二进制形式是什么。对于任意的非负整数a,式子a&(-a)表示的数是什么,为什么得到这个结果(不用严格证明)。

    其实这是一个著名的函数lowbit,应用之一就是树状数组。

出题人QQ:2575824162

本题提交方式

提交点这里

主题示例:2024090101012-张三-JAVA-03