蓝桥杯刷题从此开始:
第一题就是两个数的和,个人看来主要考察 int与integer 的区别;
这是我提交的答案,竟然会报错:
import java.util.*;
//输入A、B,输出A+B。
class add {
public static void main(String []args){
Scanner scn=new Scanner(System.in);
int a=scn.nextInt();
int b=scn.nextInt();
System.out.println(a+b);
}
}
这是标准答案,运行没有问题;
import java.util.*;
class Main
{
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
Integer a = sc.nextInt();
Integer b = sc.nextInt();
System.out.println(a + b);
}
}
其差别在于使用的数据类型是 int 还是 integer !
这也是一个面试官常问的问题,主要考查面试者对面向对象的理解程度以及面试者的基本功,我们主要从封装类型的功能和特性出发即可;
他们的差别如下:
Integer 是基本数据类型 int 的封装类,在Java中,有八种基本数据类型,它们都有一一对应的封装类型;
1. int 类型直接定义一个变量名赋值即可,而封装类型一般需要关键字 new 来创建对象,当然也可以像基本数据类型那样直接使用,如下:
Integer a = sc.nextInt();
Integer b = sc.nextInt();
2. 基本数据类型int和封装类型 Integer 混合使用的时候 Java 会通过自动拆箱,装箱来实现类形转换;
3 .Integer 作为一个对象类型,封装了一些方法和属性,我们可以利用这些方法更加方便的操作数据;
4. integer 存储在堆内存中,它的默认值是 null , int 存储在栈内存中,它的默认值是 0;
Java本身是一门面向对象的操作语言,对象是Java的基本操作对象,好比表是数据库的基本组成部分一样,我们时时刻刻都在创作对象,使用对象,在传递数据的时候我们最好也使用对象类型,即基本数据类型的封装类型,这会更加方便我们对数据的操作,此外,它也有很多好处,比如安全性高,隐藏了实现细节等等;