30 Java Interview Questions
* Q1. How could Java classes direct program messages to the system console, but error messages, say to a file?
A. The class System has a variable
out that represents the standard output, and the variable
err that represents the standard error device. By default, they both point at the system console. This how the standard output could be re-directed:
Stream st = new Stream(new FileOutputStream("output.txt")); System.setErr(st); System.setOut(st);
* Q2. What's the difference between an interface and an abstract class?
A. An abstract class may contain code in method bodies, which is not allowed in an interface. With abstract classes, you have to inherit your class from it and Java does not allow multiple inheritance. On the other hand, you can implement multiple interfaces in your class.
* Q3. Why would you use a synchronized block vs. synchronized method?
A. Synchronized blocks place locks for shorter periods than synchronized methods.
* Q4. Explain the usage of the keyword transient?
A. This keyword indicates that the value of this member variable does not have to be serialized with the object. When the class will be de-serialized, this variable will be initialized with a default value of its data type (i.e. zero for integers).
* Q5. How can you force garbage collection?
A. You can't force GC, but could request it by calling System.gc(). JVM does not guarantee that GC will be started immediately.
* Q6. How do you know if an explicit object casting is needed?
A. If you assign a superclass object to a variable of a subclass's data type, you need to do explicit casting. For example:
Object a; Customer b; b = (Customer) a;
When you assign a subclass to a variable having a supeclass type, the casting is performed automatically.
* Q7. What's the difference between the methods sleep() and wait()
A. The code sleep(1000); puts thread aside for exactly one second. The code wait(1000), causes a wait of up to one second. A thread could stop waiting earlier if it receives the notify() or notifyAll() call. The method wait() is defined in the class Object and the method sleep() is defined in the class Thread.
* Q8. Can you write a Java class that could be used both as an applet as well as an application?
A. Yes. Add a main() method to the applet.
* Q9. What's the difference between constructors and other methods?
A. Constructors must have the same name as the class and can not return a value. They are only called once while regular methods could be called many times.
* Q10. Can you call one constructor from another if a class has multiple constructors
A. Yes. Use this() syntax.
* Q11. Explain the usage of Java packages.
A. This is a way to organize files when a project consists of multiple modules. It also helps resolve naming conflicts when different packages have classes with the same names. Packages access level also allows you to protect data from being used by the non-authorized classes.
* Q12. If a class is located in a package, what do you need to change in the OS environment to be able to use it?
A. You need to add a directory or a jar file that contains the package directories to the CLASSPATH environment variable. Let's say a class Employee belongs to a package com.xyz.hr; and is located in the file c:\dev\com\xyz\hr\Employee.java. In this case, you'd need to add c:\dev to the variable CLASSPATH. If this class contains the method main(), you could test it from a command prompt window as follows:
c:\>java com.xyz.hr.Employee
* Q13. What's the difference between J2SDK 1.5 and J2SDK 5.0?
A.There's no difference, Sun Microsystems just re-branded this version.
* Q14. What would you use to compare two String variables - the operator == or the method equals()?
A. I'd use the method equals() to compare the values of the Strings and the == to check if two variables point at the same instance of a String object.
* Q15. Does it matter in what order catch statements for FileNotFoundException and IOExceptipon are written?
A. Yes, it does. The FileNoFoundException is inherited from the IOException. Exception's subclasses have to be caught first.
* Q16. Can an inner class declared inside of a method access local variables of this method?
A. It's possible if these variables are final.
* Q17. What can go wrong if you replace && with & in the following code:
String a=null; if (a!=null && a.length()>10) {...}
A. A single ampersand here would lead to a NullPointerException.
* Q18. What's the main difference between a Vector and an ArrayList
A. Java Vector class is internally synchronized and ArrayList is not.
* Q19. When should the method invokeLater()be used?
A. This method is used to ensure that Swing components are updated through the event-dispatching thread.
* Q20. How can a subclass call a method or a constructor defined in a superclass?
A. Use the following syntax: super.myMethod(); To call a constructor of the superclass, just write super(); in the first line of the subclass's constructor.
For senior-level developers:
** Q21. What's the difference between a queue and a stack?
A. Stacks works by last-in-first-out rule (LIFO), while queues use the FIFO rule
** Q22. You can create an abstract class that contains only abstract methods. On the other hand, you can create an interface that declares the same methods. So can you use abstract classes instead of interfaces?
A. Sometimes. But your class may be a descendent of another class and in this case the interface is your only option.
** Q23. What comes to mind when you hear about a young generation in Java?
A. Garbage collection.
** Q24. What comes to mind when someone mentions a shallow copy in Java?
A. Object cloning.
** Q25. If you're overriding the method equals() of an object, which other method you might also consider?
A. hashCode()
** Q26. You are planning to do an indexed search in a list of objects. Which of the two Java collections should you use:
ArrayList or LinkedList?
A. ArrayList
** Q27. How would you make a copy of an entire Java object with its state?
A. Have this class implement Cloneable interface and call its method clone().
** Q28. How can you minimize the need of garbage collection and make the memory use more effective?
A. Use object pooling and weak object references.
** Q29. There are two classes: A and B. The class B need to inform a class A when some important event has happened. What Java technique would you use to implement it?
A. If these classes are threads I'd consider notify() or notifyAll(). For regular classes you can use the Observer interface.
** Q30. What access level do you need to specify in the class declaration to ensure that only classes from the same directory can access it?
A. You do not need to specify any access level, and Java will use a default package access level.
The J2EE questions are coming soon. Stay tuned for Yakov Fain on Live SYS-CON.TV. Ask your questions to Yakov on the air!
分享到:
相关推荐
### Java基础知识 1. **JDK与JRE的区别:** - **JRE(Java Runtime Environment):** 这是运行Java程序所必需的基本环境。它包括了Java虚拟机(JVM)、类库和其他的一些基本组件。 - **JDK(Java Development Kit...
根据提供的文件信息,这份《Java Interview Notes_ 700 Java Interview Questions Answered.pdf》的文档内容非常丰富,涵盖了Java编程语言面试时可能遇到的多个核心知识点。下面是根据标题和描述生成的知识点详细...
### Java Interview Questions 更新于2018年9月 #### 1. 什么是JVM? JVM(Java虚拟机)是运行Java应用程序所必需的解释器及其运行时环境的组合。它提供了一个运行Java字节码的标准平台,使得Java程序可以在任何...
博文链接:https://hidefromall.iteye.com/blog/219683
从国外网站上下载的Java面试题。可以看看国外公司的Java面试常用题,以及如何用英文回答。
Java面试是每位Java开发者职业生涯中的重要环节,它不仅测试了候选人的基础知识,还评估了他们的实际问题解决能力。以下是一些常见的Java面试问题及其详细解释,涵盖了基础、进阶和实践方面: 1. **基本概念** - *...
Java面试问题解析 Java作为一款广泛应用的编程语言,其面试环节常常涉及到许多核心概念和技术细节。以下是一些常见的Java面试问题及其详细解答: 1. **为什么Java是平台独立的语言?** Java之所以被称为平台独立...
本书《Java Coding Interview》旨在帮助读者在面试过程中取得优异的成绩,传授给求职者必要的面试准备知识。作者有着指导和面试过数百名软件工程师的经验,本书的面试题目是真实的,不仅来自于真实公司的面试问题,...
"Core Java Interview Questions"这个资源集锦了面试中可能会遇到的一些关键问题,旨在帮助求职者更好地准备Java核心技术的面试。以下是根据描述和标签提炼出的一些核心Java知识点: 1. **Java基础** - 类与对象:...
Java面试问题汇总 Java是一种广泛使用的编程语言,具有强大的功能和灵活性。面对Java面试,需要掌握Java的深入知识和概念。本资源汇总了Java面试问题,涵盖Java基础、集合框架、多线程、设计模式、异常处理等方面的...
Interview Questions in Core Java 1.what is a transient variable? A transient variable is a variable that may not be serialized.
Java/J2EE interview questions这本书是为准备面试的Java开发者准备的,涵盖了核心概念、设计和编码问题,以及如何应对面试中可能遇到的问题。 核心概念包括Java语言基础,比如Java语言的基本原则、语法、核心库的...
定期收集总结各大公司java面试、笔试题给大家分享。共同进步。
在面试中,Java Collections 相关的问题是非常常见的,本文将对 Java Collections Interview Questions 进行详细解释。 ArrayList 和 LinkedList 的区别 ArrayList 和 LinkedList 都是 List 接口的实现类,但是...
#### 30. 目前为止,你职业生涯中最大的成就是什么? - **考察点**:评估应聘者的成就水平和个人价值。 - **回答技巧**:提供一个具有影响力的成就案例,强调其对公司或行业的积极影响。 #### 31. 你是如何在压力下...
Unfortunately, memorizing the answers to interview questions just doesn't cut it. You need to understand the underlying concepts. This book is a comprehensive guide that will prepare you for a Java ...
Java字符串面试问题详解 Java字符串是Java编程语言中最基本的数据类型之一,在Java面试中,字符串问题是...30. 是否可以统计字符串中给定字符的出现次数? 可以使用indexOf()方法统计字符串中给定字符的出现次数。