1.Java中有哪些基本数据类型?String是基本数据类型吗?String类是否能够继承?
答:1.java定义了4中类8种基本类型:
整型:byte、short、int、long
浮点型:float、double
布尔型: boolean
字符型: char
2.String不是基本数据类型,String属于引用类型。
3.String类是一个final类,因此不能被继承。
2.简述++i和i++的区别?
答:
int i=0;
System.out.print("++i先自加1再赋值得到结果是=");
System.out.println(++i);
控制台打印:++i先自加1再赋值得到结果是=1
----------------------------------------
int i=0;
System.out.print("i++先赋值,然后再自加1得到结果=");
System.out.println(i++);
控制台打印:i++先赋值,然后再自加1得到结果=0
3.short s=1;s=s+1;有什么错?short s=1;s+=1;有什么错?
答:1.对于short s=1;s=s+1;由于short数据类型和int数据类型表示范围不一样,所以需要进行类型转换,解决方案是:要么将short改为int,要么强制类型转换(short)s+1。
2.对于 short s=1;s+=1;由于+=是Java的规定运算符,Java编译器会对它进行特殊处理,因此可以正确编译。
4.Integer和int的区别?
答:参考博客 Integer是一个封装int类型的封装类,默认值为null,int是Java中8中数据类型之一,默认值为0.
5.&和&&的区别?
答:&表示逻辑运算符:必须计算左右两个表达式之后再取结果值。&&表示运算符先计算左边表达式如果为true,则不计算右边。如果左边表达式为false那么就需要计算右边表达式。
6.使用最有效的方式计算出2乘以4等于几?
答:使用位运算:2<<2
位运算符 | 功能 | 案例 | 说明 |
---|---|---|---|
<< | 左移 | a< < b | 将a各比特位向左移动b位 |
7.String s=new String(“xyz”)创建了几个对象?
答:创建2个String对象,一个是=null的s,一个是=“xyz”的string。
8. 静态变量和实例变量的区别?
答:1.在语法上的区别:静态变量前需要加static关键字,而实例变量不需要加。
2.静态变量不是某一个实例对象的属性,它属于类属性,只要程序加载类的字节码,不需要创建任何实例对象静态变量就可以分配空间从而被使用。必须先创建实例对象,实例变量才会被分配空间,才能使用这个实例变量。
3. 无论创建多少实例对象,永远只分配一个静态变量。创建一个实例对象静态变量会加1,但是每创建一个实例对象就会分配一个实例变量,每个实例变量的值只会自加1.
public class TestProblem {
static int a=0;
int b=0;
public TestProblem() {
a++;
b++;
System.out.println("静态变量数值:"+a);
System.out.println("实例变量数值:"+b);
}
public static void main(String[] args) {
TestProblem testProblem=new TestProblem();
System.out.println("------------");
TestProblem testProblem1=new TestProblem();
}
}
控制台打印结果:
静态变量数值:1
实例变量数值:1
------------
静态变量数值:2
实例变量数值:1
9.switch语句能否作用在byte上,能否作用在long上,能否作用在String上?
答:1.switch常量表达式的值必须是整型(必须是int)或字符型。
2.在.switch表达式中,括号表达式只能是一个整型表达式或枚举常量整数表达式可以是int基本数据类型会Integer包装类型。由于byte、short、char都可以隐式转换为int,所以这些基本数据类型及其包装类型都可以。
3.long和String无法隐式转换为int类型所以不能在switch中使用。