资源描述
1
Learn Java/J2EE core concepts and key areas
With
Java/J2EE Job Interview Companion
By
K.Arulkumaran
&
A.Sivayini
Technical Reviewers
Craig Malone
Stuart Watson
Arulazi Dhesiaseelan
Lara D’Albreo
Cover Design, Layout, & Editing
A.Sivayini
Acknowledgements
A. Sivayini
Mr. & Mrs. R. Kumaraswamipillai
2
Java/J2EE
Job Interview Companion
Copy Right 2005-2007 ISBN 978-1-4116-6824-9
The author has made every effort in the preparation of this book to ensure the accuracy of the information. However,
information in this book is sold without warranty either expressed or implied. The author will not be held liable for any
damages caused or alleged to be caused either directly or indirectly by this book.
Please e-mail feedback & corrections (technical, grammatical and/or spelling) to
java-interview@
First Edition (220+ Q&A): Dec 2005
Second Edition (400+ Q&A): March 2007
3
Outline
SECTION DESCRIPTION
What this book will do for you?
Motivation for this book
Key Areas index
SECTION 1 Interview questions and answers on:
Java
Fundamentals
Swing
Applet
Performance and Memory issues
Personal and Behavioral/Situational
Behaving right in an interview
Key Points
SECTION 2 Interview questions and answers on:
Enterprise Java
J2EE Overview
Servlet
JSP
JDBC / JTA
JNDI / LDAP
RMI
EJB
JMS
XML
SQL, Database, and O/R mapping
RUP & UML
Struts
Web and Application servers.
Best practices and performance considerations.
Testing and deployment.
Personal and Behavioral/Situational
Key Points
SECTION 3 Putting it all together section.
How would you go about…?
1. How would you go about documenting your Java/J2EE application?
2. How would you go about designing a Java/J2EE application?
3. How would you go about identifying performance problems and/or memory leaks in your Java
application?
4. How would you go about minimizing memory leaks in your Java/J2EE application?
5. How would you go about improving performance of your Java/J2EE application?
6. How would you go about identifying any potential thread-safety issues in your Java/J2EE
application?
7. How would you go about identifying any potential transactional issues in your Java/J2EE
4
application?
8. How would you go about applying the Object Oriented (OO) design concepts in your Java/J2EE
application?
9. How would you go about applying the UML diagrams in your Java/J2EE project?
10. How would you go about describing the software development processes you are familiar with?
11. How would you go about applying the design patterns in your Java/J2EE application?
12. How would you go about designing a Web application where the business tier is on a separate
machine from the presentation tier. The business tier should talk to 2 different databases and your
design should point out the different design patterns?
13. How would you go about determining the enterprise security requirements for your Java/J2EE
application?
14. How would you go about describing the open source projects like JUnit (unit testing), Ant (build
tool), CVS (version control system) and log4J (logging tool) which are integral part of most
Java/J2EE projects?
15. How would you go about describing Service Oriented Architecture (SOA) and Web services?
SECTION 4 Emerging Technologies/Frameworks
Test Driven Development (TDD).
Aspect Oriented Programming (AOP).
Inversion of Control (IoC) (Also known as Dependency Injection).
Annotations or attributes based programming (xdoclet etc).
Spring framework.
Hibernate framework.
EJB 3.0.
JavaServer Faces (JSF) framework.
SECTION 5 Sample interview questions …
Java
Web Components
Enterprise
Design
General
GLOSSARY OF TERMS
RESOURCES
INDEX
5
Table of contents
Outline_________________________________________________________________________________________ 3
Table of contents ________________________________________________________________________________ 5
What this book will do for you? ____________________________________________________________________ 7
Motivation for this book __________________________________________________________________________ 8
Key Areas Index ________________________________________________________________________________ 11
Java – Interview questions & answers _____________________________________________________________ 13
Java – Fundamentals _____________________________________________________________________________________ 14
Java – Swing ____________________________________________________________________________________________ 69
Java – Applet____________________________________________________________________________________________ 76
Java – Performance and Memory issues _____________________________________________________________________ 78
Java – Personal and Behavioral/Situational __________________________________________________________________ 83
Java – Behaving right in an interview________________________________________________________________________ 89
Java – Key Points ________________________________________________________________________________________ 91
Enterprise Java – Interview questions & answers ____________________________________________________ 94
Enterprise - J2EE Overview________________________________________________________________________________ 95
Enterprise - Servlet______________________________________________________________________________________ 108
Enterprise - JSP ________________________________________________________________________________________ 126
Enterprise – JDBC & JTA_________________________________________________________________________________ 145
Enterprise – JNDI & LDAP ________________________________________________________________________________ 155
Enterprise - RMI ________________________________________________________________________________________ 159
Enterprise – EJB 2.x _____________________________________________________________________________________ 163
Enterprise - JMS ________________________________________________________________________________________ 180
Enterprise - XML ________________________________________________________________________________________ 190
Enterprise – SQL, Database, and O/R mapping_______________________________________________________________ 197
Enterprise - RUP & UML__________________________________________________________________________________ 206
Enterprise - Struts_______________________________________________________________________________________ 214
Enterprise - Web and Application servers ___________________________________________________________________ 218
Enterprise - Best practices and performance considerations ___________________________________________________ 222
Enterprise – Logging, testing and deployment _______________________________________________________________ 225
Enterprise – Personal and Behavioral/Situational_____________________________________________________________ 228
Enterprise – Software development process_________________________________________________________________ 230
Enterprise – Key Points __________________________________________________________________________________ 233
How would you go about…?_____________________________________________________________________ 238
Q 01: How would you go about documenting your Java/J2EE application? FAQ________________________________ 239
Q 02: How would you go about designing a Java/J2EE application? FAQ _____________________________________ 240
Q 03: How would you go about identifying performance and/or memory issues in your Java/J2EE application? FAQ_ 243
Q 04: How would you go about minimizing memory leaks in your Java/J2EE application? FAQ __________________ 244
Q 05: How would you go about improving performance in your Java/J2EE application? FAQ_____________________ 244
Q 06: How would you go about identifying any potential thread-safety issues in your Java/J2EE application? FAQ __ 245
Q 07: How would you go about identifying any potential transactional issues in your Java/J2EE application? FAQ __ 246
6
Q 08: How would you go about applying the Object Oriented (OO) design concepts in your Java/J2EE application? FAQ
247
Q 09: How would you go about applying the UML diagrams in your Java/J2EE project? FAQ _____________________249
Q 10: How would you go about describing the software development processes you are familiar with? FAQ ________251
Q 11: How would you go about applying the design patterns in your Java/J2EE application? _____________________253
Q 12: How would you go about designing a Web application where the business tier is on a separate machine from the
presentation tier. The business tier should talk to 2 different databases and your design should point out the different
design patterns? FAQ____________________________________________________________________________________286
Q 13: How would you go about determining the enterprise security requirements for your Java/J2EE application? ___287
Q 14: How would you go about describing the open source projects like JUnit (unit testing), Ant (build tool), CVS
(version control system) and log4J (logging tool) which are integral part of most Java/J2EE projects? ________________292
Q 15: How would you go about describing Service Oriented Architecture (SOA) and Web services? FAQ___________299
Emerging Technologies/Frameworks… ____________________________________________________________311
Q 01: What is Test Driven Development (TDD)? FAQ _______________________________________________________312
Q 02: What is the point of Test Driven Development (TDD)? What do you think of TDD?__________________________313
Q 03: What is aspect oriented programming (AOP)? Do you have any experience with AOP? _____________________313
Q 04: What are the differences between OOP and AOP? ____________________________________________________317
Q 05: What are the benefits of AOP?_____________________________________________________________________317
Q 06: What is attribute or annotation oriented programming? FAQ ___________________________________________317
Q 07: What are the pros and cons of annotations over XML based deployment descriptors? FAQ _________________318
Q 08: What is XDoclet? ________________________________________________________________________________319
Q 09: What is inversion of control (IoC) (also known more specifically as dependency injection)? FAQ_____________319
Q 10: What are the different types of dependency injections? FAQ ___________________________________________321
Q 11: What are the benefits of IoC (aka Dependency Injection)? FAQ _________________________________________322
Q 12: What is the difference between a service locator pattern and an inversion of control pattern? _______________323
Q 13: Why dependency injection is more elegant than a JNDI lookup to decouple client and the service?___________323
Q 14: Explain Object-to-Relational (O/R) mapping? ________________________________________________________323
Q 15: Give an overview of hibernate framework? FAQ ______________________________________________________324
Q 16: Explain some of the pitfalls of Hibernate and explain how to avoid them? Give some tips on Hibernate best
practices? FAQ_________________________________________________________________________________________333
Q 17: Give an overview of the Spring framework? What are the benefits of Spring framework? FAQ_______________334
Q 18: How would EJB 3.0 simplify your Java development compared to EJB 1.x, 2.x ? FAQ ______________________337
Q 19: Briefly explain key features of the JavaServer Faces (JSF) framework? __________________________________339
Q 20: How would the JSF framework compare with the Struts framework? How would a Spring MVC framework compare
with Struts framework?___________________________________________________________________________________341
Sample interview questions…____________________________________________________________________344
Java___________________________________________________________________________________________________345
Web components________________________________________________________________________________________345
Enterprise______________________________________________________________________________________________345
Design_________________________________________________________________________________________________347
General ________________________________________________________________________________________________347
GLOSSARY OF TERMS__________________________________________________________________________348
RESOURCES __________________________________________________________________________________350
INDEX ________________________________________________________________________________________352
7
What this book will do for you?
Have you got the time to read 10 or more books and articles to add value prior to the interview? This book has been
written mainly from the perspective of Java/J2EE job seekers and interviewers. There are numerous books and articles
on the market covering specific topics like Java, J2EE, EJB, Design Patterns, ANT, CVS, Multi-Threading, Servlets, JSP,
emerging technologies like AOP (Aspect Oriented Programming), Test Driven Development (TDD), Dependency Injection
Dl (aka IoC – Inversion of Control) etc. But from an interview perspective it is not possible to brush up on all these books
where each book usually has from 300 pages to 600 pages. The basic purpose of this book is to cover all the core
concepts and key areas, which all Java/J2EE developers, designers and architects should be conversant with to perform
well in their current jobs and to launch a successful career by doing well at interviews. The interviewer can also use this
book to make sure that they hire the right candidate depending on their requirements. This book contains a wide range of
topics relating to Java/J2EE development in a concise manner supplemented with diagrams, tables, sample codes and
examples. This book is also appropriately categorized to enable you to choose the area of interest to you.
This book will assist all Java/J2EE practitioners to become better at what they do. Usually it takes years to understand all
the core concepts and key areas when you rely only on your work experience. The best way to fast track this is to read
appropriate technical information and proactively apply these in your work environment. It worked for me and hopefully it
will work for you as well. I was also at one stage undecided whether to name this book “Java/J2EE core concepts and
key areas” or “Java/J2EE Job Interview Companion”. The reason I chose “Java/J2EE Job Interview Companion” is
展开阅读全文