Java面试必备:选择题解析

1 下载量 169 浏览量 更新于2024-06-22 收藏 160KB DOCX 举报
"Java面试练习题" 在Java面试中,掌握基础知识是非常重要的。以下是一些基于给定题目中的知识点的详细解释: 1. 字节码文件的扩展名:Java源代码文件(`.java`)经过编译后会生成字节码文件,其扩展名为`.class`。这是Java虚拟机(JVM)运行的基础。 2. 表达式计算:在Java中,表达式`y+=z--/++x`的计算遵循运算符的优先级和结合性。`++x`和`z--`是前缀和后缀递增/递减运算符,它们先于加法和除法运算。所以,如果`x=1`, `y=2`, `z=3`,则`y+=z--/++x`的结果是`y = 2 + (3 - 1) / (1 + 1)`,即`y = 2 + 1`,最终`y`的值为`3`。 3. Applet的生命周期方法:在JavaApplet中,`paint()`方法通常被重载用于绘制图形。`start()`, `stop()`, 和 `init()`也是Applet的生命周期方法,但它们分别用于启动Applet、停止Applet和初始化Applet。 4. 访问控制符:`public`, `private`, `protected`和`static`是Java的访问控制符。其中,`static`不是访问控制符,而是用于声明静态成员。不允许作为类及类成员的访问控制符是`static`。 5. 方法的声明:为了使一个方法能在类名前被调用,如`AB.method()`, 方法需要是静态的(`static`)。因此,正确的方法头应为`static void method()`。 6. 私有变量:被`private`修饰的成员变量只能在声明它的类内部访问和修改,不能被同一包内的其他类或不同包的子类访问。 7. 修饰符混用: - `abstract`不能与`final`并列,因为`final`表示不可改变,而`abstract`表示抽象的,两者概念冲突。 - `abstract`类中可以有`private`成员,因为访问控制与抽象无关。 - `abstract`方法必须在`abstract`类中,这是抽象方法的定义。 - `static`方法中不能直接处理非`static`的属性,因为`static`方法属于类,不依赖于实例,无法访问实例变量。 8. 静态初始化器和代码块:Java中的静态初始化器(也称为静态块)用于初始化静态变量。在这个例子中,静态变量`x`被初始化为10,然后在第4行的静态块中增加5,接着在第9行的静态块中除以3。由于静态块只在类加载时执行一次,所以最终`x`的值为5。因此,正确答案是C,编译通过,执行结果为`x=5`。 以上是根据题目内容提炼出的Java基础知识,涵盖了类、方法、变量、访问控制、运算符优先级、Applet生命周期、静态块等多个关键知识点,这些都是Java面试中常见的考察点。在准备面试时,理解并熟练掌握这些概念至关重要。
2020-02-19 上传
面试题目: 1-10题: 1、java中==和equals和hashCode的区别 2、int与integer的区别 3、String、StringBuffer、StringBuilder区别 4、什么是内部类?内部类的作用 5、进程和线程的区别 6、final,finally,finalize的区别 7、Serializable 和Parcelable 的区别 8、静态属性和静态方法是否可以被继承?是否可以被重写?以及原因? 9、成员内部类、静态内部类、局部内部类和匿名内部类的理解,以及项目中的应用 10、string 转换成 integer的方式及原理 11-20题: 11、哪些情况下的对象会被垃圾回收机制处理掉? 12、静态代理和动态代理的区别,什么场景使用? 14、Java中实现多态的机制是什么? 16、说说你对Java反射的理解 17、说说你对Java注解的理解 18、Java中String的了解 19、String为什么要设计成不可变的? 20、Object类的equal和hashCode方法重写,为什么? 21-40题 21、List,Set,Map的区别 26、ArrayMap和HashMap的对比 29、HashMap和HashTable的区别 30、HashMap与HashSet的区别 31-40题 31、HashSet与HashMap怎么判断集合元素重复? 33、ArrayList和LinkedList的区别,以及应用场景 34、数组和链表的区别 35、开启线程的三种方式? 36、线程和进程的区别? 38、run()和start()方法区别 39、如何控制某个方法允许并发访问线程的个数? 40、在Java中wait和seelp方法的不同 41-50题 41、谈谈wait/notify关键字的理解 42、什么导致线程阻塞?线程如何关闭? 43、如何保证线程安全? 44、如何实现线程同步? 45、线程间操作List 46、谈谈对Synchronized关键字,类锁,方法锁,重入锁的理解 49、synchronized 和volatile 关键字的区别 51-58题 51、ReentrantLock 、synchronized和volatile比较 53、死锁的四个必要条件? 56、什么是线程池,如何使用? 56、什么是线程池,如何使用? 58、有三个线程T1,T2,T3,怎么确保它们按顺序执行?