1、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.
2、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.
3、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
4、 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 Behavior
5、al/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 JM
6、S 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 Ke
7、y 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
8、 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
9、 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
10、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.
11、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 J
12、Unit (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
13、 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
14、 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___________________________________
15、 3 Table of contents ________________________________________________________________________________ 5 What this book will do for you? ____________________________________________________________________ 7 Motivation for this book ___________
16、 8 Key Areas Index ________________________________________________________________________________ 11 Java – Interview questions & answers _____________________________________________________________ 13 Java – Fundamentals _________
17、 14 Java – Swing ____________________________________________________________________________________________ 69 Java – Applet____________________________________________________________________________________________ 76
18、 Java – Performance and Memory issues _____________________________________________________________________ 78 Java – Personal and Behavioral/Situational __________________________________________________________________ 83 Java – Behaving right in an interview_____________________________________
19、 89 Java – Key Points ________________________________________________________________________________________ 91 Enterprise Java – Interview questions & answers ____________________________________________________ 94 Enterprise - J2EE Overview__________________
20、 95 Enterprise - Servlet______________________________________________________________________________________ 108 Enterprise - JSP ________________________________________________________________________________________ 126 Enterprise
21、 – JDBC & JTA_________________________________________________________________________________ 145 Enterprise – JNDI & LDAP ________________________________________________________________________________ 155 Enterprise - RMI ________________________________________________________________________
22、 159 Enterprise – EJB 2.x _____________________________________________________________________________________ 163 Enterprise - JMS ________________________________________________________________________________________ 180 Enterprise - XML ______________________________________
23、 190 Enterprise – SQL, Database, and O/R mapping_______________________________________________________________ 197 Enterprise - RUP & UML__________________________________________________________________________________ 206 Enterprise - Struts___
24、 214 Enterprise - Web and Application servers ___________________________________________________________________ 218 Enterprise - Best practices and performance considerations _____________________________________
25、 222 Enterprise – Logging, testing and deployment _______________________________________________________________ 225 Enterprise – Personal and Behavioral/Situational_____________________________________________________________ 228 Enterprise – Software development process__________
26、 230 Enterprise – Key Points __________________________________________________________________________________ 233 How would you go about…?_____________________________________________________________________ 238 Q 01: How would you go about
27、 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? FA
28、Q_ 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
29、 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: H
30、ow 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 appl
31、ication? _____________________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_______
32、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 (bui
33、ld 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… _______________
34、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 orient
35、ed 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?_____________________________________________________________________31
36、7 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? _________________________________________________
37、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 Io
38、C (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
39、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 ho
40、w 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 sim
41、plify 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 framewo
42、rk compare with Struts framework?___________________________________________________________________________________341 Sample interview questions…____________________________________________________________________344 Java__________________________________________________________________________
43、345 Web components________________________________________________________________________________________345 Enterprise______________________________________________________________________________________________345 Design________________________________________________
44、347 General ________________________________________________________________________________________________347 GLOSSARY OF TERMS__________________________________________________________________________348 RESOURCES _______________________________
45、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 ha
46、s 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 Progr
47、amming), 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
48、 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 d
49、epending 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
50、 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






