基础语法面试题(54-63道)(数组+类+包)
54. 定义一个一维的 int 数组,先创建它,并初始化它,给它赋值,然后输出其中的一个值
public class Arr {
public static void main(String[] args) {
int a[] = new int[5];
//a={1,2,3,4,5};//错误 , 只能在初始化时这样做
a[0]=1;
a[1]=2;
System.out.println(a[0]); //1
}
}
55. 定义一个一维的 A 类型数组,直接定义并赋值,然后输出其中的一个值
public class A {
public static int i;
public static void main(String args[]){
A aa = new A( );
A bb = new A( );
A a[] = {aa,bb};
a[0].i=2;
System.out.println(a[0]);
}
}
//JavaseDemo.A@723279cf
56. 把上面的数组改成 2 维的数组
public class A{
public static int i;
public static void main(String args[]){
A a [][] = new A[5][5];
a[0][0].i=2;
System.out.println(a[0][0]);
}
}
//null
57. 举例说明数组拷贝方法的使用:arraycopy 方法
public class A{
public static void main(String args[]){
int a[] = new int[5];
int b[] = new int[5];
System.arraycopy(a[5],0,b[5],0,a.length);//主线程异常 索引出界
System.out.println(b[0]);
}
}
//Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: Index 5 out of bounds for length 5
at JavaseDemo.A.main(A.java:5)
58. 什么是构造和析构方法?功能是?
构造方法:每个类至少有一个构造方法,类初始化时调用的方法
1.方法名和类名相同
2.无返回值类型
格式:访问权限 类名(参数列表) {};
1.自己定义构造后,就没有默认的构造方法
2.无构造方法时,默认为空参的构造方法(无参数,方法体为空)
析构方法:finalize
类销毁时,自动调用方法
当对象在内存中被删除时,自动调用该方法
在此方法中可以写回收对象内部的动态空间的代码
59. 简述 Java 的访问修饰符类型?分别有什么功能?
public 公开的,任何一个类都有可以访问
protected 同包同类,只可被它的子类访问
default 只能被同一个包中类访问
private 私有的,只能在本类中被访问
60. 分别说明:在类上、在属性上、在方法上能使用哪些访问修饰符
在类上:public default final
在方法上: 访问权限:public protected private default
方法修饰符:static
final
返回类型:void
在属性上:public protected private default
static
final
61. 简述什么是包?包的功能
包:对所定义的多个 JAVA 类进行分组,将多个功能相关的类定义到一个包(文件)中。
功能:
- 易于查找和使用适当的类
- 包不止包含类和接口,还可以包含其它包,形成层次的包空间
- 有助于避免命名冲突
62. 请写出 5 个以上的 JDK 中的包,以及他们的基本功能
java.awt: 包含构成抽象窗口工具集的多个类,用来构建和管理应用程序的图形用户界面
java.lang: 提供 java 编成语言的程序设计的基础类
java.io: 包含提供多种输出输入功能的类,
java.net: 包含执行与网络有关的类,如 URL,SCOKET,SEVERSOCKET,
java.applet: 包含 java 小应用程序的类
java.util: 包含一些实用性的类
63. 什么是包装类?Java 中都有哪些包装类
在 JDK 中针对各种基本类型分别定义相应的引用类型 ————–称为封装类
Boolean Byte Short Integer Long Float Double Character