zoukankan      html  css  js  c++  java
  • java初级易错问题总结

    1.什么是变量?变量的定义格式?要使用变量需要注意什么?
    就是可变的量
    数据类型 变量名 = 数值;
    同一范围内不能重复定义
    不赋值不能使用

    2.Java中的数据类型分几类?基本数据类型有哪些?
    两大类
        基本数据类型
            byte(1) short(2) int(4) long(8) float(4) double(8) char(2) boolean(1)
        引用数据类型
            类 接口 数组 枚举

    3.数据类型转换:
        隐式转换:由低级专向高级
        强制转换:由高级专向低级


        面试题:
            第一题:
            byte b1=3,b2=4,b;
            b=b1+b2;//错误 因为他们最终是要转向int类型 而int类型的值不能赋值给byte
            b=3+4;//正确 因为他们都是常量 具有常量类型优化机制 可以直接识别为byte
            哪句是编译失败的呢?为什么呢?

            第二题:
            byte  by = 130;有没有问题?有问题如何解决?结果是多少呢?
            有问题 因为这个数超出了byte的取值范围 要用byte类型进行强制转换 结果是-126

            第三题:
            byte b = 10;
            b++;
            b = b + 1;//失败 因为在和一个int类型的常量进行相加的时候b自动转换成int类型 而一个int类型的数据是没办法直接赋值给byte类型的变量的
            哪句是编译失败的呢?为什么呢?
    4.常见的算术运算符有哪些?
        答:+ - * / %
        (1)+运算符的作用有哪些?
            可以作为数学运算符 也可用作字符串拼接符
        (2)除法和取余的区别?
            除法是数学运算机型相初操作 取余数运算符是对除法操作之后取其余数进行操作的
        (3)++和--的使用规则?
            分别为自增 自减 在放在 变量前面就是先进行运算放在后面就是后进行运算

    5.常见的赋值运算符有哪些?
        答:= += -= *= /= %=
        (1)+=运算的作用是什么?
            a += b;== a = a + b;
        (2)扩展的赋值运算符有什么特点?
            会进行自动强制数据类型转换
    6. short s = 1; s = s + 1;有没有问题?如果有怎么解决?
        有问题 因为short类型的专用字节数比int小 但是1是int类型 在表达式进行运算的时候就吧其值提升为int类型了 而int类型不能直接赋值给short类型的变量可以同过强制数据类型转换来解决
       short s = 1; s += 1;有没有问题?如果有怎么解决?
        没有问题 因为使用的是扩展赋值运算符 这样的话就会实现自动强制数据类型转换    
    7.分析以下需求,并用代码实现:
        (1)已知一个三位数,请分别获取该三位数上每一位的数值
            代码1:
        public static void main(String[] args) {
            @SuppressWarnings("resource")
            char chs[] = String.valueOf(new Scanner(System.in).nextInt()).toCharArray();
            System.out.println("个位是:"+chs[2]+" 十位是:"+chs[1]+" 百位是:"+chs[0]);
        }
            代码2:
        System.out.println("个位是:" + (354 % 10) + " 十位是:" + (354 / 10 % 10) + " 百位是:" +(354 / 100));
        
        (2)例如:123的个位、十位、百位,分别是3、2、1
        (3)打印格式"数字123的个位是 3, 十位是 2, 百位是 1"

    8.看程序说结果,请不要提前运行?
        public class Test1 {
            public static void main(String[] args) {
                 int x = 4;
                 int y = (--x)+(x--)+(x*10);//26
                 System.out.println("x = " + x + ",y = " + y);
            }
        }

    x = 2
    y = 26

  • 相关阅读:
    前端获取后台传输过来是数据 {张三:12} 解析为[object object],获取其中内容
    Idea 配置Jrebel热部署
    软件清单
    js实现敲回车键登录
    myql忽略大小写问题解决
    磁盘分区(2):格式化与挂载文件系统
    磁盘分区(1):fdisk和parted
    初识Docker:BusyBox容器后台运行失败
    安装Docker:解决container-selinux >= 2.9问题
    重启nginx:端口被占用问题
  • 原文地址:https://www.cnblogs.com/gu-bin/p/9859110.html
Copyright © 2011-2022 走看看