基础语法面试题(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