1 列举全部的java基本数据类型
byte short int long
float double
char boolean
2 请简述重载与重写的区别
重载:
- 发生在同一个类中
- 方法名相同
- 参数列表不同(个数,数据类型,顺序),注意:参数列表不同跟变量名称没关系
- 返回值的类型是否改变,跟方法是否重载没关系,不能作为重载的依据
重写:
- 重写发生在子父类当中
- 方法名、参数列表、返回值类型均相同
- 重写的方法,方法体不同或者访问控制修饰符不同
- 子类方法的访问权限不能缩小
- 静态方法(static)不能进行重写
3 面向对象三要素分别是什么
封装 继承 多态
4 简述String、StringBuffer和StringBuilder的区别
- 修改String对象的值,内存地址会发生改变;
- StringBuffer 和 StringBuilder 类的对象能够被多次的修改,并且不产生新的对象,即内存地址不变;
- StringBuffer是线程安全的,StringBuilder是线程不安全的;
- StringBuilder的执行速度比StringBuffer快
5 简述集合Set与List的区别
Set接口的实现类存储的数据是无序的,元素不重复的
List接口的实现类存储的数据是有序的,元素可重复的;
6 简述ArrayList和linkedList的区别
- ArrayList是实现了基于动态数组的数据结构,在未声明长度的情况下,默认长度是10,数据填满会自动扩充原长度的50%。
- linkedList基于链表的数据结构。
- 对于随机访问get和set(即查找元素),ArrayList速度优于linkedList,因为linkedList要移动指针。
- 对于新增和删除 *** 作add和remove,LinedList比较占优势,因为ArrayList要移动数据。
7 Map中存储的元素是什么
k-v键值对
8 简述final关键字的用法
- final修饰的类不能够被继承;
- 修饰的方法不能被重写;
- 修饰的变量为常量,常量名称必须都为大写,常量的值不可修改,且声明常量的同时要给常量赋值。
9 简述static关键字的用法
static声明的资源只能被初始化一次,且在整个程序编译;通过之后,开始运行之前完成初始化- 修饰变量,称为静态变量,局部变量(如方法中的变量)不能被static 修饰,因为static就有全局的意思;
- 修饰方法,称为静态方法,静态方法只能调用其他静态资源,不能调用非静态变量,不能应用this和super,因为静态资源的加载先于实例化;
静态资源可以直接通过类名调用被static修饰的变量和方法独立于该类的任何对象。也就是说,它不依赖类特定的实例,被该类的所有实例共享- 修饰内部类(静态类),外部类不需要实例化,可以直接通过外部类名调用
10 请写出Java的相等性规则
==比较
- ==比较基本数据类型,判断的是值是否相等(基本数据类型只能用“==”比较)
- ==比较引用类型,判断的是内存地址是否相等
equals()方法
- 默认的equals方法与==一样,比较的是内存地址
- String类的equals方法比较的是值是否相等
1 下面代码执行的正确结果是
public static void main(String[] args) {
StringBuffer a = new StringBuffer("A");
StringBuffer b = new StringBuffer("B");
up(a, b);
System.out.println(a+","+b);
}
static void up(StringBuffer s1, StringBuffer s2) {
s1.append("C");
s2 = s1;
}
A C,C B AC,AC
C AC,B D A,B
2 下面代码执行的正确结果是
public static void main(String[] args) {
int i = 0;
for (foo('A');foo('B')&&i<2;foo('C')) {
i++;
foo('D');
System.out.print(" ");
}
}
static boolean foo(char c) {
System.out.print(c);
return true;
}
A ABD CBD CB B ABCD D
C ABD CD C D D CD C
3 下面代码执行的正确结果是
public class Run {
static int a = 1;
static { a+=1; }
public static void main(String[] args) {
System.out.println(a);
}
static { a/=3; }
}
A 0 B 1
C 2 D 3
4 this和super正确的是()
A、都可以用在main()方法中
B、都是指一个内存地址
C、super和this不能同时使用
D、意义相同
5 下面不属于类的构造方法具备的特点是( )
A.没有返回值
B.用户可以通过new自动调用。
C.构造方法名必须和类名相同
D.可以直接通过类名调用
6 下面命名不合法的是
A _int B $male C 2much D 以上均正确
7 下列选项中错误的是
A short a=1; a=a+1; B short a=1; a+=1;
C int i=1; i=i+1; D int i=1; i+=1;
8 下列选项中字节数最大的基本数据类型是
A char B boolean C float D Long //long的封装类
9 ()表达式不可以作为循环条件
A i++; B i>5;
C bEqual = str.equals("q"); D count = = i;
10 在Java中下面代码是()条语句
int i;i=123;
int j=0,k=0;
System.out.println(i+";"+";"+j+""+k);
A、 3 B、 4
C、 5 D、 6
三 填空题(3分/每题,共30分)1 下面代码执行的正确结果是
int i = 1;
System.out.print("2"+i+2);212
System.out.print(i+2+"b");3b
2 下面代码执行的正确结果是
int a = 1;
int b = 2;
String c = "a";
System.out.println(a+b+c);3a
System.out.println(c+b+a);a21
3 下面代码执行的正确结果是A2B2A1A3B1B3
class A {
{ System.out.print("A1");}//代码块
static{System.out.print("A2");}
public A(){System.out.print("A3");}
}
class B extends A{
{ System.out.print("B1");}
static{System.out.print("B2");}
public B(){System.out.print("B3");}
public static void main(String[] args) {
B b=new B();
}
}
4 下面代码的运行结果是132
public class Run {
static int v=1;
static {
v=5;
System.out.print(1);
}
public Run() {
System.out.print(2);
}
public static void main(String[] args) {
System.out.print(3);
new Run();
}
}
5 下列代码运行的正确结果是 01235
for (int i = 0; i < 10; i++) {
if (i == 4) continue;
if (i == 6) break;
System.out.print(i);
}
6 下面代码的运行结果是什么
int a = 12;
int b = a++;
System.out.println(b); 12
System.out.println(++a); 14
7 下列代码正确的是 B
A int[] arr = {1,2,1,1,22,};
B String[] arr = new String[5];
C int arr[] = [1,2,3];
D int [] arr = new int [3]{1,2,3};
8 下列代码执行的结果分别是
String a = "abc";
String b = new String("abc");
String c = "ab" + "c";
boolean t1 = (a == b); false
boolean t2 = (a == c); true
boolean t3 = (b == c); false
boolean t4 = (b.equals(c)); true
9 下列代码执行的结果是
2
1
public static int run(){
try {
return 1;
} catch (NullPointerException e) {
e.printStackTrace();
System.out.println("3");
} finally {
System.out.println("2");
}
}
public static void main(String[] args){
System.out.println(run());
}
10 下面代码的执行结果是y=3
int x=1, y=2, z=3;
y += z--/++x;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)