<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6530670814895723150</id><updated>2011-11-27T15:17:31.900-08:00</updated><category term='SCDJWS'/><category term='SCWCD'/><category term='SCEA'/><category term='SCJP'/><category term='Core Java'/><category term='Advanced Java'/><category term='SCBCD'/><title type='text'>Free Java Ebooks &amp; Reviews</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://javaebooks.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-3663389377698982849</id><published>2009-12-07T12:15:00.000-08:00</published><updated>2009-12-07T12:21:50.771-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCWCD'/><title type='text'>SCWCD: Web Component Developer Certification</title><content type='html'>&lt;div style="text-align: justify;"&gt;This is a very useful SCWCD guide for SCWCD web component developer certification. Following are the exam objectives covered in this Java SCWCD exam preparation guide.&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;The HTTP methods    &lt;/li&gt;&lt;li&gt;The HttpServletRequest interface    &lt;/li&gt;&lt;li&gt;Using HttpServletResponse    &lt;/li&gt;&lt;li&gt;The servlet life cycle    &lt;/li&gt;&lt;li&gt;The file and directory structure of a web app     &lt;/li&gt;&lt;li&gt;The deployment descriptor (web.xml)    &lt;/li&gt;&lt;li&gt;The Deployment Descriptor structure     &lt;/li&gt;&lt;li&gt;War files     &lt;/li&gt;&lt;li&gt;The Web container model     &lt;/li&gt;&lt;li&gt;Servlet Scopes and attributes    &lt;/li&gt;&lt;li&gt;Requests and filters    &lt;/li&gt;&lt;li&gt;Container life cycles and listeners    &lt;/li&gt;&lt;li&gt;The RequestDispatcher mechanism    &lt;/li&gt;&lt;li&gt;Storing objects in sessions     &lt;/li&gt;&lt;li&gt;When sessions are created and destroyed     &lt;/li&gt;&lt;li&gt;Session listeners     &lt;/li&gt;&lt;li&gt;Session Management     &lt;/li&gt;&lt;li&gt;Web Application Security    &lt;/li&gt;&lt;li&gt;Security and the deployment descriptor    &lt;/li&gt;&lt;li&gt;Comparing authentication types     &lt;/li&gt;&lt;li&gt;JSP Elements    &lt;/li&gt;&lt;li&gt;JSP directives     &lt;/li&gt;&lt;li&gt;JSP with XML tags    &lt;/li&gt;&lt;li&gt;The JSP lifecycle    &lt;/li&gt;&lt;li&gt;JSP implicit objects    &lt;/li&gt;&lt;li&gt;Configuring to use tag libraries     &lt;/li&gt;&lt;li&gt;The include directive and standard action    &lt;/li&gt;&lt;li&gt;EL and implicit variables    &lt;/li&gt;&lt;li&gt;EL Arrays and collections    &lt;/li&gt;&lt;li&gt;EL operators    &lt;/li&gt;&lt;li&gt;EL Code that uses functions    &lt;/li&gt;&lt;li&gt;JSP standard actions     &lt;/li&gt;&lt;li&gt;The include, forward and param tags     &lt;/li&gt;&lt;li&gt;Using tag libraries    &lt;/li&gt;&lt;li&gt;Custom tags in JSP pages    &lt;/li&gt;&lt;li&gt;Using the JSTL 1.1     &lt;/li&gt;&lt;li&gt;Building custom tag libraries     &lt;/li&gt;&lt;li&gt;PageContext, and tag handlers    &lt;/li&gt;&lt;li&gt;Tags, parent tags and ancestors    &lt;/li&gt;&lt;li&gt;Simple Tags    &lt;/li&gt;&lt;li&gt;The tag file model     &lt;/li&gt;&lt;li&gt;Design Patterns&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.examulator.com/moodle/course/view.php?id=5" target="_blank"&gt;Read More/Try It&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-3663389377698982849?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3663389377698982849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3663389377698982849'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2009/12/scwcd-web-component-developer.html' title='SCWCD: Web Component Developer Certification'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-1917699298111260963</id><published>2009-12-07T12:10:00.000-08:00</published><updated>2009-12-07T12:13:39.959-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP'/><title type='text'>The SCJP Handbook</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;By Witscale &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;With at least a dozen books on SCJP in the market, a question naturally arises is to why add one more? The Java certification assesses the conceptual knowledge and is not similar to academic or theoretical examinations. Hence purely academic approach may not work well for the exam. Therefore while following the SCJP syllabus, sufficient efforts must be put in to get true understanding of essential java concepts. There are many excellent books on SCJP and they are good enough for readers who know Java quite well. However they may be bit confusing for Java beginners. Since SCJP exam is particularly popular among Java beginners, this is an important issue. The SCJP Handbook tries to be different- While focusing on SCJP objectives—the assessment of important core Java concepts—it goes one step further—to discuss the concepts themselves.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;When I started preparing for SCJP I knew only as much Java as needed for my work. Preparation for SCJP gave me an opportunity to experiment with several other interesting aspects of Java (threads for instance) and to learn “Java-as-a-language” from scratch. But while doing so I had gone through several books to truly get the picture of many Java concepts. It made me think to write a book on SCJP. I wrote this book because this was the book that I wanted to read when I started my SCJP preparation. I hope to make this book a one-stop-solution for SCJP.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.witscale.com/ebook/Browsable/ebook000.htm" target="_blank"&gt;Read More/Try It&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-1917699298111260963?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1917699298111260963'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1917699298111260963'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2009/12/scjp-handbook.html' title='The SCJP Handbook'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-8982981557583478825</id><published>2009-12-07T11:41:00.000-08:00</published><updated>2009-12-07T11:50:45.658-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCBCD'/><title type='text'>SCBCD Study Guide</title><content type='html'>&lt;div style="text-align: justify;"&gt;By Mikalai Zaikin&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The purpose of this document is to help in preparation for exam CX-310-090 (Sun Certified Business Component Developer for the Java 2 Platform, Enterprise Edition 1.3). This document should not be used as the only study material for SCBCD test. It covers all objective topics, but it is not enough. I tried to make this document as much accurate as possible, but if you find any error, please let me know.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Following are the exam objectives covered in this SCBCD guide&lt;br /&gt;&lt;ul&gt;&lt;li&gt;EJB Overview: Identify the use, benefits, and characteristics of Enterprise JavaBeans technology, for version 2.0 of the EJB specification. Identify EJB 2.0 container requirements. Identify correct and incorrect statements or examples about EJB programming restrictions. Match EJB roles with the corresponding description of the role's responsibilities, where the description may include deployment descriptor information. Given a list, identify which are requirements for an EJB-jar file.&lt;/li&gt;&lt;li&gt;Client View of a Session Bean: Identify correct and incorrect statements or examples about the client view of a session bean's local and remote home interfaces, including the code used by a client to locate a session bean's home interface. Identify correct and incorrect statements or examples about the client view of a session bean's local and remote component interfaces. &lt;/li&gt;&lt;li&gt;Session Bean Component Contract: Identify correct and incorrect statements or examples about session beans, including conversational state, the SessionBean interface, and create methods. Identify the use and the behavior of the ejbPassivate method in a session bean, including the responsibilities of both the container and the bean provider. Identify the interface and method for each of the following: retrieve the session bean's remote home interface, retrieve the session bean's local component interface, determine if the session bean's caller has a particular role, allow the instance to mark the current transaction as a rollback, retrieve the UserTransaction interface, prepare the instance for reuse following passivation, release resources prior to removal, identify the invoker of the bean instance's component interface, be notified that a new transaction has begun, and be notified that the current transaction has completed.  Match the correct description about purpose and function to which session bean type they apply: stateless, stateful, or both. Given a list of responsibilities related to session beans, identify those which are the responsibility of the session bean provider and those which are the responsibility of the EJB container provider.  Given a list of requirements, identify those which are the requirements for a session bean class, a remote component interface, a remote home interface, create methods, business methods, a local component interface, and a local home interface. &lt;/li&gt;&lt;li&gt;Session Bean Life Cycle: Identify correct and incorrect statements or examples about the life cycle of a stateful or stateless session bean instance. Given a list of methods for a stateful or stateless session bean class, define which of the following operations can be performed from each of those methods: SessionContext interface methods, UserTransaction methods, Java Naming and Directory Interface API (JNDI API) access to java:comp/env environment naming context, resource manager access, and other enterprise bean access. Given a list of scenarios, identify which will result in an ejbRemove method not being called on a bean instance. &lt;/li&gt;&lt;li&gt;Client View of an Entity: Identify correct and incorrect statements or examples about the client of an entity bean's local and remote home interface, including viewing the code used to locate an entity bean's home interface and the home interface methods provided to the client. Identify correct and incorrect statements or examples about the client view of an entity bean's local component interface (EJBLocalObject). Identify correct and incorrect statements or examples about the client view of a entity bean's remote component interface (EJBObject). Identify the use, syntax, and behavior of, the following entity bean home method types, for Container-Managed Persistence (CMP); finder methods, create methods, remove methods, and home methods.&lt;/li&gt;&lt;li&gt;Component Contract for Container-Managed Persistence (CMP): Identify correct and incorrect statements or examples about the entity bean provider's view and programming contract for CMP, including the requirements for a CMP entity bean. Identify correct and incorrect statements or examples about persistent relationships, remove protocols, and about the abstract schema type of a CMP entity bean. Identify correct and incorrect statements or examples about the rules and semantics for relationship assignment and relationship updating in a CMP bean. Match the name with a description of purpose or functionality, for each of the following deployment descriptor elements: ejb-name, abstract-schema-name, ejb-relation, ejb-relationship-role, cmr-field, cmr-field-type, and relationship-role-source. Identify correctly-implemented deployment descriptor elements for a CMP bean (including container-managed relationships). Identify the interfaces and methods a CMP entity bean must and must not implement.&lt;/li&gt;&lt;li&gt;CMP Entity Bean Life Cycle : Identify correct and incorrect statements or examples about the life cycle of a CMP entity bean. From a list, identify the purpose, behavior, and responsibilities of the bean provider for a CMP entity bean, including but not limited to: setEntityContext, unsetEntityContext, ejbCreate, ejbPostCreate, ejbActivate, ejbPassivate, ejbRemove, ejbLoad, ejbStore, ejbFind, ejbHome, and ejbSelect. From a list, identify the responsibility of the container for a CMP entity bean, including but not limited to: setEntityContext, unsetEntityContext, ejbCreate, ejbPostCreate, ejbActivate, ejbPassivate, ejbRemove, ejbLoad, ejbStore, ejbFind, ejbHome, and ejbSelect. &lt;/li&gt;&lt;li&gt;Entity Beans: From a list of behaviors, match them with the appropriate EntityContext method responsible for that behavior. Identify correct and incorrect statements or examples about an entity bean's primary key and object identity. &lt;/li&gt;&lt;li&gt;EJB-QL: Identify correct and incorrect syntax for an EJB QL query including the SELECT, FROM, and WHERE clauses. Identify correct and incorrect statements or examples about the purpose and use of EJB QL. Identify correct and incorrect conditional expressions, BETWEEN expressions, IN expressions, LIKE expressions, and comparison expressions. &lt;/li&gt;&lt;li&gt;Message-Driven Bean Component Contract: Identify correct and incorrect statements or examples about the client view of a message-driven bean, and the life cycle of a message-driven bean. Identify the interfaces and methods a JMS message-driven bean must implement. Identify the use and behavior of the MessageDrivenContext interface methods. From a list, identify the responsibility of the bean provider and the responsibility of the container provider for a message-driven bean. &lt;/li&gt;&lt;li&gt;Transactions: Identify correct and incorrect statements or examples about EJB transactions, including bean-managed transaction demarcation and container-managed transaction demarcation. Identify correct and incorrect statements about the Application Assembler's responsibilities, including the use of deployment descriptor elements related to transactions and the identification of the methods of a particular bean type for which a transaction attribute must be specified. Given a list of transaction behaviors, match them with the appropriate transaction attributes. Given a list of responsibilities, identify whose which are the Container's with respect to transactions, including the handling of getRollbackOnly, setRollbackOnly, getUserTransaction, SessionSynchronzation callbacks, for both container and bean-managed transactions.&lt;/li&gt;&lt;li&gt;Exceptions: Identify correct and incorrect statements or examples about exception handling in EJB. Given a list of responsibilities related to exceptions, identify those which are the bean provider's, and those which are the responsibility of the container provider. Be prepared to recognize responsibilities for which neither the bean provider or the container provider are responsible. Identify correct and incorrect statements or examples about application exceptions and system exceptions in entity beans, session beans, and message-driven beans. Given a particular method condition, identify the following: whether an exception will be thrown, the type of exception thrown, the container's action, and the client's view.  Identify correct and incorrect statements or examples about the client's view of exceptions received from an enterprise bean invocation. &lt;/li&gt;&lt;li&gt;Enterprise Bean Environment: Identify correct and incorrect statements or examples about an enterprise bean's environment JNDI API naming. Identify correct and incorrect statements about the purpose and use of the deployment descriptor elements for environment entries, EJB references, and resource manager connection factory references; including whether a given code listing is appropriate and correct with respect to a particular deployment descriptor element. Given a list of responsibilities, identify which belong to the deployer, bean provider, application assembler, container provider, system administrator, or any combination. &lt;/li&gt;&lt;li&gt;Security Management: Identify correct and incorrect statements about the EJB support for security management including security roles, security role references, and method permissions. From a list of responsibilities, identify which belong to the application assembler, bean provider, deployer, container provider, or system administrator.Given a code listing, determine whether it is a legal and appropriate way to programmatically access a caller's security context. Given a security-related deployment descriptor tag, identify correct and incorrect statements and code related to that tag. &lt;/li&gt;&lt;/ul&gt;&lt;a href="http://java.boot.by/bcd-guide/" target="_blank"&gt;Read More/Try It&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-8982981557583478825?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8982981557583478825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8982981557583478825'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2009/12/scbcd-study-guide.html' title='SCBCD Study Guide'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7328494167458927533</id><published>2009-12-07T11:31:00.000-08:00</published><updated>2009-12-07T11:38:49.554-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCDJWS'/><title type='text'>SCDJWS Study Guide</title><content type='html'>&lt;div style="text-align: justify;"&gt;By Mikalai Zaikin&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The purpose of this document is to help in preparation for exam CX-310-220 (Sun Certified Developer for Java Web Services). This document should NOT be used as the only study material for SCDJWS (Sun Certified Developer for Java Web Services) Test. It does NOT covers all objective topics. I tried to make this document as much accurate as possible, but if you find any error, please let me know.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Following are the exam objectives covered in this SCDJWS study guide.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;XML Web Service Standards: Given XML documents, schemas, and fragments determine whether their syntax and form are correct (according to W3C schema) and whether they conform to the WS-I Basic Profile 1.0a. Describe the use of XML Schema in J2EE Web services. Describe the use of namespaces in an XML document. &lt;/li&gt;&lt;li&gt;SOAP 1.1 Web Service Standards: List and describe the encoding types used in a SOAP message. Describe how SOAP message header blocks are used and processed. Describe the function of each element contained in a SOAP message, the SOAP binding to HTTP, and how to represent faults that occur when processing a SOAP message. Create a SOAP message that contains an attachment.   Describe the restrictions placed on the use of SOAP by the WS-I Basic Profile 1.0a. Describe the function of SOAP in a Web service interaction and the advantages and disadvantages of using SOAP messages. &lt;/li&gt;&lt;li&gt;Describing and Publishing (WSDL and UDDI): Explain the use of WSDL in Web services, including a description of WSDL's basic elements, binding mechanisms and the basic WSDL operation types as limited by the WS-I Basic Profile 1.0a. Describe how W3C XML Schema is used as a typing mechanism in WSDL 1.1. Describe the use of UDDI data structures. Consider the requirements imposed on UDDI by the WS-I Basic Profile 1.0a. Describe the basic functions provided by the UDDI Publish and Inquiry APIs to interact with a UDDI business registry. &lt;/li&gt;&lt;li&gt;JAX-RPC: Explain the service description model, client connection types, interaction modes, transport mechanisms/protocols, and endpoint types as they relate to JAX-RPC. Given a set of requirements for a Web service, such as transactional needs, and security requirements, design and develop Web service applications that use servlet-based endpoints and EJB based endpoints. Given an set of requirements, design and develop a Web sevice client, such as a J2EE client and a stand-alone Java client, using the appropriate JAX-RPC client connection style. Given a set of requirements, develop and configure a Web service client that accesses a stateful Web service. Explain the advantages and disadvantages of a WSDL to Java vs. a Java to WSDL development approach. Describe the advantages and disadvantages of web service applications that use either synchronous/request response, one-way RPC, or non-blocking RPC invocation modes. Use the JAX-RPC Handler API to create a SOAP message handler, describe the function of a handler chain, and describe the role of SAAJ when creating a message handler. &lt;/li&gt;&lt;li&gt;SOAP and XML Processing APIs (JAXP, JAXB, and SAAJ): Describe the functions and capabilities of the APIs included within JAXP. Given a scenario, select the proper mechanism for parsing and processing the information in an XML document. Describe the functions and capabilities of JAXB, including the JAXB process flow, such as XML-to-Java and Java-to-XML, and the binding and validation mechanisms provided by JAXB. Use the SAAJ APIs to create and manipulate a SOAP message. &lt;/li&gt;&lt;li&gt;JAXR: Describe the function of JAXR in Web service architectural model, the two basic levels of business registry functionality supported by JAXR, and the function of the basic JAXR business objects and how they map to the UDDI data structures. Use JAXR to connect to a UDDI business registry, execute queries to locate services that meet specific requirements, and publish or update information about a business service. &lt;/li&gt;&lt;li&gt;J2EE Web Services: Identify the characteristics of and the services and APIs included in the J2EE platform. Explain the benefits of using the J2EE platform for creating and deploying Web service applications. Describe the functions and capabilities of the JAXP, DOM, SAX, JAXR, JAX-RPC, and SAAJ in the J2EE platform. Describe the role of the WS-I Basic Profile when designing J2EE Web services. &lt;/li&gt;&lt;li&gt;Security: Explain basic security mechanisms including: transport level security, such as basic and mutual authentication and SSL, message level security, XML encryption, XML Digital Signature, and federated identity and trust. Identify the purpose and benefits of Web services security oriented initiatives and standards such as Username Token Profile, SAML, XACML, XKMS, WS-Security, and the Liberty Project. Given a scenario, implement J2EE based web service web-tier and/or EJB-tier basic security mechanisms, such as mutual authentication, SSL, and access control. Describe factors that impact the security requirements of a Web service, such as the relationship between the client and service provider, the type of data being exchanged, the message format, and the transport mechanism. &lt;/li&gt;&lt;li&gt;Developing Web Services: Describe the steps required to configure, package, and deploy J2EE Web services and service clients, including a description of the packaging formats, such as .ear, .war, .jar, deployment descriptor settings, the associated Web Services description file, RPC mapping files, and service reference elements used for EJB and servlet endpoints. Given a set of requirements, develop code to process XML files using the SAX, DOM, XSLT, and JAXB APIs. Given an XML schema for a document style Web service create a WSDL file that describes the service and generate a service implementation. Given a set of requirements, develop code to create an XML-based, document style, Web service using the JAX-RPC APIs. Implement a SOAP logging mechanism for testing and debugging a Web Service application using J2EE Web Service APIs. Given a set of requirements, develop code to handle system and service exceptions and faults received by a Web services client. &lt;/li&gt;&lt;li&gt;General Design and Architecture: Describe the characteristics of a service oriented architecture and how Web Services fits to this model. Given a scenario, design a J2EE service using the Business Delegate, Service Locator, and/or Proxy client-side design patterns and the Adapter, Command, Web Service Broker, and/or Façade server-side patterns. Describe alternatives for dealing with issues that impact the quality of service provided by a Web service and methods to improve the system reliability, maintainability, security, and performance of a service. Describe how to handle the various types of return values, faults, errors, and exceptions that can occur during a Web service interaction. Describe the role that Web services play when integrating data, application functions, or business processes in a J2EE application. Describe how to design a stateless Web service that exposes the functionality of a stateful business process. &lt;/li&gt;&lt;li&gt;Endpoint Design and Architecture: Given a scenario, design Web service applications using information models that are either procedure-style or document-style. Describe the function of the service interaction and processing layers in a Web service.   Describe the tasks performed by each phase of an XML-based, document oriented, Web service application, including the consumption, business processing, and production phases. Design a Web service for an asynchronous, document-style process and describe how to refactor a Web service from a synchronous to an asynchronous model. Describe how the characteristics, such as resource utilization, conversational capabilities, and operational modes, of the various types of Web service clients impact the design of a Web service or determine the type of client that might interact with a particular service. &lt;/li&gt;&lt;/ul&gt;&lt;a href="http://java.boot.by/wsd-guide/" target="_blank"&gt;Read More/Try It&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7328494167458927533?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7328494167458927533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7328494167458927533'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2009/12/scdjws-study-guide.html' title='SCDJWS Study Guide'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7178251253297769551</id><published>2009-12-07T11:20:00.000-08:00</published><updated>2009-12-20T11:00:57.270-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP'/><title type='text'>SCJP Tiger Study Guide</title><content type='html'>&lt;div style="text-align: justify;"&gt;By Mikalai Zaikin&lt;br /&gt;&lt;br /&gt;The purpose of this document is to help in preparation for exam CX-310-055 (Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0). This document should not be used as the only study material for SCJP Tiger (Sun Certified Programmer for the Java 2 Platform, Standard Edition 5.0) Test. It covers mostly Java 5.0-specific objectives. I tried to make this document as much accurate as possible, but if you find any error, please let me know.&lt;br /&gt;&lt;br /&gt;Following are the exam objectives covered in this SCJP study guide&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Declarations, Initialization and Scoping: Develop code that declares classes (including abstract and all forms of nested classes), interfaces, and enums, and includes the appropriate use of package and import statements (including static imports). Develop code that declares an interface. Develop code that implements or extends one or more interfaces. Develop code that declares an abstract class. Develop code that extends an abstract class. Develop code that declares, initializes, and uses primitives, arrays, enums, and objects as static, instance, and local variables. Also, use legal identifiers for variable names. Develop code that declares both static and non-static methods, and - if appropriate - use method names that adhere to the JavaBeans naming standards. Also develop code that declares and uses a variable-length argument list. Given a code example, determine if a method is correctly overriding or overloading another method, and identify legal return values (including covariant returns), for the method. Given a set of classes and superclasses, develop constructors for one or more of the classes. Given a class declaration, determine if a default constructor will be created, and if so, determine the behavior of that constructor. Given a nested or non-nested class listing, write code to instantiate the class.&lt;/li&gt;&lt;li&gt;Flow Control: Develop code that implements an if or switch statement; and identify legal argument types for these statements. Develop code that implements all forms of loops and iterators, including the use of for, the enhanced for loop (for-each), do, while, labels, break, and continue; and explain the values taken by loop counter variables during and after loop execution. Develop code that makes use of assertions, and distinguish appropriate from inappropriate uses of assertions.      Develop code that makes use of exceptions and exception handling clauses (try, catch, finally), and declares methods and overriding methods that throw exceptions. Recognize the effect of an exception arising at a specified point in a code fragment. Note that the exception may be a runtime exception, a checked exception, or an error. Recognize situations that will result in any of the following being thrown: ArrayIndexOutOfBoundsException, ClassCastException, IllegalArgumentException, IllegalStateException, NullPointerException, NumberFormatException, AssertionError, ExceptionInInitializerError, StackOverflowError or NoClassDefFoundError. Understand which of these are thrown by the virtual machine and recognize situations in which others should be thrown programatically. &lt;/li&gt;&lt;li&gt;API Contents: Develop code that uses the primitive wrapper classes (such as Boolean, Character, Double, Integer, etc.), and/or autoboxing &amp;amp; unboxing. Discuss the differences between the String, StringBuilder, and StringBuffer classes. Given a scenario involving navigating file systems, reading from files, or writing to files, develop the correct solution using the following classes (sometimes in combination), from java.io: BufferedReader, BufferedWriter, File, FileReader, FileWriter and PrintWriter. Develop code that serializes and/or de-serializes objects using the following APIs from java.io: DataInputStream, DataOutputStream, FileInputStream, FileOutputStream, ObjectInputStream, ObjectOutputStream and Serializable. Use standard J2SE APIs in the java.text package to correctly format or parse dates, numbers, and currency values for a specific locale; and, given a scenario, determine the appropriate methods to use if you want to use the default locale or a specific locale. Describe the purpose and use of the java.util.Locale class. Write code that uses standard J2SE APIs in the java.util and java.util.regex packages to format or parse strings or streams. For strings, write code that uses the Pattern and Matcher classes and the String.split(...) method. Recognize and use regular expression patterns for matching (limited to: . (dot), * (star), + (plus), ?, \d, \s, \w, [], ()). The use of *, +, and ? will be limited to greedy quantifiers, and the parenthesis operator will only be used as a grouping mechanism, not for capturing content during matching. For streams, write code using the Formatter and Scanner classes and the PrintWriter.format/printf methods. Recognize and use formatting parameters (limited to: %b, %c, %d, %f, %s) in format strings. &lt;/li&gt;&lt;li&gt;Concurrency: Write code to define, instantiate, and start new threads using both java.lang.Thread and java.lang.Runnable.      Recognize the states in which a thread can exist, and identify ways in which a thread can transition from one state to another. Given a scenario, write code that makes appropriate use of object locking to protect static or instance variables from concurrent access problems. Given a scenario, write code that makes appropriate use of wait, notify, or notifyAll. &lt;/li&gt;&lt;li&gt;OO Concepts: Develop code that implements tight encapsulation, loose coupling, and high cohesion in classes, and describe the benefits. Given a scenario, develop code that demonstrates the use of polymorphism. Further, determine when casting will be necessary and recognize compiler vs. runtime errors related to object reference casting. Explain the effect of modifiers on inheritance with respect to constructors, instance or static variables, and instance or static methods. Given a scenario, develop code that declares and/or invokes overridden or overloaded methods and code that declares and/or invokes superclass, overridden, or overloaded constructors. Develop code that implements "is-a" and/or "has-a" relationships. &lt;/li&gt;&lt;li&gt;Collections / Generics: Given a design scenario, determine which collection classes and/or interfaces should be used to properly implement that design, including the use of the Comparable interface. Distinguish between correct and incorrect overrides of corresponding hashCode and equals methods, and explain the difference between == and the equals method. Write code that uses the generic versions of the Collections API, in particular, the Set&lt;e&gt;, List&lt;e&gt;, Queue&lt;e&gt; and Map &lt;k,v&gt; interfaces and implementation classes. Recognize the limitations of the non-generic Collections API and how to refactor code to use the generic versions. Develop code that makes proper use of type parameters in class/interface declarations, instance variables, method arguments, and return types; and write generic methods or methods that make use of wildcard types and understand the similarities and differences between these two approaches. Use capabilities in the java.util package to write code to manipulate a list by sorting, performing a binary search, or converting the list to an array. Use capabilities in the java.util package to write code to manipulate an array by sorting, performing a binary search, or converting the array to a list. Use the java.util.Comparator and java.lang.Comparable interfaces to affect the sorting of lists and arrays. Furthermore, recognize the effect of the "natural ordering" of primitive wrapper classes and java.lang.String on sorting. &lt;/k,v&gt;&lt;/e&gt;&lt;/e&gt;&lt;/e&gt;&lt;/li&gt;&lt;li&gt;Fundamentals: Given a code example and a scenario, write code that uses the appropriate access modifiers, package declarations, and import statements to interact with (through access or inheritance) the code in the example. Given an example of a class and a command-line, determine the expected runtime behavior. Determine the effect upon object references and primitive values when they are passed into methods that perform assignments or other modifying operations on the parameters. Given a code example, recognize the point at which an object becomes eligible for garbage collection, and determine what is and is not guaranteed by the garbage collection system. Recognize the behaviors of System.gc and finalization. Given the fully-qualified name of a class that is deployed inside and/or outside a JAR file, construct the appropriate directory structure for that class. Given a code example and a classpath, determine whether the classpath will allow the code to compile successfully. Write code that correctly applies the appropriate operators including assignment operators (limited to: =, +=, -=), arithmetic operators (limited to: +, -, *, /, %, ++, --), relational operators (limited to: &amp;lt;, &amp;lt;=, &amp;gt;, &amp;gt;=, ==, !=), the instanceof operator, logical operators (limited to: &amp;amp;, |, ^, !, &amp;amp;&amp;amp;, ||), and the conditional operator ( ? : ), to produce a desired result. Write code that determines the equality of two objects or two primitives. &lt;/li&gt;&lt;/ul&gt;&lt;a href="http://java.boot.by/scjp-tiger/" target="_blank"&gt;Read More/Try It&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7178251253297769551?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7178251253297769551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7178251253297769551'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2009/12/scjp-tiger-study-guide.html' title='SCJP Tiger Study Guide'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-2998308672538578624</id><published>2009-12-07T11:03:00.000-08:00</published><updated>2009-12-07T11:16:05.365-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCBCD'/><title type='text'>SCBCD 5.0 Study Guide</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;By Mikalai Zaikin&lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The purpose of this document is to help in preparation for exam CX-310-091 (Sun Certified Business Component Developer for Java EE 5.0). This document should not be used as the only study material for SCBDC 5.0 test. It covers all objective topics, but it is not enough. I tried to make this document as much accurate as possible, but if you find any error, please let me know.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;EJB 3.0 Overview: Identify the uses, benefits, and characteristics of Enterprise JavaBeans technology, for version 3.0 of the EJB specification. Identify the APIs that all EJB 3.0 containers must make available to developers. Identify correct and incorrect statements or examples about EJB programming restrictions. Match the seven EJB roles with the corresponding description of the role's responsibilities. Describe the packaging and deployment requirements for enterprise beans.  Describe the purposes and uses of annotations and deployment descriptors, including how the two mechanisms interact, how overriding is handled, and how these mechanisms function at the class, method, and field levels. &lt;/li&gt;&lt;li&gt;General EJB 3.0 Enterprise Bean Knowledge: Identify correct and incorrect statements or examples about the lifecycle of all 3.0 Enterprise Bean instances, including the use of the @PostConstruct and @PreDestroy callback methods. Identify correct and incorrect statements or examples about interceptors, including implementing an interceptor class, the lifecycle of interceptor instances, @AroundInvoke methods, invocation order, exception handling, lifecycle callback methods, default and method level interceptors, and specifying interceptors in the deployment descriptor. Identify correct and incorrect statements or examples about how enterprise beans declare dependencies on external resources using JNDI or dependency injection, including the general rules for using JNDI, annotations and/or deployment descriptors, EJB references, connection factories, resource environment entries, and persistence context and persistence unit references. Identify correct and incorrect statements or examples about Timer Services, including the bean provider's view and responsibilities, the TimerService, Timer and TimerHandle interfaces, and @Timeout callback methods. Identify correct and incorrect statements or examples about the EJB context objects that the container provides to 3.0 Session beans and 3.0 Message-Driven beans, including the security, transaction, timer, and lookup services the context can provide. Identify correct and incorrect statements or examples about EJB 3.0 / EJB 2.x interoperability, including how to adapt an EJB 3.0 bean for use with clients written to the EJB 2.x API and how to access beans written to the EJB 2.x API from beans written to the EJB 3.0 API. &lt;/li&gt;&lt;li&gt;EJB 3.0 Session Bean Component Contract &amp;amp; Lifecycle: Identify correct and incorrect statements or examples that compare the purpose and use of Stateful and Stateless Session Beans. Identify correct and incorrect statements or examples about remote and local business interfaces for Session Beans. Write code for the bean classes of Stateful and Stateless Session Beans. Identify correct and incorrect statements or examples about the lifecycle of a Stateful Session Bean including the PrePassivate and PostActivate lifecycle callback methods and @Remove methods. Given a list of methods of a Stateful or Stateless Session Bean class, define which of the following operations can be performed from each of those methods: SessionContext interface methods, UserTransaction methods, access to the java:comp/env environment naming context, resource manager access, and other enterprise bean access. Identify correct and incorrect statements or examples about implementing a session bean as a web service endpoint, including rules for writing a web service endpoint interface and use of the @WebService and @WebMethod annotations. Identify correct and incorrect statements or examples about the client view of a session bean, including the client view of a session object's life cycle, obtaining and using a session object, and session object identity. &lt;/li&gt;&lt;li&gt;EJB 3.0 Message-Driven Bean Component Contract: Develop code that implements a Message-Driven Bean Class. Identify correct and incorrect statements or examples about the interface(s) and methods a JMS Message-Driven bean must implement, and the required metadata. Describe the use and behavior of a JMS message driven bean, including concurrency of message processing, message redelivery, and message acknowledgement. Identify correct and incorrect statements or examples about the client view of a message driven bean. &lt;/li&gt;&lt;li&gt;Java Persistence API Entities: Identify correct and incorrect statements or examples about the characteristics of Java Persistence entities. Develop code to create valid entity classes, including the use of fields and properties, admissible types, and embeddable classes. Identify correct and incorrect statements or examples about primary keys and entity identity, including the use of compound primary keys. Implement association relationships using persistence entities, including the following associations: bidirectional for @OneToOne, @ManyToOne, @OneToMany, and @ManyToMany; unidirectional for @OneToOne, @ManyToOne, @OneToMany, and @ManyToMany. Given a set of requirements and entity classes choose and implement an appropriate object-relational mapping for association relationships. Given a set of requirements and entity classes, choose and implement an appropriate inheritance hierarchy strategy and/or an appropriate mapping strategy. Describe the use of annotations and XML mapping files, individually and in combination, for object-relational mapping. &lt;/li&gt;&lt;li&gt;Java Persistence Entity Operations: Describe how to manage entities, including using the EntityManager API and the cascade option. Identify correct and incorrect statements or examples about entity instance lifecycle, including the new, managed, detached, and removed states. Identify correct and incorrect statements or examples about EntityManager operations for managing an instance's state, including eager/lazy fetching, handling detached entities, and merging detached entities. Identify correct and incorrect statements or examples about Entity Listeners and Callback Methods, including: @PrePersist, @PostPersist, @PreRemove, @PostRemove, @PreUpdate, @PostUpdate, and @PostLoad, and when they are invoked. Identify correct and incorrect statements about concurrency, including how it is managed through the use of @Version attributes and optimistic locking. &lt;/li&gt;&lt;li&gt;Persistence Units and Persistence Contexts: Identify correct and incorrect statements or examples about JTA and resource-local entity managers. Identify correct and incorrect statements or examples about container-managed persistence contexts. Identify correct and incorrect statements or examples about application-managed persistence contexts. Identify correct and incorrect statements or examples about transaction management for persistence contexts, including persistence context propagation, the use of the EntityManager.joinTransaction() method, and the EntityTransaction API. Identify correct and incorrect statements or examples about persistence units, how persistence units are packaged, and the use of the persistence.xml file. Identify correct and incorrect statements or examples about the effect of persistence exceptions on transactions and persistence contexts. &lt;/li&gt;&lt;li&gt;Java Persistence Query Language: Develop queries that use the SELECT clause to determine query results, including the use of entity types, use of aggregates, and returning multiple values. Develop queries that use Java Persistence Query Language syntax for defining the domain of a query using JOIN clauses, IN, and prefetching. Use the WHERE clause to restrict query results using conditional expressions, including the use of literals, path expressions, named and positional parameters, logical operators, the following expressions (and their NOT options): BETWEEN, IN, LIKE, NULL, EMPTY, MEMBER [OF], EXISTS, ALL, ANY, SOME, and functional expressions. Develop Java Persistence Query Language statements that update a set of entities using UPDATE/SET and DELETE FROM. Declare and use named queries, dynamic queries, and SQL (native) queries. Obtain javax.persistence.Query objects and use the javax.persistence.Query API. &lt;/li&gt;&lt;li&gt;Transactions: Identify correct and incorrect statements or examples about bean-managed transaction demarcation. Identify correct and incorrect statements or examples about container-managed transaction demarcation, and given a list of transaction behaviors, match them with the appropriate transaction attribute. Identify correct and incorrect statements or examples about transaction propagation semantics. Identify correct and incorrect statements or examples about specifying transaction information via annotations and/or deployment descriptors. Identify correct and incorrect statements or examples about the use of the EJB API for transaction management, including getRollbackOnly, setRollbackOnly and the SessionSynchronization interfaces. &lt;/li&gt;&lt;li&gt;Exceptions:  Identify correct and incorrect statements or examples about exception handling in EJB. Identify correct and incorrect statements or examples about application exceptions and system exceptions in session beans and message-driven beans, and defining a runtime exception as an application exception. Given a list of responsibilities related to exceptions, identify those which are the bean provider's, and those which are the responsibility of the container provider. Be prepared to recognize responsibilities for which neither the bean nor container provider is responsible. Identify correct and incorrect statements or examples about the client's view of exceptions received from an enterprise bean invocation. Given a particular method condition, identify the following: whether an exception will be thrown, the type of exception thrown, the container's action, and the client's view. &lt;/li&gt;&lt;li&gt;Security Management: Match security behaviors to declarative security specifications (default behavior, security roles, security role references, and method permissions). From a list of responsibilities, identify which roles are responsible for which aspects of security: application assembler, bean provider, deployer, container provider, system administrator, or server provider. Identify correct and incorrect statements or examples about use of the isCallerInRole and getCallerPrincipal EJB programmatic security APIs. Given a security-related deployment descriptor tag or annotation, identify correct and incorrect statements and/or code related to that tag. &lt;/li&gt;&lt;/ul&gt;&lt;a href="http://java.boot.by/scbcd5-guide/" target="_blank"&gt;Read More/Download&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-2998308672538578624?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/2998308672538578624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/2998308672538578624'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2009/12/scbcd-50-study-guide.html' title='SCBCD 5.0 Study Guide'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-6147189245071769229</id><published>2009-12-07T10:58:00.000-08:00</published><updated>2009-12-07T11:02:53.985-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCEA'/><title type='text'>SCEA 5 Study Guide</title><content type='html'>&lt;span style="font-weight: bold;"&gt;By Mikalai Zaikin&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;The purpose of this document is to help in preparation for exam 310-052 (Sun Certified Enterprise Architect for Java EE 5).This document should not be used as the only study material for SCEA 5 test. It covers all objective topics, but it is not enough. I tried to make this document as much accurate as possible, but if you find any error, please let me know.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Following are the exam objective covered in this SCEA 5 study guide.&lt;br /&gt;&lt;ul style="text-align: justify;"&gt;&lt;li&gt;Application Design Concepts and Principles: Explain the main advantages of an object oriented approach to system design including the effect of encapsulation, inheritance, delegation, and the use of interfaces, on architectural characteristics. Describe how the principle of "separation of concerns" has been applied to the main system tiers of a Java EE application. Tiers include client (both GUI and web), web (web container), business (EJB container), integration, and resource tiers. Describe how the principle of "separation of concerns" has been applied to the layers of a Java EE application. Layers include application, virtual platform (component APIs), application infrastructure (containers), enterprise services (operating system and virtualization), compute and storage, and the networking infrastructure layers. &lt;/li&gt;&lt;li&gt;Common Architectures: Explain the advantages and disadvantages of two tier architectures when examined under the following topics: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security. Explain the advantages and disadvantages of three tier architectures when examined under the following topics: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security. Explain the advantages and disadvantages of multi-tier architectures when examined under the following topics: scalability, maintainability, reliability, availability, extensibility, performance, manageability, and security. Explain the benefits and drawbacks of rich clients and browser-based clients as deployed in a typical Java EE application. Explain appropriate and inappropriate uses for Web Services in the Java EE Platform. &lt;/li&gt;&lt;li&gt;Integration and Messaging: Explain possible approaches for communicating with an external system from a Java EE-based system given an outline description of those systems and outline the benefits and drawbacks of each approach. Explain typical uses of Web Services and XML over HTTP as mechanisms to integrate distinct software components. Explain how Java Connector Architecture and JMS are used to integrate distinct software components as part of an overall Java EE application. &lt;/li&gt;&lt;li&gt;Business Tier Technologies: Explain and contrast uses for Entity Beans, Entity Classes, Stateful and Stateless Session Beans, and Message Driven Beans and understand the advantages and disadvantages of each type.     Explain and contrast the following persistence strategies: Container Managed Persistence (CMP) BMP, JDO, JPA, ORM and using DAOs (Data Access Objects) and direct JDBC-based persistence under the following headings: ease of development, performance, scalability, extensibility and security.  Explain how Java EE supports the deployment of server-side components implemented as Web Services and the advantages and disadvantages of adopting such an approach. Explain the benefits of the EJB3 development model over previous EJB generations for ease of development including how the EJB container simplifies EJB development. &lt;/li&gt;&lt;li&gt;Web Tier Technologies: State the benefits and drawbacks of adopting a web framework in designing a Java EE application. Explain standard uses for JSP and Servlet technologies in a typical Java EE application. Explain standard uses for JSF technology in a typical Java EE application. Given a system requirements definition, explain and justify your rationale for choosing a web-centric or EJB-centric implementation to solve the requirements. Web-centric means that you are providing a solution that does not use EJBs. EJB-centric solution will require an application server that supports EJBs. &lt;/li&gt;&lt;li&gt;Applicability of Java EE Technology: Given a specified business problem, design a modular solution implemented using Java EE which solves that business problem. Explain how the Java EE platform enables service oriented architecture (SOA) -based applications. Explain how you would design a Java EE application to repeatedly measure critical non-functional requirements and outline a standard process with specific strategies to refactor that application to improve on the results of the measurements. &lt;/li&gt;&lt;li&gt;Patterns: From a list, select the most appropriate pattern for a given scenario. Patterns are limited to those documented in the book - Alur, Crupi and Malks (2003). Core J2EE Patterns: Best Practices and Design Strategies 2nd Edition and named using the names given in that book. From a list, select the most appropriate pattern for a given scenario. Patterns are limited to those documented in the book - Gamma, Erich; Richard Helm, Ralph Johnson, and John Vlissides (1995). Design Patterns: Elements of Reusable Object-Oriented Software and are named using the names given in that book. Select from a list the benefits and drawbacks of a pattern drawn from the book - Gamma, Erich; Richard Helm, Ralph Johnson, and John Vlissides (1995). Design Patterns: Elements of Reusable Object-Oriented Software. Select from a list the benefits and drawbacks of a specified Core J2EE pattern drawn from the book - Alur, Crupi and Malks (2003). Core J2EE Patterns: Best Practices and Design Strategies 2nd Edition. &lt;/li&gt;&lt;li&gt;Security: Explain the client-side security model for the Java SE environment, including the Web Start and applet deployment modes. Given an architectural system specification, select appropriate locations for implementation of specified security features, and select suitable technologies for implementation of those features. Identify and classify potential threats to a system and describe how a given architecture will address the threats. Describe the commonly used declarative and programmatic methods used to secure applications built on the Java EE platform, for example use of deployment descriptors and JAAS. &lt;/li&gt;&lt;/ul&gt;&lt;a href="http://java.boot.by/scea5-guide/" target="_blank"&gt;Read More/Try It&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-6147189245071769229?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/6147189245071769229'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/6147189245071769229'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2009/12/scea-5-study-guide.html' title='SCEA 5 Study Guide'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-2635884467339536013</id><published>2009-12-07T10:46:00.000-08:00</published><updated>2009-12-07T10:57:17.177-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCWCD'/><title type='text'>SCWCD 1.4 Study Guide</title><content type='html'>&lt;span style="font-weight: bold;"&gt;By Mikalai Zaikin&lt;/span&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt;The purpose of this document is to help in preparation for exam CX-310-081      (Sun Certified Web Component Developer using the J2EE Platform 1.4).         This document should not be used as the only study material for SCWCD 1.4 test. It covers all      objective topics, but it is not enough. I tried to make this document as much accurate as      possible, but if you find any error, please let me know.    &lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Following are the exam objectives covered in this SCWCD study guide.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;The Servlet Technology Model&lt;/span&gt;: For each of the HTTP Methods (such as GET, POST, HEAD, and so on) describe the purpose of the method and the technical characteristics of the HTTP Method protocol, list triggers that might cause a Client (usually a Web browser) to use the method; and identify the HttpServlet method that corresponds to the HTTP Method. Using the HttpServletRequest interface, write code to retrieve HTML form parameters from the request, retrieve HTTP request header information, or retrieve cookies from the request. Using the HttpServletResponse interface, write code to set an HTTP response header, set the content type of the response, acquire a text stream for the response, acquire a binary stream for the response, redirect an HTTP request to another URL, or add cookies to the response. Describe the purpose and event sequence of the servlet life cycle: (1) servlet class loading, (2) servlet instantiation, (3) call the init method, (4) call the service method, and (5) call destroy method.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul style="font-weight: bold;"&gt;&lt;li style="font-weight: normal;"&gt;&lt;span style="font-weight: bold;"&gt;The Structure and Deployment of Web Applications:&lt;/span&gt;&lt;span style="font-weight: normal;"&gt; Construct the file and directory structure of a Web Application that may contain (a) static content, (b) JSP pages, (c) servlet classes, (d) the deployment descriptor, (e) tag libraries, (f) JAR files, and (g) Java class files; and describe how to protect resource files from HTTP access.&lt;/span&gt; Describe the purpose and semantics for each of the following deployment descriptor elements: error-page, init-param, mime-mapping, servlet, servlet-class, servlet-mapping, servlet-name, and welcome-file. Construct the correct structure for each of the following deployment descriptor elements: error-page, init-param, mime-mapping, servlet, servlet-class, servlet-mapping, servlet-name, and welcome-file. Explain the purpose of a WAR file and describe the contents of a WAR file, how one may be constructed.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;The Web Container Model:&lt;/span&gt; For the ServletContext initialization parameters: write servlet code to access initialization parameters; and create the deployment descriptor elements for declaring initialization parameters. For the fundamental servlet attribute scopes (request, session, and context): write servlet code to add, retrieve, and remove attributes; given a usage scenario, identify the proper scope for an attribute; and identify multi-threading issues associated with each scope. Describe the Web container request processing model; write and configure a filter; create a request or response wrapper; and given a design problem, describe how to apply a filter or a wrapper. Describe the Web container life cycle event model for requests, sessions, and web applications; create and configure listener classes for each scope life cycle; create and configure scope attribute listener classes; and given a scenario, identify the proper attribute listener to use.Describe the RequestDispatcher mechanism; write servlet code to create a request dispatcher; write servlet code to forward or include the target resource; and identify and describe the additional request-scoped attributes provided by the container to the target resource.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Session Management: &lt;/span&gt;Write servlet code to store objects into a session object and retrieve objects from a session object. Given a scenario describe the APIs used to access the session object, explain when the session object was created, and describe the mechanisms used to destroy the session object, and when it was destroyed. Using session listeners, write code to respond to an event when an object is added to a session, and write code to respond to an event when a session object migrates from one VM to another. Given a scenario, describe which session management mechanism the Web container could employ, how cookies might be used to manage sessions, how URL rewriting might be used to manage sessions, and write servlet code to perform URL rewriting.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Web Application Security:&lt;/span&gt; Based on the servlet specification, compare and contrast the following security mechanisms: (a) authentication, (b) authorization, (c) data integrity, and (d) confidentiality. In the deployment descriptor, declare a security constraint, a Web resource, the transport guarantee, the login configuration, and a security role. Compare and contrast the authentication types (BASIC, DIGEST, FORM, and CLIENT-CERT); describe how the type works; and given a scenario, select an appropriate type.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;The JavaServer Pages (JSP) Technology Model: &lt;/span&gt;Identify, describe, or write the JSP code for the following elements: (a) template text, (b) scripting elements (comments, directives, declarations, scriptlets, and expressions), (c) standard and custom actions, and (d) expression language elements. Write JSP code that uses the directives: (a) 'page' (with attributes 'import', 'session', 'contentType', and 'isELIgnored'), (b) 'include', and (c) 'taglib'. Write a JSP Document (XML-based document) that uses the correct syntax. Describe the purpose and event sequence of the JSP page life cycle: (1) JSP page translation, (2) JSP page compilation, (3) load class, (4) create instance, (5) call the jspInit method, (6) call the _jspService method, and (7) call the jspDestroy method. Given a design goal, write JSP code using the appropriate implicit objects: (a) request, (b) response, (c) out, (d) session, (e) config, (f) application, (g) page, (h) pageContext, and (i) exception. Configure the deployment descriptor to declare one or more tag libraries, deactivate the evaluation language, and deactivate the scripting language. Given a specific design goal for including a JSP segment in another page, write the JSP code that uses the most appropriate inclusion mechanism (the include directive or the jsp:include standard action).&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Building JSP Pages Using the Expression Language (EL):&lt;/span&gt; Given a scenario, write EL code that accesses the following implicit variables including: pageScope, requestScope, sessionScope, and applicationScope, param and paramValues, header and headerValues, cookie, initParam and pageContext. Given a scenario, write EL code that uses the following operators: property access (the '.' operator), collection access (the '[]' operator). Given a scenario, write EL code that uses the following operators: aritmetic operators, relational operators, and logical operators. Given a scenario, write EL code that uses a function; write code for an EL function; and configure the EL function in a tag library descriptor.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Building JSP Pages Using Standard Actions:&lt;/span&gt; Given a design goal, create a code snippet using the following standard actions: jsp:useBean (with attributes: 'id', 'scope', 'type', and 'class'), jsp:getProperty, and jsp:setProperty (with all attribute combinations). Given a design goal, create a code snippet using the following standard actions: jsp:include, jsp:forward, and jsp:param.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Building JSP Pages Using Tag Libraries:&lt;/span&gt; For a custom tag library or a library of Tag Files, create the 'taglib' directive for a JSP page. Given a design goal, create the custom tag structure in a JSP page to support that goal. Given a design goal, use an appropriate JSP Standard Tag Library (JSTL v1.1) tag from the "core" tag library.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Building a Custom Tag Library:&lt;/span&gt; Describe the semantics of the "Classic" custom tag event model when each event method (doStartTag, doAfterBody, and doEndTag) is executed, and explain what the return value for each event method means; and write a tag handler class. Using the PageContext API, write tag handler code to access the JSP implicit variables and access web application attributes. Given a scenario, write tag handler code to access the parent tag and an arbitrary tag ancestor. Describe the semantics of the "Simple" custom tag event model when the event method (doTag) is executed; write a tag handler class; and explain the constraints on the JSP content within the tag. Describe the semantics of the Tag File model; describe the web application structure for tag files; write a tag file; and explain the constraints on the JSP content in the body of the tag.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;J2EE Patterns: &lt;/span&gt;Given a scenario description with a list of issues, select a pattern that would solve the issues. The list of patterns you must know are: Intercepting Filter, Model-View-Controller, Front Controller, Service Locator, Business Delegate, and Transfer Object. Match design patterns with statements describing potential benefits that accrue from the use of the pattern, for any of the following patterns: Intercepting Filter, Model-View-Controller, Front Controller, Service Locator, Business Delegate, and Transfer Object.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://java.boot.by/wcd-guide/" target="_blank"&gt;Read More/Download&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-2635884467339536013?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/2635884467339536013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/2635884467339536013'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2009/12/scwcd-14-study-guide.html' title='SCWCD 1.4 Study Guide'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-677487113068968022</id><published>2008-12-28T02:43:00.000-08:00</published><updated>2008-12-28T03:01:31.509-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>The Java Boutique: The ultimate Java Applet Resource Tutorials</title><content type='html'>&lt;div style="text-align: justify;"&gt;The Java Boutique: The ultimate Java Applet Resource Tutorials is for everyone from novice to experienced Java programmers.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Following are the ebooks and articles about Core Java, J2EE, J2ME, Java enterprises &amp;amp; web services,  Java GUI design, Java Security, Java Networking, Java JSP and Java Servlets, etc.&lt;br /&gt;&lt;ol&gt;&lt;li&gt;Add Object Caching Caching Using Spring, AOP, and Ehcache&lt;/li&gt;&lt;li&gt;Customize Your JSSE Key and Trust Material Managers&lt;/li&gt;&lt;li&gt;Improved XML Binding with JAXB 2.0&lt;/li&gt;&lt;li&gt;Recipes for Cookie Management in J2SEs Tiger and Mustang&lt;/li&gt;&lt;li&gt;Developing UML Diagrams for EJBs with Poseidon&lt;/li&gt;&lt;li&gt;SortedSet and SortedMap Made Easier with Two New Mustang Interfaces&lt;/li&gt;&lt;li&gt;How Do Java's Lists Measure Up? Comparing Arrays, Lists, and Maps&lt;/li&gt;&lt;li&gt;Resistance is Futile: How to Make Your Java Objects Conform with the Adapter Pattern&lt;/li&gt;&lt;li&gt;StAX and XSLT Transformations with J2SE 6.0 Mustang&lt;/li&gt;&lt;li&gt;Accessing a Database with the JSTL 1.1 SQL Tag Library&lt;/li&gt;&lt;li&gt;An Introduction to Remote Method Activation (ROA), Part 2&lt;/li&gt;&lt;li&gt;Simplify List Screen Creation with AJAX&lt;/li&gt;&lt;li&gt;Manufacturing Java Objects with the Factory Method Design Pattern&lt;/li&gt;&lt;li&gt;Managing Data with the ThreadLocal Class&lt;/li&gt;&lt;li&gt;Data Validation with the Spring Framework&lt;/li&gt;&lt;li&gt;Agile Development: An Expert Roundtable&lt;/li&gt;&lt;li&gt;An Introduction to Remote Method Activation (ROA)&lt;/li&gt;&lt;li&gt;Smoothing Out Graphics Functioning Wrinkles in Linux and Unix&lt;/li&gt;&lt;li&gt;Creating Content and Protocol Handlers in Java, Part 2&lt;/li&gt;&lt;li&gt;Keeping Your Java Objects Informed with the Observer Design Pattern&lt;/li&gt;&lt;li&gt;Processing: Open Source Language Brings You Closer to Web 2.0&lt;/li&gt;&lt;li&gt;Enterprise Logging for Distributed J2EE Applications&lt;/li&gt;&lt;li&gt;Generate a PDF Report from a Database with BIRT&lt;/li&gt;&lt;li&gt;All About the Singleton Design Pattern&lt;/li&gt;&lt;li&gt;Generate a PDF Report from a Database with BIRT&lt;/li&gt;&lt;li&gt;Parsing with StAX in JDK 6.0&lt;/li&gt;&lt;li&gt;Book Excerpt: IntelliJ in Action&lt;/li&gt;&lt;li&gt;Creating Content and Protocol Handlers in Java&lt;/li&gt;&lt;li&gt;Save Time with the Ultimate toString Method&lt;/li&gt;&lt;li&gt;Book Excerpt: AJAX Hacks&lt;/li&gt;&lt;li&gt;Using Rasters for Image Processing, Part 2&lt;/li&gt;&lt;li&gt;Java to XML and Back Again with Castor XML&lt;/li&gt;&lt;li&gt;Java to XML and Back Again with Castor XML&lt;/li&gt;&lt;li&gt;Development Standards in Apache Struts&lt;/li&gt;&lt;li&gt;Book Excerpt: POJOs in Action&lt;/li&gt;&lt;li&gt;Integrating Apache Axis with the Spring Framework&lt;/li&gt;&lt;li&gt;Avoid Excessive Subclassing with the Decorator Design Pattern&lt;/li&gt;&lt;li&gt;Using Rasters for Image Processing, Part I&lt;/li&gt;&lt;li&gt;Run a Background Process in a Web Container Using Spring and ActiveMQ&lt;/li&gt;&lt;li&gt;Six Steps to Faster J2EE Apps: Performance Tuning with JSP and Servlets&lt;/li&gt;&lt;li&gt;Use Standardization to Ensure Successful Java Application Development &lt;/li&gt;&lt;li&gt;Measuring the Complexity of OO Systems&lt;/li&gt;&lt;li&gt;Wrap a Stateless Session EJB as a Web Service with Apache Axis&lt;/li&gt;&lt;li&gt;Avoid the Lesser Known Pitfalls of Localizing Java Applications&lt;/li&gt;&lt;li&gt;Use JBoss Cache to Cache and Share Data in Your Enterprise Applications&lt;/li&gt;&lt;li&gt;Automate Data Persistence with Firestorm/DAO&lt;/li&gt;&lt;li&gt;Upload Files with Struts, Store Them with Hibernate&lt;/li&gt;&lt;li&gt;Make the Correct Data Classes in Your DAO Applications&lt;/li&gt;&lt;li&gt;Coupling and Cohesion: The Two Cornerstones of OO Programming&lt;/li&gt;&lt;li&gt;The Java Speech API: A Primer on Speech Applications&lt;/li&gt;&lt;li&gt;Inversion of Control: A Mechanism for Highly Flexible Applications&lt;/li&gt;&lt;li&gt;Add Logic to Your JSP Pages with the JSP Expression Language&lt;/li&gt;&lt;li&gt;Managing DAO Transactions in Java&lt;/li&gt;&lt;li&gt;Create an XML Web Application with Struts, Xerces, and Xalan&lt;/li&gt;&lt;li&gt;Deliver Your Code with Confidence Using Test-driven Development&lt;/li&gt;&lt;li&gt;Building Easy Java GUIs with Thinlet, Part 2&lt;/li&gt;&lt;li&gt;Add Rich Media Content to Your J2EE Apps with Enterprise Media Beans&lt;/li&gt;&lt;li&gt;Building Easy Java GUIs with Thinlet, Part 1&lt;/li&gt;&lt;li&gt;Streamline Your JSP Management with Enhydra&lt;/li&gt;&lt;li&gt;Plug-in to Reusability in Java&lt;/li&gt;&lt;li&gt;Service-oriented Architecture, Part 3&lt;/li&gt;&lt;li&gt;iText Document Generator: PDF Generation Made Easy&lt;/li&gt;&lt;li&gt;SAMS: Java.s API For Mobile Services&lt;/li&gt;&lt;li&gt;Plug-in to Reusability in Java&lt;/li&gt;&lt;li&gt;Service Oriented Architecture - Part 2&lt;/li&gt;&lt;li&gt;Service Oriented Architecture - Part 1&lt;/li&gt;&lt;li&gt;Working with JDOM, XPath and XSLT&lt;/li&gt;&lt;li&gt;Metrics for Object Oriented Software Development&lt;/li&gt;&lt;li&gt;Digesting XML documents&lt;/li&gt;&lt;li&gt;The Mysteries of Business Object - Part 2&lt;&lt;/li&gt;&lt;li&gt;The Spring Framework&lt;/li&gt;&lt;li&gt;The Mysteries of Business Objects - Part 1&lt;/li&gt;&lt;li&gt;Program Annotation Facility&lt;/li&gt;&lt;li&gt;Using DAOs in Apache Struts&lt;/li&gt;&lt;li&gt;Using FOP with Java - Graphics in FOP - Part 3&lt;/li&gt;&lt;li&gt;Unweaving a Tangled Web With HTMLParser and Lucene&lt;/li&gt;&lt;li&gt;Using FOP with Java - Part 2&lt;/li&gt;&lt;li&gt;Using Program Parameters in Java&lt;/li&gt;&lt;li&gt;Configuring the SQuirrel JDBC client for use with MySQL&lt;/li&gt;&lt;li&gt;Converting XML to JavaBeans with XMLBeans&lt;/li&gt;&lt;li&gt;Advanced Forms Handling in Struts 1.1&lt;/li&gt;&lt;li&gt;Adding Spice to Struts - Part 2&lt;/li&gt;&lt;li&gt;A Brief Introduction to Struts – Expression Language&lt;/li&gt;&lt;li&gt;The Power of Three - Eclipse, Tomcat, and Struts&lt;/li&gt;&lt;li&gt;Adding Spice to Struts&lt;/li&gt;&lt;li&gt;To Inherit or Compose—-That is the Question&lt;/li&gt;&lt;li&gt;Handling Messages, Errors and Exceptions in Struts 1.1&lt;/li&gt;&lt;li&gt;The Pitfalls of Inheritance&lt;/li&gt;&lt;li&gt;Using Mock Objects in Java&lt;/li&gt;&lt;li&gt;Strictly Struts&lt;/li&gt;&lt;li&gt;J2EE Activity Service for Extended Transactions&lt;/li&gt;&lt;li&gt;StrutsTestCase: The Tool for Struts Unit Testing Part 2&lt;/li&gt;&lt;li&gt;StrutsTestCase: The Tool for Struts Unit Testing&lt;/li&gt;&lt;li&gt;Trader Pattern for Invoking Services&lt;/li&gt;&lt;li&gt;Java Certification Path API&lt;/li&gt;&lt;li&gt;Stepping through the Struts 1.1 Validator &lt;/li&gt;&lt;li&gt;Creating an SQL-Java Gateway&lt;/li&gt;&lt;li&gt;Using CASTOR for DB Access from STRUTS &lt;/li&gt;&lt;li&gt;Converting XML documents to Java objects with Castor XML &lt;/li&gt;&lt;li&gt;Putting Design Principles to Test - Part 2&lt;/li&gt;&lt;li&gt;Cultivating your relationship with Castor-JDO&lt;/li&gt;&lt;li&gt;Putting Design Principles to the Test(A Java based Case Study)&lt;/li&gt;&lt;li&gt;Java Client Provisioning&lt;/li&gt;&lt;li&gt;Mapping Java Objects to a Database with Castor-JDO&lt;/li&gt;&lt;li&gt;Building a sample Web App with STRUTS Part 2&lt;/li&gt;&lt;li&gt;Designing Packages for Stability&lt;/li&gt;&lt;li&gt;Load Testing your Applications with Apache JMeter&lt;/li&gt;&lt;li&gt;Package Design&lt;/li&gt;&lt;li&gt;Java Management Extensions&lt;/li&gt;&lt;li&gt;Building a sample Web App with STRUTS&lt;/li&gt;&lt;li&gt;Digging deeper into Apache Axis&lt;/li&gt;&lt;li&gt;The Java Game Development Tutorial &lt;/li&gt;&lt;li&gt;Working with files and directories in Java (2) &lt;/li&gt;&lt;li&gt;Working with files and directories in Java &lt;/li&gt;&lt;li&gt;Making the Switch to Java &lt;/li&gt;&lt;li&gt;Brush Up on Basics &lt;/li&gt;&lt;/ol&gt; You can read or download this Java tutorial from the following link.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://javaboutique.internet.com/tutorials/" target="_blank"&gt;Read More/Download&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Related Java Ebooks&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2008/01/download-free-java-ebooks.html"&gt;Core Java &amp;amp; Advanced Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javascript-css-xml-cgi-ebook.blogspot.com/"&gt;JavaScript, CSS, HTML, CGI, XML ebooks&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://freee-booksdownload.blogspot.com/2008/02/free-javascript-ebooks-download.html"&gt;JavaScript Online Books&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://freee-booksdownload.blogspot.com/2008/02/free-html-xhtml-dhtml-ebooks-download.html"&gt;XHTML DHTML HTML Online Books&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Buy Java Books&lt;/span&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0321356683?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321356683" target="_blank"&gt;Effective Java (2nd Edition) (Java Series)&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596009208?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596009208" target="_blank"&gt;Head First Java, 2nd Edition&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0596101996?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596101996" target="_blank"&gt;JavaScript: The Definitive Guide&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0071591060?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0071591060" target="_blank"&gt;SCJP Sun Certified Programmer for Java 6 Exam 310-065&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://www.amazon.com/gp/product/0321349601?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0321349601" target="_blank"&gt;Java Concurrency in Practice&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-677487113068968022?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/677487113068968022'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/677487113068968022'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2008/12/java-boutique-ultimate-java-applet.html' title='The Java Boutique: The ultimate Java Applet Resource Tutorials'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-4997097874093938479</id><published>2008-01-31T10:50:00.000-08:00</published><updated>2008-12-17T13:40:56.143-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Download free java ebooks</title><content type='html'>&lt;div style="text-align: justify;"&gt;This post helps you to study java programming. Following free java ebooks focus on java tutorial, java swing, sun java interface, java struts, java examples, java documentations, java j2ee, java jvm, java util, java j2se, java plugin, java programming, java runtime, java script, java downloads, free java applets, java vm, java certification, java socket, java beans, java source code, java threads, java help, java database, java api, java 1.5, java file, java training, java developments, java tips, java web services, Java object database, javascript wysiwyg editor, java course, java ecommerce, java classes, java data object and java mortgage calculators, etc&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;You can download free java ebooks from the following links.&lt;br /&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/06/introduction-to-programming-in-java.html"&gt;Introduction to Programming in Java - ebook By Robert Sedgewick and Kevin Wayne&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/06/interactive-programming-in-java-ebook.html"&gt;&lt;span style="font-weight: normal;"&gt;Interactive Programming In Java free ebook&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span class="MsoHyperlink"  style="font-size:100%;"&gt;&lt;span style="font-weight: normal;"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/06/free-java-ebook-introduction-to-java.html"&gt;Introduction to Java OOA/OOD for Web Applications free ebook&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span class="MsoHyperlink"  style="font-size:100%;"&gt;&lt;span style="font-weight: normal;"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/06/free-ebook-java-object-oriented-program.html"&gt;Java Object-oriented Program Design and Software Engineering free ebook&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span class="MsoHyperlink"  style="font-size:100%;"&gt;&lt;span style="font-weight: normal;"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/06/free-java-ebook-programming-principles.html"&gt;Programming Principles in Java: Architectures and Interfaces free ebook&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;span style="font-weight: normal;font-size:12;" &gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/06/sun-certified-java-programmer-pre-exam.html"&gt;Sun Certified Java Programmer Pre-Exam Essentials free ebook&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/thinking-in-java-3rd-ed-revision-40.html"&gt;Thinking in Java, 3rd ed. Revision 4.0&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/jdiff-html-report-of-api-differences.html"&gt;JDiff - An HTML Report of API Differences&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/java-api-specifications.html"&gt;Java API Specifications&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/java-course.html"&gt;The Java Course&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/jdk-14-tutorial.html"&gt;JDK 1.4 Tutorial&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/sun-java-tutorials.html"&gt;Sun Java Tutorials&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/introduction-to-computer-science-using.html"&gt;Introduction to Computer Science using Java&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/introduction-to-programming-using-java.html"&gt;Introduction to Programming Using Java, Fifth Edition&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/java-au-naturel-guide-to-object.html"&gt;Java Au Naturel - Guide to Object Oriented Design - Java 2 with Swing&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/essentials-of-java-programming-language.html"&gt;Essentials of the Java Programming Language, Part 1&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/gentle-introduction-to-java-programming.html"&gt;A Gentle Introduction to Java Programming&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/java-version-how-to-think-like-computer.html"&gt;How to Think Like a Computer Scientist - Fourth Edition – Java Version&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/guide-to-java-programming-bleeding-at.html"&gt;Bleeding at the Keyboard – A Guide to Java Programming  &lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/java-object-first-approach-free-ebook.html"&gt;Java an Object First Approach - Free Ebook&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/java-lecture-notes.html"&gt;Java Lecture Notes&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/java-faqs-core-advanced-enterprises.html"&gt;Java FAQ's - Core, Advanced, Enterprises, Miscellaneous&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/ebook-java-in-nut-shell-2nd-edition.html"&gt;Java in a Nut Shell - 2nd edition free ebook&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/java-language-reference.html"&gt;Java Language Reference by Mark Grand&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/java-awt-reference.html"&gt;Java AWT Reference by By John Zukowski&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/ebook-java-fundamental-classes.html"&gt;Java Fundamental Classes Reference By Mark Grand and Jonathan Knudsen Free Ebook&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;a href="http://javaebooks.blogspot.com/2007/07/exploring-java-free-ebook.html"&gt;Exploring Java - Free Ebook By Patrick Niemeyer &amp;amp; Joshua Peck – Free Ebook&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2007/11/sun-certified-java-programmer-pre-exam.html"&gt;Sun Certified Java Programmer Pre-Exam Essentials&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2007/11/java-application-development-on-linux.html"&gt;Java Application Development on Linux&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2007/11/apache-jakarta-commons.html"&gt;Apache Jakarta Commons&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2007/11/processing-xml-with-java.html"&gt;Processing XML with Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2007/11/securing-java.html"&gt;Securing Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2007/11/concurrent-programming-using-java.html"&gt;Concurrent Programming Using Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2007/11/advanced-programming-for-java-2.html"&gt;Advanced Programming for the Java 2 Platform&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2007/11/interface-design-best-practices-in.html"&gt;Interface Design Best Practices in Object-Oriented API Design in Java&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://javaebooks.blogspot.com/2007/11/java-reference-guide.html"&gt;Java Reference Guide&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-4997097874093938479?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/4997097874093938479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/4997097874093938479'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2008/01/download-free-java-ebooks.html' title='Download free java ebooks'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7477469605753362496</id><published>2007-11-30T12:00:00.000-08:00</published><updated>2008-12-17T13:40:56.143-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Java Reference Guide</title><content type='html'>&lt;div style="text-align: center;"&gt;by            Steven Haines&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;ul&gt;&lt;li&gt;Java is &lt;strong&gt;simple&lt;/strong&gt;. That simplicity derives from syntax similar to C/C++ and the omission of complex C/C++ features such as multiple implementation inheritance, pointers, and operator overloading.&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;object-oriented&lt;/strong&gt;. Java’s object-oriented nature encourages a developer to think in terms of classes and objects rather than separate code and data. That class/object focus results in code that is easier to write, easier to maintain, and easier to reuse.&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;network-savvy&lt;/strong&gt;. A TCP/IP library simplifies the development of programs that communicate with HTTP, FTP, and other TCP/IP network processes. Furthermore, the library’s use of the same stream-oriented mechanism for communicating with remote network processes that file-oriented code uses to communicate with files on a computer’s local hard drive helps a developer write network code faster.&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;interpreted&lt;/strong&gt;. Java’s compiler translates source code into class files of bytecode instructions. A virtual machine examines each instruction and uses that instruction’s meaning to execute an equivalent sequence of platform-dependent instructions. Interpretation speeds up the development process and simplifies debugging.&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;robust&lt;/strong&gt;. Errant programs do not crash the virtual machine or corrupt the underlying (native) platform. Robustness is achieved, in part, by not supporting C/C++ pointers, by providing a garbage collector to automatically free up dynamically allocated memory (instead of forcing the developer to accomplish that task), by performing strict compile-time/runtime type checking, and by providing true arrays with bounds checking.&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;secure&lt;/strong&gt;. Java’s "sandbox" security model identifies sensitive operations (such as file I/O) that a malicious program can exploit to harm the native platform, and provides a mechanism for allowing or preventing access to those operations.&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;architecture-neutral&lt;/strong&gt;. A compiled Java program’s bytecode instructions target a generic virtual machine instead of a specific platform. Because each platform-specific virtual machine implementation supplies a consistent interface to the bytecodes, the same Java program runs on diverse platforms (via their virtual machines).&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;portable&lt;/strong&gt;. Portability is achieved through architecture neutrality and through a strict definition of the language (which permits no implementation-dependent features). For example, Java’s integer primitive type always means a signed 2’s complement 32-bit integer. In contrast, the C/C++ integer type can be unsigned, and its size varies according to a platform’s register size (typically 32 bits or 64 bits).&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;high-performance&lt;/strong&gt;. Many virtual machines use a just-in-time (JIT) compiler to dynamically compile a program’s bytecode instructions into platform-specific instructions (which execute faster than bytecodes) as the program runs.&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;multithreaded&lt;/strong&gt;. Support for threads is built into the language via thread-synchronization primitives. There is also a thread library.&lt;/li&gt;&lt;li&gt;Java is &lt;strong&gt;dynamic&lt;/strong&gt;. Java’s use of an interface type to distinguish between what a program must do and how that task gets accomplished helps Java adapt to a continually evolving environment, and makes it easier for vendors to modify Java libraries without breaking program code that uses those libraries.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://www.informit.com/guides/guide.asp?g=java" target="_blank"&gt;Read More/Get Ebook&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7477469605753362496?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7477469605753362496'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7477469605753362496'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/11/java-reference-guide.html' title='Java Reference Guide'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-5559060360164944062</id><published>2007-11-30T11:28:00.000-08:00</published><updated>2008-12-17T13:40:56.144-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Interface Design Best Practices in Object-Oriented API Design in Java</title><content type='html'>&lt;div style="text-align: center;"&gt;by Bill Venners&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The books target intermediate Java programmers who want to become "better" Java programmers. They will help readers who are already familiar with the syntax and semantics of the Java language become more competent in actually using the Java language to solve real programming problems.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Before getting started, I'd like to clarify a few terms.  &lt;p&gt; &lt;strong&gt;Designer vs. client programmers&lt;/strong&gt;&lt;br /&gt;Most Java programmers have two hats on their shelf, which they wear at different times. Sometimes they wear their "designer" hats and build libraries of classes for others to use; other times they wear their "client" hats and make use of a library of classes created by someone else. Some Java programmers even where both hats at the same time, completely oblivious to the rules of fashion.  &lt;/p&gt;&lt;p&gt; One aspect of the flexibility of a body of code is the ease with which a client programmer can understand the code. Whether a client programmer is planning to change code or just use it as is, that programmer often has to figure out how to change or use the code by reading it.  &lt;/p&gt;&lt;p&gt; The guidelines discussed in this book will talk about &lt;em&gt;flexibility&lt;/em&gt; in terms of client programmers. Designs and implementations that are flexible are those that are easy for client programmers to understand, use, and change.  &lt;/p&gt;&lt;a href="http://www.artima.com/interfacedesign/contents.html" target="_blank"&gt;Read More/Get Ebook&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-5559060360164944062?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5559060360164944062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5559060360164944062'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/11/interface-design-best-practices-in.html' title='Interface Design Best Practices in Object-Oriented API Design in Java'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7617556322824388764</id><published>2007-11-30T11:24:00.000-08:00</published><updated>2008-12-17T13:40:56.144-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Advanced Programming for the Java 2 Platform</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span class="byline"&gt;By Calvin Austin and Monica Pawlan&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="byline"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;/blockquote&gt;As an experienced developer on the Java platform, you undoubtedly know how fast moving and comprehensive the platform is.  Its many  application programming interfaces (APIs) provide a wealth of functionality  for all aspects of application and system-level programming. Real-world  developers never use one or two APIs to solve a problem, but bring together  key functionality spanning a number of APIs. Knowing which APIs you need,  which parts of which APIs you need, and how the APIs work together to create  the best solution can be a daunting task.  &lt;p&gt; To help you navigate the Java APIs and fast-track your project development  time, this book includes the design, development, test, and deployment phases  for an enterprise-worthy auction application. While the example  application does not cover every possible programming scenario, it explores  many common situations and the discussions leave you with a solid methodology  for designing and building your own solutions.  &lt;/p&gt; &lt;p&gt; This book is for developers with more than a beginning level of  understanding of writing programs in the Java programming language.   The example application is written with the Java® 2 platform APIs and explained in  terms of functional hows and whys, so if you need help installing the Java  platform, setting up your environment, or getting your first application to  work, you should first read a more introductory book such as   &lt;strong style="font-weight: normal;"&gt;&lt;cite&gt;Essentials of the Java Programming Language: A Hands-On Guide&lt;/cite&gt;&lt;/strong&gt; or &lt;strong style="font-weight: normal;"&gt;&lt;cite&gt;The Java Tutorial&lt;/cite&gt;&lt;/strong&gt;.&lt;/p&gt;&lt;p&gt;&lt;a href="http://java.sun.com/developer/onlineTraining/Downloads/JDCBook.zip"target="_blank"&gt;Read More/Get Ebook&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;span class="byline"&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7617556322824388764?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7617556322824388764'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7617556322824388764'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/11/advanced-programming-for-java-2.html' title='Advanced Programming for the Java 2 Platform'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-5982107146211379061</id><published>2007-11-30T11:11:00.000-08:00</published><updated>2008-12-17T13:40:56.144-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Concurrent Programming Using Java</title><content type='html'>&lt;div style="text-align: center;"&gt;By Stephen J. Hartley&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;p&gt; This is an introduction to using the Java programming language in concurrent or multithreaded applications. The context is the process synchronization material and related concurrent programming in operating systems courses as opposed to software engineering. Topics covered are race conditions when threads share data, critical sections, mutual exclusion, semaphores, monitors, message passing, the rendezvous, remote procedure calls, distributed or network programming, and parallel processing. Solutions to the classical problems talked about in operating systems courses (the dining philosophers, the bounded buffer producers and consumers, and the database readers and writers) are shown in Java. Also shown is how to animate algorithms using the command set of the  Xtango animation interpreter, &lt;tt&gt;animator&lt;/tt&gt;. Some of the animation examples can be viewed as applets. &lt;/p&gt;  &lt;p&gt; These example programs were developed and tested using Sun Microsystem's JDK version 1.0.2 and 1.1 for Solaris 2.x and Windows 95/NT (1996--97). They have been updated to remove all ``deprecated'' methods and constructors. The multimachine socket examples use the &lt;tt&gt;readObject()&lt;/tt&gt; and &lt;tt&gt;writeObject()&lt;/tt&gt; methods of the &lt;tt&gt;ObjectInputStream&lt;/tt&gt; and &lt;tt&gt;ObjectOutPutStream&lt;/tt&gt; classes, which are part of the RMI (remote method invocation) add-on for JDK 1.0.2 and included with JDK 1.1. &lt;/p&gt;  &lt;p&gt; All of the code examples described and hyperlinked here may be retrieved as a &lt;tt&gt;gzip&lt;/tt&gt; &lt;tt&gt;tar&lt;/tt&gt; archive or &lt;tt&gt;zip&lt;/tt&gt; archive. &lt;/p&gt;  &lt;p&gt; Java is designed to be a platform-independent language, so all of these examples, including the animated ones, will run without change on Sun's Solaris 2.x UNIX for Sparc and Microsoft Windows 95/NT for Intel-based PCs.&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.mcs.drexel.edu/%7Eshartley/ConcProgJava/index.html" target="_blank"&gt;Read More/Get Ebook&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-5982107146211379061?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5982107146211379061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5982107146211379061'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/11/concurrent-programming-using-java.html' title='Concurrent Programming Using Java'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-1269476350817872661</id><published>2007-11-30T11:06:00.000-08:00</published><updated>2008-12-17T13:40:56.144-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Securing Java</title><content type='html'>&lt;div style="text-align: center; font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;By &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Gary McGraw and Edward Felten&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify; font-family: georgia;"&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt; Java has grown by leaps and bounds since its introduction in 1996, and is now among the most popular computing platforms on the planet. Java has evolved and changed so much that at a mere two-years old, our original work, Java Security: Hostile Applets, Holes, and Antidotes, found itself in serious need of revision and expansion. This book is the result of several years of thinking about mobile code and security, and includes many things we have discovered while working on real-world systems with businesses and government agencies. Our goal is to present enough information to help you separate fact from fiction when it comes to mobile code security.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt; Java has become much more complicated and multifaceted than it was when it was introduced. No longer simply a client-side language for applets, Java can now be found on everything from enterprise application servers to embedded devices like smart cards. We have tried to address security factors from throughout the entire Java range in this book.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt; We hope this book appeals to geeks and grandmothers alike (not that some grandmothers aren't geeks). Although it gets technical in places, we hope the messages are clear enough that even the casual Web user comes away with a broader understanding of the security issues surrounding mobile code. We kept four groups in mind as we wrote this book: Web users, developers, system administrators, and business decision-makers. Many of the issues of mobile code security cut across these groups. As Java integrates itself into the foundations of electronic commerce, Java security issues take on more urgency.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt; Java is only one kind of mobile code among many. Other systems immersed in the same security dilemma include ActiveX, JavaScript, and Word Macros. It is essential not to get the wrong message from this book. Our focus on Java is no accident. We believe Java is the most viable mobile code system created to date. Don't believe that through our work we imply that other systems are any more secure than Java. Just the opposite is true.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt; With the introduction of code signing to Java (in JDK 1.1) and its enhancement with access control (in Java 2), securing Java became much harder. Java's position along the security/functionality tradeoff has moved significantly toward functionality, to the detriment of security. This is good if you want more functionality, which most businesses and developers seem to need, but it is bad if you are charged with managing security risks. Forming an intelligent Java use policy is more important than ever, but doing so is more complicated than it used to be.&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.securingjava.com/toc.html" target="_blank"&gt;Read More/Get Ebook&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-1269476350817872661?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1269476350817872661'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1269476350817872661'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/11/securing-java.html' title='Securing Java'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-5260675888181461069</id><published>2007-11-30T11:02:00.000-08:00</published><updated>2008-12-17T13:40:56.144-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Processing XML with Java</title><content type='html'>&lt;div style="text-align: center;"&gt;By Elliotte Rusty Harold&lt;br /&gt;&lt;div style="text-align: justify;"&gt; Welcome to &lt;cite&gt;Processing XML with Java&lt;/cite&gt;, a complete tutorial about  writing Java programs that read and write XML documents. This is the most comprehensive and up-to-date book about integrating XML with Java (and vice versa) you can buy. It contains over  1000 pages of detailed information on SAX, DOM, JDOM, JAXP, TrAX, XPath,  XSLT, SOAP, and lots of other juicy acronyms. This book is written for Java programmers  who want to learn how to read and write XML documents from their code.&lt;br /&gt;&lt;p&gt; This book is written for experienced Java programmers who want to integrate XML into their systems. Java is the ideal language for processing XML documents. Its strong Unicode support in particular made it the preferred language for many early implementers. Consequently, more XML tools have been written in Java than in any other language. More open source XML tools are written in Java than in any other language. More programmers process XML in Java than in any other language. &lt;/p&gt;&lt;p&gt; &lt;i&gt;Processing XML with Java&lt;/i&gt; will teach you how to: &lt;/p&gt;&lt;div class="itemizedlist"&gt;&lt;ul type="disc"&gt;&lt;li&gt;&lt;p&gt;Save XML documents from applications written in Java&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Read XML documents produced by other programs&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Search, query, and update XML documents&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Convert legacy flat data into hierarchical XML&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Communicate with network servers that send and receive XML data&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Validate documents against DTDs, schemas, and business rules&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;p&gt;Combine functional XSLT transforms with traditional imperative Java code&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;p&gt; This book is meant for  Java programmers who need to do anything  with XML. It teaches the fundamentals and advanced topics, leaving  nothing out. It is a comprehensive course in processing XML with Java  that takes developers from little knowledge of XML to   designing sophisticated XML applications and parsing  complicated documents. The examples cover a wide range of possible  uses including file formats, data exchange, document transformation,  database integration, and more.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;a href="http://www.cafeconleche.org/books/xmljava/" target="_blank"&gt;Read More/Get Ebook&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-5260675888181461069?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5260675888181461069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5260675888181461069'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/11/processing-xml-with-java.html' title='Processing XML with Java'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-9099348388204301051</id><published>2007-11-30T10:49:00.000-08:00</published><updated>2008-12-17T13:40:56.145-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Apache Jakarta Commons</title><content type='html'>&lt;div style="text-align: center;"&gt;By Will Iverson&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;I originally noticed the Jakarta Commons libraries while working with Apache Jakarta Tomcat. At some point, Tomcat started to include a suite of small libraries with commons in the name. They started to show up everywhere, in all sorts of other open source projects. At first, it was slightly off-putting—what exactly is commons-lang.jar, and why is this tiny library showing up in all of my software?&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Exploring the Jakarta Commons, I first found a broad suite of what I would characterize as "utility" code—things that often wound up in my software in packages named things like "util." Digging deeper, I found useful libraries to solve common problems, interesting algorithms, and more. In brief, by using the Jakarta Commons, I found I spent less time reinventing the wheel, and more time solving the problem at hand.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Virtually every Java developer can take advantage of various Jakarta Commons components—from the utilities provided by the Collections andLang packages, through the networking components afforded by the HttpClient and Net packages. These components underlie Apache Tomcat, Struts, and countless other projects, helping move forward both the Java industry and the Java platform.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The first few chapters cover the more web-specific packages, including FileUpload, HttpClient, and the Net suite of protocol implementations. The Pool and DBCP packages are useful for a broader range of applications. BeanUtils and JXPath provide easier ways to work with objects. Logging, Lang, and Collections are a suite of tools applicable to almost every application. Codec provides a suite of specialized conversion routines, useful for data transfer, security, and (interestingly) phonetic analysis. Finally, the CLI package provides support for building command-line applications.&lt;br /&gt;&lt;a href="http://www.phptr.com/content/images/0131478303/downloads/Iverson_book.pdf" target="_blank"&gt;Read More/Get Ebook&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-9099348388204301051?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/9099348388204301051'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/9099348388204301051'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/11/apache-jakarta-commons.html' title='Apache Jakarta Commons'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-8835582313265993316</id><published>2007-11-30T10:28:00.000-08:00</published><updated>2008-12-17T13:40:56.145-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Java Application Development on Linux</title><content type='html'>&lt;div style="text-align: center;"&gt;By Carl Albing and Michael Schwarz&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Why another book on Java? Why a book on Java and Linux? Isn’t Java a platform independent system? Aren’t there enough books on Java? Can’t I learn everything I need to know from the Web?&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;No doubt, there are a host of Java books on the market. We didn’t wake up one morning and say, “You know what the world really needs? Another book about Java!” No. What we realized was that there are a couple of “holes” in the Java book market.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;First, Linux as a development platform and deployment platform for Java applications has been largely ignored. This is despite the fact that the *nix platform (meaning all UNIX and UNIX-like systems, Linux included) has long been recognized as one of the most programmer-friendly platforms in existence. Those few resources for Java on Linux that exist emphasize tools to the exclusion of the Java language and APIs.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Second, books on the Java language and APIs have focused on pedagogical examples that serve to illustrate the details of the language and its libraries, but very few of these examples are in themselves practically useful, and they tend to deal only with the issues of writing programs, and not at all with deploying and maintaining them. Anyone who has worked on a major software project, especially a software project that is developed and deployed in a business for a business, knows that designing and coding are only about half of the work involved. Yes, writing Java code is only slightly affected by the development and the deployment platform, but the process of releasing and maintaining such applications is significantly different between platforms....&lt;br /&gt;&lt;a href="http://www.phptr.com/content/images/013143697X/downloads/013143697X_book.pdf" target="_blank"&gt;Read More/Get Ebook&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-8835582313265993316?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8835582313265993316'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8835582313265993316'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/11/java-application-development-on-linux.html' title='Java Application Development on Linux'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-6718597169487546226</id><published>2007-11-30T10:17:00.000-08:00</published><updated>2009-12-07T11:52:19.979-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCJP'/><category scheme='http://www.blogger.com/atom/ns#' term='Advanced Java'/><title type='text'>Sun Certified Java Programmer Pre-Exam Essentials</title><content type='html'>&lt;div style="text-align: justify;"&gt;The purpose of this document is to provide a &lt;b&gt;basis for revising&lt;/b&gt; for the Sun Certified Programmer examinations,             &lt;b&gt;not to teach&lt;/b&gt; the Java language or the topics required for the exam. It is designed to collect all the essential information you need to retain, in one place, and is designed for someone who has already finished their own study and is about to take the exam.&lt;br /&gt;&lt;p&gt;This version is written according to the objectives of the "Sun Certified Programmer For Java™ 2 Platform 1.4" exam. For those taking the 1.2 exam, the objectives no longer required for 1.4 have been retained towards the end of this document. The sections have "1.2 Exam Only" at the start of their titles. I would recommend doing the 1.4 exam instead, as it is more current and the only major new subject is assertions. &lt;/p&gt;          &lt;p&gt;Aside: There is no 1.3 exam, as such. The 1.1 exam exam was replaced by a Java2 exam, which at the time seemed like it would suffice for all Java2 releases. However in September 2002 Sun released seperate 1.2 and 1.4 exams. The 1.2 syllabus is for 1.2 and 1.3. &lt;/p&gt;&lt;a href="http://www.jchq.net/essentials/index.htm" target="_blank"&gt;Read More/Get Ebook&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-6718597169487546226?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/6718597169487546226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/6718597169487546226'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/11/sun-certified-java-programmer-pre-exam.html' title='Sun Certified Java Programmer Pre-Exam Essentials'/><author><name>Indian Blogger</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-1722651375437044428</id><published>2007-07-07T13:45:00.000-07:00</published><updated>2008-12-17T13:40:56.145-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Exploring Java - Free Ebook</title><content type='html'>&lt;div align="center"&gt;By Patrick Niemeyer &amp;amp; Joshua Peck&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This ebook is about the Java language and programming environment. If you've been at all active on the Internet in the past year, you've heard a lot about Java. It's one of the most exciting developments in the history of the Internet, rivaling the creation of the World Wide Web. Java became the darling of the Internet programming community as soon as the alpha version was released. Immediately, thousands of people were writing Java applets to add to their Web pages. Interest in Java only grew with time, and support for Java in Netscape Navigator guaranteed it would be a permanent part of the Net scene. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;What, then, is Java? Java is a language for network programming that was developed by Sun Microsystems. It's already in widespread use for creating animated Web pages. However, this is only the start. The Java language and environment are rich enough to support entirely new kinds of applications, like dynamically extensible browsers. There has been talk about new kinds of computer platforms (Java terminals or Java pads) that download all their software over the network. In the coming years, we'll see what Java is capable of doing; fancy Web pages are fun and interesting, but they certainly aren't the end of the story. If Java is successful (and that isn't a foregone conclusion), it could change the way we think about computing in fundamental ways. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This ebook sets out to give you a head start on a lot of Java fundamentals. Exploring Java attempts to live up to its name by mapping out the Java language, its class libraries, programming techniques, and idioms. We'll dig deep into interesting areas, and at least scratch the surface of the rest. Other titles in the O'Reilly &amp;amp; Associates Java series will pick up where we leave off and provide more comprehensive information on specific areas and applications of Java.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Whenever possible, we'll provide meaningful, realistic examples and avoid simply cataloging features. The examples are simple but hint at what can be done. We won't be developing the next great "killer Internet app" in these pages, but we hope to give you a starting point for many hours of experimentation and tinkering that will lead you to learn more on your own. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.computer-books.us/java_4.php" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-1722651375437044428?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1722651375437044428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1722651375437044428'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/exploring-java-free-ebook.html' title='Exploring Java - Free Ebook'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-3616632239397062967</id><published>2007-07-07T13:40:00.000-07:00</published><updated>2008-12-17T13:40:56.145-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Ebook - Java Fundamental Classes Reference</title><content type='html'>&lt;div align="center"&gt;By Mark Grand and Jonathan Knudsen&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This java ebook is a reference manual for the fundamental classes in the Java programming environment; it covers version 1.1 of the Java API. We've defined fundamental classes to mean those classes in the Java Development Kit (JDK) that every Java programmer is likely to need, minus the classes that comprise the Abstract Window Toolkit (AWT). (The classes in the AWT are covered by a companion volume, the Java AWT Reference, from O'Reilly &amp;amp; Associates.) Thus, this ebook covers the classes in the java.lang and java.io packages, among others, and is essential for the practicing Java programmer. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This is an exciting time in the development of Java. Version 1.1 introduces a massive amount of infrastructure that more than doubles the size of the core Java APIs. This new infrastructure provides many new facilities, such as: &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Java is now more dynamic. An expanded Class class, in conjunction with the new java.lang.reflect package, allows objects to access methods and variables of objects that they were not compiled with. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;There are classes in java.io that build on the new dynamic capabilities to provide the ability to read and write objects as streams of bytes. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;There is increased support for internationalization. The support includes a Locale class and classes to format and parse data in locale-specific ways. There is also support for loading external locale-specific resources, such as textual strings. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The java.util.zip package provides the ability to read and write compressed files. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The java.math package provides the ability to perform arithmetic operations to any degree of precision that is necessary. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;There are also more ways to package and distribute Java programs. In addition to being able to build command-line based applications and applets that are hosted by browsers, we now have the Java Servelet API that allows Java programs to function as part of a web server. Furthermore, the nature of applets may be changing. Instead of waiting for large applet to be downloaded by a browser, we now have push technologies such as Marimba's Castanet that ensure that the most current version of an applet is already on our machine when we want to run it. &lt;/p&gt;&lt;p align="justify"&gt;Many new uses for Java have appeared or are on the horizon. For example, NASA is using Java applets to monitor telemetry data, instead of building more large, dedicated hardware consoles. Cellular phone manufacturers have committed to making cellular phone models that support Java, so in the future we may see Java programs that run on cellular phones and allow us to check e-mail or view location maps. Many additional APIs are also on the way, from Sun and other companies. These APIs not only supply infrastructure, but also provide frameworks for building domain-specific applications, in such areas as electronic commerce and manufacturing. &lt;/p&gt;&lt;p align="justify"&gt;This java ebook is about the classes that provide the most fundamental infrastructure for Java. As you use this book, we hope that you will share our enthusiasm for the richness of what is provided and the anticipation of what is yet to come. &lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://docstore.mik.ua/orelly/java/fclass/index.htm" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://www.amazon.com/gp/product/1565922417?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=1565922417" target="_blank"&gt;Java Fundamental Classes Reference (Java Series)&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-3616632239397062967?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3616632239397062967'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3616632239397062967'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/ebook-java-fundamental-classes.html' title='Ebook - Java Fundamental Classes Reference'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-2496445013226408498</id><published>2007-07-07T13:35:00.000-07:00</published><updated>2008-12-17T13:40:56.145-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Java AWT Reference</title><content type='html'>&lt;div align="center"&gt;By John Zukowski&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The Abstract Window Tookit (AWT) provides the user interface for Java programs. Unless you want to construct your own GUI or use a crude text-only interface, the AWT provides the tools you will use to communicate with the user. Although we are beginning to see some other APIs for building user interfaces, like Netscape's IFC (Internet Foundation Classes), those alternative APIs will not be in widespread use for some time, and some will be platform specific. Likewise, we are beginning to see automated tools for building GUIs in Java; Sun's JavaBeans effort promises to make such tools much more widespread. (In fact, the biggest changes in Java 1.1 prepare the way for using the various AWT components as JavaBeans.) However, even with automated tools and JavaBeans in the future, an in-depth knowledge of AWT is essential for the practicing Java programmer.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The major problem facing Java developers these days is that AWT is a moving target. Java 1.0.2 is being replaced by Java 1.1, with many significant new features. Java 1.1 was released on February 18, 1997, but it isn't clear how long it will take for 1.1 to be accepted in the market. The problem facing developers is not just learning about the new features and changes in Java 1.1, but also knowing when they can afford to use these new features in their code. In practice, this boils down to one question: when will Netscape Navigator support Java 1.1? Rumor has it that the answer is "as soon as possible"--and we all hope this rumor is correct. But given the realities of maintaining a very complex piece of software, and the fact that Netscape is currently in the beta process for Navigator 4.0, there's a possibility that "as soon as possible" and "soon" aren't the same thing. In other words, you should expect Java 1.0.2 to stick around for a while, especially since Web users won't all replace their browsers as soon as Navigator has 1.1 support.&lt;br /&gt;This state of affairs raises obvious problems for my book. Nothing would have made me happier than to write a book that covered AWT 1.1 only. It would be significantly shorter, for one thing, and I wouldn't have to spend so much effort pointing out which features are present in which release. But that's not the current reality. For the time being, programmers still need to know about 1.0.2. Therefore, this book covers both releases thoroughly. There are many examples using 1.0.2; many more examples that require 1.1; and more examples showing you how to update 1.0.2 code to use 1.1's features.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Sun has done a good job of maintaining compatibility between versions: 1.0 code runs under Java 1.1, with very few exceptions. All of the 1.0 examples in this book have been tested under Java 1.1. However, Java 1.1--and particularly, AWT 1.1--offer many advantages over older releases. If nothing else, I hope this book convinces you that you should be looking forward to the day when you can forget about writing code for Java 1.0.2. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://oreilly.com/catalog/javawt/book/index.html" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-2496445013226408498?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/2496445013226408498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/2496445013226408498'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/java-awt-reference.html' title='Java AWT Reference'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-1409419765632307356</id><published>2007-07-07T13:27:00.000-07:00</published><updated>2008-12-17T13:40:56.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Java Language Reference</title><content type='html'>&lt;div align="center"&gt;By Mark Grand&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This book is a reference manual for the Java programming language; it covers Version 1.1 of the Java language. It provides a complete description of all of the constructs in the language, so that programmers can write Java programs that function exactly as expected. This book is not meant to teach you the Java language, although you could probably use it for that purpose if you are already fluent in a number of other programming languages. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This is an exciting time in the development of Java. Version 1.1 is a huge new release that more than doubles the size of the core Java APIs. Fortunately, the Java language itself contains relatively few changes for Java 1.1. The new features of the language are significant, however, both in terms of the useful functionality and the elegance they add to the language. This book covers all of the new language constructs in Java 1.1. Here's a quick list of the new features: &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Inner classes, which include nested top-level classes and interfaces, member classes, local classes, and anonymous classes &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;final local variables, method parameters, and catch clause parameters &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Instance initializers &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Blank finals, or final variable declarations that do not include initializers &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Class literals for obtaining Class objects &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Anonymous arrays, or arrays created and initialized without a variable initializer&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;a href="http://www.unixmexico.org/files/html/kore.hack.se/oreilly/java/langref/index.htm" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-1409419765632307356?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1409419765632307356'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1409419765632307356'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/java-language-reference.html' title='Java Language Reference'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7480392218407655357</id><published>2007-07-07T13:14:00.000-07:00</published><updated>2009-12-23T14:18:01.349-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Ebook - Java in a Nut Shell</title><content type='html'>&lt;div align="center"&gt;By David Flanagan&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This handbook is a desktop quick reference for Java programmers; it covers version 1.1 of the Java language and API. It also includes introductory and tutorial material for other programmers who want to learn Java. It was written to sit faithfully by your keyboard for easy reference while you program. The wild success of the first edition has shown that this is exactly what Java programmers want, and I've retained the "no fluff" explanations and the to-the-point reference material in this second edition. I hope that new readers will find this book useful, and that old readers will find it even more useful than the last one!&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;b&gt;Contents of This Book&lt;/b&gt;&lt;br /&gt;This book is divided into five parts: &lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;b&gt;Part I: Introducing Java&lt;/b&gt;&lt;br /&gt;This first part of the book introduces Java and Java programming, with a particular emphasis on helping C and C++ programmers make the transition to Java. If you are already familiar with Java 1.0 programming, you can skip the three chapters in this part. &lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;b&gt;Part II: Introducing Java 1.1&lt;/b&gt;&lt;br /&gt;This second part of the book contains two chapters that introduce the new features of the Java 1.1 API and the new language features in Java 1.1. &lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;b&gt;Part III: Programming with the Java 1.1 API&lt;/b&gt;&lt;br /&gt;This part contains example programs that demonstrate many of the new features of Java 1.1. You may find that these examples are a good starting point for your own programs, and you should feel free to adapt them for your own use. As explained below, this example section has changed a lot since the first edition of this book. &lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;b&gt;Part IV: Java Language Reference&lt;/b&gt;&lt;br /&gt;This part of the book contains reference material that describes the syntax of the Java language and the tools provided with the Java Development Kit (JDK), among other things. &lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;b&gt;Part V: API Quick Reference&lt;/b&gt;&lt;br /&gt;This part is a quick reference for the Java API; it forms the bulk of the book. Please be sure to read the How To Use This Quick Reference material, which appears at the beginning of the part. It explains how to get the most out of the reference material.&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.ebookee.com.cn/Java-In-A-Nutshell-5th-Edition_2514.html" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.amazon.com/gp/product/0596007736?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596007736" target="_blank"&gt;&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.amazon.com/gp/product/0596007736?ie=UTF8&amp;amp;tag=frsaabeb-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0596007736" target="_blank"&gt;Java In A Nutshell, 5th Edition&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7480392218407655357?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7480392218407655357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7480392218407655357'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/ebook-java-in-nut-shell-2nd-edition.html' title='Ebook - Java in a Nut Shell'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-3306021884478710969</id><published>2007-07-07T13:02:00.000-07:00</published><updated>2008-12-17T13:40:56.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Java FAQ's - Core, Advanced, Enterprises, Miscellaneous</title><content type='html'>&lt;div align="justify"&gt;This java Faq site provides various java faq's in core java, advanced java, enterprises java and miscellaneous java programming techniques.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;As on july 2007, this java faq and ebook site provides the following java materials for you.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Core Java&lt;/strong&gt;&lt;/div&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;Language Fundamentals(147)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Virtual Machine(19)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Classes, Interfaces, &amp;amp; Pkgs(49)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Exceptions(09)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Applets(55) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Abstract Window Toolkit(70)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Events - JDK 1.1 and above(27)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Drawing(38) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Threads(21) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Input, Output(38) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Network(68) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Miscellaneous(28) &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p align="justify"&gt;&lt;strong&gt;Advance Java FAQ&lt;/strong&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;Servlets (12)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;JDBC (38)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Swing (15)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;RMI (30)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Beans(15) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java IO (10) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Jini (09) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;CORBA (04) &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Browsers (07) &lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p align="justify"&gt;&lt;a href="http://www.javafaq.com/corejava.html" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-3306021884478710969?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3306021884478710969'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3306021884478710969'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/java-faqs-core-advanced-enterprises.html' title='Java FAQ&apos;s - Core, Advanced, Enterprises, Miscellaneous'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7620031649953039773</id><published>2007-07-07T12:51:00.000-07:00</published><updated>2008-12-17T13:40:56.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Java Lecture Notes</title><content type='html'>&lt;div align="justify"&gt;This java lecture note is a good introductory level java ebook written by Elliotte Rusty Harold. This java materials are being taught by the author at the senior undergraduate and introductory graduate level for computer science majors, and is split into 13, two hour fifteen minute classes plus a final exam.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Following are the course content of this java ebook.&lt;/div&gt;&lt;blockquote&gt;&lt;div align="justify"&gt;Week 1: Basic Java&lt;br /&gt;Week 2: Procedural Java&lt;br /&gt;Week 3: Introduction to java Objects&lt;br /&gt;Week 4: More java Objects&lt;br /&gt;&lt;strong&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;Midterm&lt;br /&gt;&lt;/strong&gt;Week 5: Introducing java Applets&lt;br /&gt;Week 6: Java Components&lt;br /&gt;Week 7: Java Events&lt;br /&gt;Week 8: Java LayoutManagers, Windows, and Dialogs&lt;br /&gt;Week 9: Java Images and Menus&lt;br /&gt;Week 10: Java I/O and Streams&lt;br /&gt;Week 11: Java Threads&lt;br /&gt;Week 12: Java Network Programming&lt;br /&gt;Week 13: Cut and Paste, Printing, Future Directions&lt;br /&gt;Week 14: Final Exam&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.cafeaulait.org/course/" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7620031649953039773?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7620031649953039773'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7620031649953039773'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/java-lecture-notes.html' title='Java Lecture Notes'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-2948557689377530419</id><published>2007-07-07T12:38:00.000-07:00</published><updated>2008-12-17T13:40:56.146-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Java an Object First Approach - Free Ebook</title><content type='html'>&lt;div align="justify"&gt;This java ebook "Java An Object First Approach" provides a thorough introduction to the production of software artefacts, a process known as software development, using the programming language Java. The ebook is intended for use with readers or students starting their software development education and can also be used at a more advanced level as an Object-Oriented ebook. The author uses a spiral approach to present object-oriented concepts and techniques. The development of a class hierarchy is utilized, stressing a design, build, test cycle. An extensive case study at the conclusion of the book pulls the concepts together. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This java ebook is writen &lt;strong&gt;by Fintan Culwin&lt;/strong&gt;. Following are the topics covered in this java book.&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Two Initial Applications&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;An overview of Java classes&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The start of the Counters class hierarchy&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The completion of the Counters hierarchy&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The RoomMonitor class and MoneyRegister hierarchy&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The BasicMenu class&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The AdaptingMenu class&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Concurrent processes&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Keyboard input and formatted output&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The JulianDate Hierarchy&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Testing Software&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Streams&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Standard Iterative Data Structures&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Developer Supplied Data Structures.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Dynamic and recursive data structures&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Graphical User Interfaces.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;&lt;a href="http://burks.bton.ac.uk/burks/language/java/jof/jflconte.htm" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-2948557689377530419?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/2948557689377530419'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/2948557689377530419'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/java-object-first-approach-free-ebook.html' title='Java an Object First Approach - Free Ebook'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-111572854592544187</id><published>2007-07-07T12:28:00.000-07:00</published><updated>2008-12-17T13:40:56.147-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>A Guide to Java Programming - Bleeding at the Keyboard</title><content type='html'>&lt;div align="justify"&gt;"Bleeding at the Keyboard" is a very nice java ebook and a good java guide teaches you modern programming with java. This java ebook is written by Gregory Rawlins.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The following are the topics covered in this java book.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Setting the Stage:&lt;/strong&gt; object, class, method, program, Java interpreter, inheritance, interface, design pattern.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Introducing the Players:&lt;/strong&gt; class, variable, value, type, state, behavior, reference value, reference variable, message, statement, method, reference variable, reference value, class, method, and variable naming conventions, declaration statement, boolean variable, int variable, double variable, boolean value, int value, double value, true, false, scope, local variable, global variable, &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Behind the Scenes:&lt;/strong&gt; parameter, method execution, sending a message, type, return, new, assignment statement, operator, operand, main() method, dot operator, variable access, continuation line, comment, void, if, ".", "&lt;=", "==", "/*", "*/", "//". &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Character Study:&lt;/strong&gt; type, value, reference value, reference variable, reference type, boolean type, int type, double type, Class type, null, state, behavior, operator, operand, remainder, expression, boolean expression, int expression, double expression, type casting, (int), (double), (boolean), "+", "-", "*", "/", "%", "&amp;&amp;amp;", "", "!", "&lt;", "&lt;=", "&gt;", "&gt;=", "==", "!=". &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Stage Direction:&lt;/strong&gt; state, behavior, type, encapsulation, variable initialization, constructor, signature, constant naming convention, class variable, class method, if-else, this, import, private, public, final, static, main(). &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;All Together Now:&lt;/strong&gt; while, for, blocks, scope, increment operator, decrement operator, "++", "--", declaring variables in for loops, encapsulation, method overloading, method signature, String, string concatentation, operator overloading, arrays, array operator, "[]", packages, package access, package naming convention, package, the unnamed package. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;It Takes All Types:&lt;/strong&gt; subclass, superclass, extends, super(), overriding methods, overloading methods, class Object, the equals() method, the toString() method, String, protected, interface, interface naming convention, implements, abstract method, abstract class. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;What's in a Name?:&lt;/strong&gt; subtype, supertype, this, this(), super, super(), "([type name])", instanceof, reference casting, upcast, downcast. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Think Like an Object:&lt;/strong&gt; encapsulation, final method, final class, private constructor. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;strong&gt;Let the Games Begin:&lt;/strong&gt; threads, Runnable, sleep(), exceptions, try, catch, Graphics, Component, paint(). &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.roxie.org/books/bleeding/" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-111572854592544187?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/111572854592544187'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/111572854592544187'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/guide-to-java-programming-bleeding-at.html' title='A Guide to Java Programming - Bleeding at the Keyboard'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-8300279268246570239</id><published>2007-07-07T12:20:00.000-07:00</published><updated>2008-12-17T13:40:56.147-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Java Version- How to Think Like a Computer Scientist - Fourth Edition</title><content type='html'>&lt;div align="justify"&gt;This is a very nice java programming ebook and you can think like a java scientist.&lt;/div&gt;&lt;div align="center"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;By Allen B. Downey&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This is the fourth edition of a book I started writing in 1999, when I was teaching at Colby College. I had taught an introductory computer science class using the Java programming language, but I had not found a textbook I was happy with. For one thing, they were all too big! There was no way my students would read 800 pages of dense, technical material, even if I wanted them to. And I didn't want them to. Most of the material was too specific---details about Java and its libraries that would be obsolete by the end of the semester, and that obscured the material I really wanted to get to.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The other problem I found was that the introduction to object oriented programming was too abrupt. Many students who were otherwise doing well just hit a wall when we got to objects, whether we did it at the beginning, middle or end. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;So I started writing. I wrote a chapter a day for 13 days, and on the 14th day I edited. Then I sent it to be photocopied and bound. When I handed it out on the first day of class, I told the students that they would be expected to read one chapter a week. In other words, they would read it seven times slower than I wrote it. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.greenteapress.com/thinkapjava/thinkapjava.pdf" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-8300279268246570239?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8300279268246570239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8300279268246570239'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/java-version-how-to-think-like-computer.html' title='Java Version- How to Think Like a Computer Scientist - Fourth Edition'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-9214695517149950294</id><published>2007-07-07T11:55:00.000-07:00</published><updated>2008-12-17T13:40:56.147-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>A Gentle Introduction to Java Programming</title><content type='html'>&lt;div align="center"&gt;by Andrew Cumming &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This is an interactive java programming tutorial. You can run java programs and can verify the output of the programs. This java training covers the following topics in detail. &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Flags&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;In which draw colourful pictures using powerful java programming features.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;World Factbook I&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we look at the countries of the world one at a time. We practice "if"&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Function&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we calculate values&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Boxes&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we practice conditions with two numbers&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;World Factbook II&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we use a loop to examine the CIA's World Factbook&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Strings&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we manipulate and test strings.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;World Factbook II&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we use an accumulating variable to count and sum.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Using the documentation&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we examine fonts.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;World Factbook III&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we use the TreeMap Class.&lt;br /&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Bricks&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we use for loops.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Quilts&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;In which we practice a functional style of programming with immutable objects.&lt;/blockquote&gt;&lt;p&gt;&lt;strong&gt;Reference: how to...&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Hello World&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;blockquote&gt;Some short, trival programs.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Data types&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;Creating variables of different types. Converting between variable types. &lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Control structures&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;p align="justify"&gt;We control program flow with while, for, foreach, if, return, break and other constructs&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Tests&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;We look at the different ways to test conditions. &lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;In-built function&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;p align="justify"&gt;We can use many functions provided by the core language. String and number functions primarily.&lt;/p&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;In-built data structures &lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;We can make use of arrays, hash tables and dates.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Input and output&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;We explore the options for reading and writing data to files and to databases.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Graphics&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;Drawing lines, polygons, strings and other shapes.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Graphic User Interface&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;Buttons, text boxes that users can see and control.&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;Programming techniques&lt;/li&gt;&lt;/ul&gt;&lt;blockquote&gt;&lt;p&gt;Accumulating variables, recursion, function composition.&lt;/p&gt;&lt;/blockquote&gt;&lt;a href="http://java.progzoo.net/wiki/ProgZoo" target="_blank"&gt;Read More/Start Java Training&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-9214695517149950294?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/9214695517149950294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/9214695517149950294'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/gentle-introduction-to-java-programming.html' title='A Gentle Introduction to Java Programming'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-8010921948807028345</id><published>2007-07-07T11:47:00.000-07:00</published><updated>2008-12-17T13:40:56.147-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Essentials of the Java Programming Language, Part 1</title><content type='html'>&lt;div align="center"&gt;By Monica Pawlan&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;If you are new to programming in the Java language, have some experience with other languages, and are familiar with things like displaying text or graphics or performing simple calculations, this tutorial could be for you. It walks through how to use the Java 2 Platform software to create and run three common types of programs written for the Java platform—applications, applets, and servlets. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;You will learn how applications, applets, and servlets are similar and different, how to build a basic user interface that handles simple end user input, how to read data from and write data to files and databases, and how to send and receive data over the network. This tutorial is not comprehensive, but instead takes you on a straight and uncomplicated path through the more common programming features available in the Java platform. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;A Word About the Java Platform&lt;/strong&gt;&lt;br /&gt;The Java platform consists of the Java application programming interfaces (APIs) and the Java virtual machine (JVM). &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Java APIs are libraries of compiled code that you can use in your programs. They let you add ready-made and customizable functionality to save you programming time. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The simple program in this lesson uses a Java API to print a line of text to the console. The console printing capability is provided in the API ready for you to use; you supply the text to be printed. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Java programs are run (or interpreted) by another program called the Java VM. If you are familiar with Visual Basic or another interpreted language, this concept is probably familiar to you. Rather than running directly on the native operating system, the program is interpreted by the Java VM for the native operating system. This means that any computer system with the Java VM installed can run Java programs regardless of the computer system on which the applications were originally developed. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;For example, a Java program developed on a Personal Computer (PC) with the Windows NT operating system should run equally well without modification on a Sun Ultra workstation with the Solaris operating system, and vice versa. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;a href="http://java.sun.com/developer/onlineTraining/Programming/BasicJava1/index.html" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://java.sun.com/developer/onlineTraining/Programming/BasicJava1/index.html" target="_blank"&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;a href="http://java.sun.com/developer/onlineTraining/Programming/BasicJava1/index.html" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-8010921948807028345?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8010921948807028345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8010921948807028345'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/essentials-of-java-programming-language.html' title='Essentials of the Java Programming Language, Part 1'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-6784730601550590416</id><published>2007-07-07T11:35:00.000-07:00</published><updated>2008-12-17T13:40:56.147-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Java Au Naturel - Guide to Object Oriented Design - Java 2 with Swing</title><content type='html'>&lt;div align="center"&gt;by Dr. William C. Jones, Jr.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Software development with an object-oriented approach is the fundamental subject of this book. Java is a programming language used to create the animations you see when you browse the web. Of all the programming languages whose use is wide-spread, Java is the best for learning and doing object-oriented software development. That is why Java is used in this computer science book.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter One&lt;/strong&gt; explains the details of compiling and executing a program. It introduces much of the vocabulary you need. It establishes the framework for Java programs. And it gives an overview of the book with a look at other contexts where objects are used to perform useful tasks. This is a foretaste of what is to come, so you are not expected to fully understand at this point everything it mentions.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;strong&gt;Chapter Two&lt;/strong&gt; introduces a quite different software context. The software provided to you defines objects that control the basic physical actions of electronic equipment. Your job is to develop additional software that puts these basic actions together in combinations that perform tasks that the purchaser of the electronic equipment finds useful. You learn to use inheritance in this new context. Then you see how to have objects select between two courses of action depending on the circumstances. You also learn a simple method of diagramming the relationships among classes of objects. It is a widely used technique that is part of the Unified Modeling Language (UML). The UML is the industry standard for modeling software.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter Three&lt;/strong&gt; shows you how to teach objects to repeat a sequence of actions many times until a task is accomplished. This ability leads to more complex programs, so we discuss a reliable process for developing the logic to solve a problem and translate it into a Java program. This is the one chapter that does not introduce a new major context for developing software.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter Four&lt;/strong&gt; switches to the context of game-playing programs. In this context, you learn how to build objects "from scratch", specifying what they know as well as what they can do. By this time you can write interesting and useful programs using only the standard library of objects that comes with every Java installation. The game-playing software interacts with the outside world through the keyboard and screen rather than via signals to and from electronic equipment or to a drawing surface.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter Five&lt;/strong&gt; completes the presentation of basic language features you need for working with objects in your programs. At this point you can construct a complete string-based simulation of the electronic equipment you worked with in earlier chapters. A case study on networks lets you see the interaction of all of the object-oriented concepts and most of the language features applied in another context. The situation that the networking material describes is key to many important real-life problems. The analysis and solution of some of these problems can be quite complex; it is the subject of more advanced courses in computer science. But the discussion here is quite elementary.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter Six&lt;/strong&gt; expands your arsenal of basic types of values to include characters and numbers with decimal points (heretofore you only had the whole-number and true-false kinds of values). It also gives you a full set of methods for dealing with strings of characters. These language features are introduced in the context of software to schedule work orders at a car repair shop using the Model/View/Controller approach and several kinds of objects at once.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter Seven&lt;/strong&gt; gives you the tools you need to work with large masses of data. This is in the context of software to handle a database of people working for a particular company. A re-implementation of a simulation of the electronic-equipment software from Chapters Two and Three helps you solidify your understanding of the key concept of arrays.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The first seven chapters present the features of Java most frequently used in this book, together with a moderate number of examples. Many of the concepts, especially the various uses of arrays, cannot be learned well enough without a great deal of practice. The remaining eleven chapters give you that practice. Their primary purpose is to (a) improve your understanding of principles and techniques of software design and development, and (b) reinforce the concepts in the basic first seven chapters.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Each of the next twelve chapters presents a different software design and development situation. The emphasis is on techniques for creating quality software...&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.cs.ccsu.edu/%7Ejones/zipbook.zip" target="_blank"&gt;Read More/get this free ebook &lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-6784730601550590416?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/6784730601550590416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/6784730601550590416'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/java-au-naturel-guide-to-object.html' title='Java Au Naturel - Guide to Object Oriented Design - Java 2 with Swing'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-9144757579866498947</id><published>2007-07-07T11:23:00.000-07:00</published><updated>2008-12-17T13:40:56.148-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Introduction to Programming Using Java, Fifth Edition</title><content type='html'>&lt;div style="text-align: center;"&gt;By David J. Eck&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;p&gt;&lt;span class="start"&gt;&lt;big&gt;&lt;blockquote&gt;&lt;/blockquote&gt;I&lt;/big&gt;ntroduction to Programming Using Java&lt;/span&gt; is a free introductory computer programming textbook that uses Java as the language of instruction. It is suitable for use in an introductory programming course and for people who are trying to learn programming on their own. There are no prerequisites beyond a general familiarity with the ideas of computers and programs. There is enough material for a full year of college-level programming. Chapters 1 through 7 can be used as a textbook in a one-semester college-level course or in a year-long high school course. &lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;This version of the book covers "Java 5.0", and many of the examples use features that were not present in earlier versions of Java. (Sometimes, you will see this version of Java referred to as Java 1.5 instead of Java 5.0.) Note that Java applets appear throughout the pages of this book. Many of those applets will be non-functional in Web browsers that do not support Java 5.0.&lt;/p&gt;&lt;p&gt;The home web site for this book is http://math.hws.edu/javanotes/. The page at that address contains links for downloading a copy of the web site and for downloading a PDF version of the book.&lt;/p&gt;&lt;p&gt;In style, this is a textbook rather than a tutorial. That is, it concentrates on explaining concepts rather than giving step-by-step how-to-do-it guides. I have tried to use a conversational writing style that might be closer to classroom lecture than to a typical textbook. You'll find programming exercises at the end of most chapters, and you will find a detailed solution for each exercise, with the sort of discussion that I would give if I presented the solution in class. I &lt;b&gt;strongly&lt;/b&gt; advise that you read the exercise solutions if you want to get the most out of this book. This is certainly not a Java reference book, and it is not even close to a comprehensive survey of all the features of Java. It is &lt;b&gt;not&lt;/b&gt; written as a quick introduction to Java for people who already know another programming language. Instead, it is directed mainly towards people who are learning programming for the first time, and it is as much about general programming concepts as it is about Java in particular. I believe that &lt;i&gt;Introduction to Programming using Java&lt;/i&gt; is fully competitive with the conventionally published, printed programming textbooks that are available on the market. (Well, all right, I'll confess that I think it's better.)&lt;/p&gt;&lt;p&gt;There are several approaches to teaching Java. One approach uses graphical user interface programming from the very beginning. Some people believe that object oriented programming should also be emphasized from the very beginning. This is &lt;b&gt;not&lt;/b&gt; the approach that I take. The approach that I favor starts with the more basic building blocks of programming and builds from there. After an introductory chapter, I cover procedural programming in Chapters 2, 3, and 4. Object-oriented programming is introduced in Chapter 5. Chapters 6 covers the closely related topic of event-oriented programming and graphical user interfaces. Arrays are covered in Chapter 7. Chapter 8 marks a turning point in the book, moving beyond the fundamental ideas of programming to cover more advanced topics. Chapter 8 is mostly about writing robust and correct programs, but it also has a section on parallel processing and threads. Chapters 9 and 10 cover recursion and data structures, including the Java Collection Framework. Chapter 11 is about files and networking. Finally, Chapter 12 returns to the topic of graphical user interface programming to cover some of Java's more advanced capabilities.&lt;/p&gt;&lt;p&gt;Major changes have been made in the fifth edition. Perhaps the most significant change is the use of parameterized types in the chapter on generic programming. Parameterized types -- Java's version of templates -- were the most eagerly anticipated new feature in Java 5.0.&lt;/p&gt;&lt;p&gt;Other new features in Java 5.0 are also covered. Enumerated types are introduced, although they are not covered in their full complexity. The "for-each" loop is covered and is used extensively. Formatted output is also used extensively, and the &lt;span class="classname"&gt;Scanner&lt;/span&gt; class is covered (though not until Chapter 11). Static import is covered briefly, as are variable arity methods...........&lt;/p&gt;&lt;p&gt;&lt;a href="http://math.hws.edu/javanotes/" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-9144757579866498947?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/9144757579866498947'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/9144757579866498947'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/introduction-to-programming-using-java.html' title='Introduction to Programming Using Java, Fifth Edition'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-6950336598118125615</id><published>2007-07-02T15:29:00.000-07:00</published><updated>2008-12-17T13:40:56.148-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Introduction to Computer Science using Java</title><content type='html'>&lt;div align="center"&gt;By Bradley Kjell&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;These notes cover most of a beginning course in computer science using Java. They assume no background in programming. They are written to supplement a textbook or to be used alone. They provide discussion and simple examples of the important topics in programming. You can learn quite a lot about Java by going through these notes (and by running and playing with the programs, as discussed in chapter 7.) But to get a thorough grounding in the language you should also study a text book and write many programs on your own. Try to do one or two of the suggested programming exercises per chapter. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;For maximum benefit, go though these notes interactively, thinking about and answering the question at the bottom of each page. There are about 15 pages per chapter. If you spend about 3 minutes per page each chapter will take about 45 minutes; much more, if you copy and run some of the programs. If you are a beginning programmer, plan on spending more than a month with this. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;These notes assume that you have the Java Development Kit (JDK) version 1.1 or later from Sun (http://www.javasoft.com) and a simple text editor such as NotePad. For more about these notes check the frequently asked questions. &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.cs.iastate.edu/%7Ehonavar/JavaNotes/csjava.html" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-6950336598118125615?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/6950336598118125615'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/6950336598118125615'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/introduction-to-computer-science-using.html' title='Introduction to Computer Science using Java'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-1692924365154634650</id><published>2007-07-02T15:07:00.000-07:00</published><updated>2008-12-17T13:40:47.250-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Thinking in Java, 3rd ed. Revision 4.0</title><content type='html'>&lt;div align="center"&gt;By Bruce Eckel&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;The releases of the Java JDK are numbered 1.0, 1.1, 1.2, 1.3, and for this book, 1.4. Although these version numbers are still in the “ones,” the standard way to refer to any version of the language that is JDK 1.2 or greater is to call it “Java 2.” This indicates the very significant changes between “old Java”—which had many warts that I complained about in the first edition of this book—and this more modern and improved version of the language, which has far fewer warts and many additions and nice designs.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This book is written for Java 2, in particular JDK 1.4 (much of the code will not compile with earlier versions, and the build system will complain and stop if you try). I have the great luxury of getting rid of all the old stuff and writing to only the new, improved language, because the old information still exists in the earlier editions, on the Web, and on the CD ROM. Also, because anyone can freely download the JDK from java.sun.com, it means that by writing to JDK 1.4, I’m not imposing a financial hardship on anyone by forcing them to upgrade. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Previous versions of Java were slow in coming out for Linux (see &lt;a name="Index5"&gt;&lt;/a&gt;www.Linux.org), but that seems to have been fixed, and new versions are released for Linux at the same time as for other platforms—now even the Macintosh is starting to keep up with more recent versions of Java. Linux is a very important development in conjunction with Java, because it is quickly becoming the most important server platform out there—fast, reliable, robust, secure, well-maintained, and free, it’s a true revolution in the history of computing (I don’t think we’ve ever seen all of those features in any tool before). And Java has found a very important niche in server-side programming in the form of Servlets and JavaServer Pages (JSPs), technologies that are huge improvements over the traditional Common Gateway Interface (CGI) programming (these and related topics are covered in Thinking in Enterprise Java). &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://jamesthornton.com/eckel/TIJ-3rd-edition4.0/TIJ3.htm" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-1692924365154634650?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1692924365154634650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1692924365154634650'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/thinking-in-java-3rd-ed-revision-40.html' title='Thinking in Java, 3rd ed. Revision 4.0'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-3391152067889813302</id><published>2007-07-02T14:58:00.000-07:00</published><updated>2008-12-17T13:40:47.250-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>1000 Java Tips</title><content type='html'>&lt;div align="center"&gt;By Alexandre Patchine&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;One thousand Java Tips is 856 pages of A4 format of Java tips, advises and solutions from real daily Java experience. Quite often updated (330, 500, 850 and finally 1000 Java Tips), this e-book becomes more and more useful for Java developers with 2-6 years experience in this area. Questions are not from simple usual FAQs. They are especially good for those who look for Java job interview questions: both for those who hire and who look for Java jobs.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;1000 java tips e-book will help you to understand java much better and be well prepared for your java certification examination. This e-book is made of questions and answers.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;a href="http://www.javaa.com/100/high.zip" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://www.javaa.com/100/high.zip" target="_blank"&gt;&lt;/a&gt;&lt;/blockquote&gt;&lt;a href="http://www.javaa.com/100/high.zip" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-3391152067889813302?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3391152067889813302'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3391152067889813302'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/1000-java-tips.html' title='1000 Java Tips'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7188549421399363360</id><published>2007-07-02T14:39:00.000-07:00</published><updated>2008-12-17T13:40:47.250-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>JDiff - An HTML Report of API Differences</title><content type='html'>&lt;div align="justify"&gt;JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared. This is very useful for describing exactly what has changed between two releases of a product. Only the API (Application Programming Interface) of each version is compared. It does not compare what the source code does when executed.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;JDiff is a Javadoc doclet which emits an HTML report of all the packages, classes, methods, and so on, which are different (the "diff" part) when two Java APIs are compared. Great for reporting what has changed between two releases of your product.&lt;/div&gt;&lt;blockquote&gt;&lt;a href="http://nchc.dl.sourceforge.net/sourceforge/javadiff/jdiff-1.0.10.tar.gz" target="_blank"&gt;&lt;/a&gt;&lt;a href="http://nchc.dl.sourceforge.net/sourceforge/javadiff/jdiff-1.0.10.tar.gz" target="_blank"&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Download JDiff&lt;/a&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;a name="sampleoutput"&gt;&lt;/a&gt;&lt;a name="sampleoutput"&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Sample Output&lt;/strong&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Comparing J2SE1.4.2 and J2SE1.5.0b1. &lt;/strong&gt;Report (KB, gzip'd tar) &lt;a href="http://javadiff.sourceforge.net/jdiff/reports/j2se142_j2se150b1/j2se142_j2se150b1.tar.gz"&gt;Download&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Comparing J2SE1.4.0 and J2SE1.4.1&lt;/strong&gt;&lt;strong&gt;.&lt;/strong&gt; Report (13KB, gzip'd tar) &lt;a href="http://javadiff.sourceforge.net/jdiff/reports/j2se140_j2se141/j2se140_j2se141.tar.gz"&gt;Download&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Comparing J2SE1.4.0 and J2SE1.4.1&lt;/strong&gt; including documentation and statistics. Report (528KB, gzip'd tar) &lt;a href="http://javadiff.sourceforge.net/jdiff/reports/j2se140_j2se141_docs/j2se140_j2se141_docs.tar.gz"&gt;Download&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Comparing J2SE1.3.1 and J2SE1.4.&lt;/strong&gt; Report (456KB, gzip'd tar) &lt;a href="http://javadiff.sourceforge.net/jdiff/reports/j2se131_j2se14/j2se131_j2se14.tar.gz"&gt;Download&lt;/a&gt; &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Comparing J2SE1.3.1 and J2SE1.4&lt;/strong&gt; including documentation and statistics. Report (2.9MB, gzip'd tar) &lt;a href="http://javadiff.sourceforge.net/jdiff/reports/j2se131_j2se14_docs/j2se131_j2se14_docs.tar.gz"&gt;Download&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7188549421399363360?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7188549421399363360'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7188549421399363360'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/jdiff-html-report-of-api-differences.html' title='JDiff - An HTML Report of API Differences'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7943361845196443808</id><published>2007-07-02T14:21:00.000-07:00</published><updated>2008-12-17T13:40:47.250-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Java API Specifications</title><content type='html'>&lt;div align="justify"&gt;Here are the API specifications for key Java technologies and platforms, including Java 2 Platform, Standard Edition (J2SE), J2SE optional packages, Java 2 Platform, Enterprise Edition (J2EE), Java 2 Platform, Micro Edition (J2ME), XML, and others.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Below is a list of technologies that have API specifications: &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;strong&gt;Standard Edition&lt;/strong&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Java SE 6 &lt;/li&gt;&lt;li&gt;J2SE 1.5.0 &lt;/li&gt;&lt;li&gt;J2SE 1.4.2 &lt;/li&gt;&lt;li&gt;J2SE 1.3.1&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Enterprise Edition&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Java EE 5 &lt;/li&gt;&lt;li&gt;J2EE 1.4 &lt;/li&gt;&lt;li&gt;J2EE 1.3 &lt;/li&gt;&lt;li&gt;J2EE 1.2.1 &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Micro Edition&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;J2ME &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Javacard&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Javacard &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Java Web Services&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Java Web Services &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;XML&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;XML &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;strong&gt;Other Technologies&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Java 3D &lt;/li&gt;&lt;li&gt;Java Advanced Imaging (JAI) &lt;/li&gt;&lt;li&gt;JavaBeans Activation Framework &lt;/li&gt;&lt;li&gt;Java Communications &lt;/li&gt;&lt;li&gt;JavaMail &lt;/li&gt;&lt;li&gt;Java Media Framework (JMF) &lt;/li&gt;&lt;li&gt;Java Speech &lt;/li&gt;&lt;li&gt;Real-Time Specification for Java (RTSJ) &lt;/li&gt;&lt;li&gt;Other Technologies &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://java.sun.com/reference/api/index.html" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7943361845196443808?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7943361845196443808'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7943361845196443808'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/java-api-specifications.html' title='Java API Specifications'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-1143030193591369252</id><published>2007-07-02T13:51:00.000-07:00</published><updated>2008-12-17T13:40:47.251-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>The Java Course</title><content type='html'>&lt;div align="center"&gt;By by Allen B. Downey&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This edition of the eBook "Java Course" is based on the well-known book by Allen B. Downey, "How to Think Like a Computer Scientist". The main reason for rearranging the original material was to provide the book not only as a printable copy (i.e. as a PDF file) but also as an indexed and easy-to-navigate electronic book which is available both online and offline. In addition, we focused on enhancing the accessibility of the texts by improving the index, by splitting the chapters into managable (and readable) parts, and by adding lots of "see also" hints and cross links. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Finally, we decided to publish this eBook as an MS Windows HTML Help file offering the same navigation structure as the Web-based version. We hope that this service makes it easier for many beginners to learn how to program under Java.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;strong&gt;Contents&lt;/strong&gt;&lt;/div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;The way of the program&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;What is a programming language?&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;What is a program?&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;What is debugging?&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Formal and natural languages&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The first program&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Java Variables and types&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;More printingVariables&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Assignment&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Printing variables&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Keywords&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Operators&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Order of operations&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Operators for Strings&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Composition&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Java Methods&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Floating-point&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Converting from double to int&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Math methods&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Composition&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Adding new methods&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Classes and methods&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Programs with multiple methods&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Methods with results&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;div align="justify"&gt;&lt;strong&gt;Java Conditionals, graphics and recursion&lt;/strong&gt;&lt;/div&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;The modulus operator&lt;/li&gt;&lt;li&gt;Conditional execution&lt;/li&gt;&lt;li&gt;Alternative execution&lt;/li&gt;&lt;li&gt;Chained conditionals&lt;/li&gt;&lt;li&gt;Nested conditionals&lt;/li&gt;&lt;li&gt;The return statement&lt;/li&gt;&lt;li&gt;Type conversion&lt;/li&gt;&lt;li&gt;Slates and Graphics objects&lt;/li&gt;&lt;li&gt;Invoking methods on a Graphics object&lt;/li&gt;&lt;li&gt;Coordinates&lt;/li&gt;&lt;li&gt;A lame Mickey Mouse&lt;/li&gt;&lt;li&gt;Other drawing commands&lt;/li&gt;&lt;li&gt;Recursion&lt;/li&gt;&lt;li&gt;fractal Mickey Mouse&lt;/li&gt;&lt;li&gt;Stack diagrams for recursive methods&lt;/li&gt;&lt;li&gt;Convention and divine law&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Fruitful Java methods&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Return values&lt;/li&gt;&lt;li&gt;Program development&lt;/li&gt;&lt;li&gt;Composition&lt;/li&gt;&lt;li&gt;Overloading&lt;/li&gt;&lt;li&gt;Boolean expressions&lt;/li&gt;&lt;li&gt;Logical operators&lt;/li&gt;&lt;li&gt;Boolean methods&lt;/li&gt;&lt;li&gt;More recursion&lt;/li&gt;&lt;li&gt;Leap of faith&lt;/li&gt;&lt;li&gt;One more example&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Java Iteration&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Multiple assignment&lt;/li&gt;&lt;li&gt;Iteration&lt;/li&gt;&lt;li&gt;The while statement&lt;/li&gt;&lt;li&gt;Tables&lt;/li&gt;&lt;li&gt;Two-dimensional tables&lt;/li&gt;&lt;li&gt;Encapsulation and generalization&lt;/li&gt;&lt;li&gt;Methods&lt;/li&gt;&lt;li&gt;More encapsulation&lt;/li&gt;&lt;li&gt;Local variables&lt;/li&gt;&lt;li&gt;More generalization&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Java Strings and things&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Invoking methods on objects&lt;/li&gt;&lt;li&gt;LengthTraversal&lt;/li&gt;&lt;li&gt;Run-time errors&lt;/li&gt;&lt;li&gt;Reading documentation&lt;/li&gt;&lt;li&gt;The indexOf method&lt;/li&gt;&lt;li&gt;Looping and counting&lt;/li&gt;&lt;li&gt;Increment and decrement operators&lt;/li&gt;&lt;li&gt;Character arithmetic&lt;/li&gt;&lt;li&gt;Strings are immutable&lt;/li&gt;&lt;li&gt;Strings are incomparable&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Java Interesting objects&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;What's interesting?&lt;/li&gt;&lt;li&gt;Packages&lt;/li&gt;&lt;li&gt;Point objects&lt;/li&gt;&lt;li&gt;Instance variables&lt;/li&gt;&lt;li&gt;Objects as parameters&lt;/li&gt;&lt;li&gt;Rectangles&lt;/li&gt;&lt;li&gt;Objects as return types&lt;/li&gt;&lt;li&gt;Objects are mutableAliasingnull&lt;/li&gt;&lt;li&gt;Garbage collection&lt;/li&gt;&lt;li&gt;Objects and primitives&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Create your own Java objects&lt;/strong&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Class definitions and object types&lt;/li&gt;&lt;li&gt;Time&lt;/li&gt;&lt;li&gt;Constructors&lt;/li&gt;&lt;li&gt;More constructors&lt;/li&gt;&lt;li&gt;Creating a new object&lt;/li&gt;&lt;li&gt;Printing an object&lt;/li&gt;&lt;li&gt;Operations on objects&lt;/li&gt;&lt;li&gt;Pure functions&lt;/li&gt;&lt;li&gt;Modifiers&lt;/li&gt;&lt;li&gt;Fill-in methods&lt;/li&gt;&lt;li&gt;Which is best?&lt;/li&gt;&lt;li&gt;Incremental development vs. planning&lt;/li&gt;&lt;li&gt;Generalization&lt;/li&gt;&lt;li&gt;Algorithms&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;&lt;strong&gt;Arrays&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Arrays of Objects&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Objects of Arrays&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Object-oriented programming&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Linked lists&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Stacks&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Queues and Priority Queues&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Trees&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;HeapTable&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Appendix&lt;/strong&gt;&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Index&lt;/strong&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://www.vias.org/javacourse/bin/javacourse.zip" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-1143030193591369252?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1143030193591369252'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/1143030193591369252'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/java-course.html' title='The Java Course'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-5129068454778988959</id><published>2007-07-02T13:40:00.000-07:00</published><updated>2008-12-17T13:40:47.251-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>JDK 1.4 Tutorial</title><content type='html'>&lt;div align="justify"&gt;The JDK 1.4 release of the Java programming language from Sun Microsystems represents a substantial step in Java’s progress. Some of the new features are packages that have been in use for some time but have not yet been part of the core Java platform; other features are completely new.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Whatever their origin, these features extend Java’s capabilities, encapsulating complex functionality behind simple abstractions. Some of the features help integrate Java further into the host operating system, providing direct access to services that had previously only been accessible to native code.&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This book is decidedly code-centric. The central feature of each chapter is a program or set of programs that demonstrate the subject of the chapter within a complete, real-world program. Although each chapter starts with an overview of its topic and outlines the main classes and methods of the crucial packages, it does not duplicate information that can easily be found in the Java documentation.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Thus, this book should be considered a by-example companion to the comprehensive documentation. As you peruse the chapter descriptions that follow, you may notice that this book does not rigorously cover all topics. I consider a number of topics too broad to be covered in any useful way in a book of this kind; such topics generally need their own book. These include CORBA (including the new Portable Object Adapter (POA) Object Request Broker (ORB)), XML, the Java Cryptography Extension (JCE), and the Java Authentication and Authorization Service (JAAS).&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;At the time this book was being prepared, it did not seem possible to acquire a driver that supported enough JDBC 3.0 features to make testing possible. Rather than write from a position of ignorance, and include possibly spurious code listings, I decided not to include a chapter on this important topic.&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Sadly, the Generics (parameterized types) feature was, in the end, not included with JDK 1.4 as originally promised. This controversial addition to the language looks like it will be included in JDK 1.5 for sure, and you can download an early-access version of it from Sun. However, since it requires a change to the compiler, it can’t really be said to be a part of JDK 1.4 and so is not discussed in this book.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://java.sun.com/developer/Books/javaprogramming/jdk14/index.html" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-5129068454778988959?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5129068454778988959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5129068454778988959'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/jdk-14-tutorial.html' title='JDK 1.4 Tutorial'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-5288105858607621055</id><published>2007-07-02T13:22:00.000-07:00</published><updated>2008-12-17T13:40:47.251-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Sun Java Tutorials</title><content type='html'>&lt;div style="text-align: justify;"&gt;The Java Tutorials are practical guides for programmers who want to use the Java programming language to create applications. They include hundreds of complete, working examples, and dozens of lessons. Groups of related lessons are organized into "trails".&lt;br /&gt;&lt;ul class="BlueArrows"&gt;&lt;li&gt;Getting Started — An introduction to Java technology and lessons on installing Java development software and using it to create a simple program. &lt;/li&gt;&lt;li&gt;Learning the Java Language — Lessons describing the essential concepts and features of the Java Programming Language. &lt;/li&gt;&lt;li&gt;Essential Java Classes — Lessons on exceptions, basic input/output, concurrency, regular expressions, and the platform environment. &lt;/li&gt;&lt;li&gt;Collections — Lessons on using and extending the Java Collections Framework. &lt;/li&gt;&lt;li&gt;Swing — An introduction to the Swing GUI toolkit, with an overview of features and a visual catalog of components. See below for a more comprehensive tutorial on Swing. &lt;/li&gt;&lt;li&gt;Deployment — How to package applications and applets using JAR files, and deploy them using Java Web Start and Java Plug-in. &lt;/li&gt;&lt;li&gt;Preparation for Java Programming Language Certification — List of available training and tutorial resources. &lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Specialized Trails and Lessons &lt;/span&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;These trails and lessons are only available as web pages. &lt;p&gt;&lt;/p&gt;&lt;ul class="BlueArrows"&gt;&lt;li&gt;Custom Networking — An introduction to the Java platform's powerful networking features. &lt;/li&gt;&lt;li&gt;The Extension Mechanism — How to make custom APIs available to all applications running on the Java platform. &lt;/li&gt;&lt;li&gt;Full-Screen Exclusive Mode API — How to write applications that more fully utilize the user's graphics hardware. &lt;/li&gt;&lt;li&gt;Generics — An enhancement to the type system that supports operations on objects of various types while providing compile-time type safety. Note that this lesson is for advanced users. The Java Language trail contains a Generics lesson that is suitable for beginners. &lt;/li&gt;&lt;li&gt;Internationalization — An introduction to designing software so that it can be easily be adapted (localized) to various languages and regions. &lt;/li&gt;&lt;li&gt;JavaBeans — The Java platform's component technology. &lt;/li&gt;&lt;li&gt;JDBC Database Access — Introduces an API for connectivity between the Java applications and a wide range of databases and a data sources. &lt;/li&gt;&lt;li&gt;JMX— Java Management Extensions provides a standard way of managing resources such as applications, devices, and services. &lt;/li&gt;&lt;li&gt;JNDI— Java Naming and Directory Interface enables accessing the Naming and Directory Service such as DNS and LDAP. &lt;/li&gt;&lt;li&gt;RMI — The Remote Method Invocation API allows allows an object to invoke methods of an object running on another Java Virtual Machine. &lt;/li&gt;&lt;li&gt;Reflection — An API that represents ("reflects") the classes, interfaces, and objects in the current Java Virtual Machine. &lt;/li&gt;&lt;li&gt;Security — Java platform features that help protect applications from malicious software. &lt;/li&gt;&lt;li&gt;Sound — An API for playing sound data from applications. &lt;/li&gt;&lt;li&gt;2D Graphics — How to display and print 2D graphics in applications.&lt;/li&gt;&lt;/ul&gt;&lt;a href="http://java.sun.com/docs/books/tutorial/index.html" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-5288105858607621055?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5288105858607621055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5288105858607621055'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/07/sun-java-tutorials.html' title='Sun Java Tutorials'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-9011454115960031927</id><published>2007-06-25T14:13:00.000-07:00</published><updated>2008-12-17T13:40:47.251-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Free ebook - Java Object-oriented Program Design and Software Engineering</title><content type='html'>&lt;div align="center"&gt;By Dave Goddeau &lt;/div&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This free ebook entitiled "Java Object-oriented Program Design and Software Engineering" is enriched with 21 lecture notes i.e. &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Introduction,Administration, and Procedural Programming&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Classes&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The Java String data type&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Inheritance&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Interfaces&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java OOP Design and Design Process&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Error and Exception Handling&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Stream I/O&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Window Systems and Graphics&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Event-based Programming&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java GUI Components (Widgets)&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Threads&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Network Programming&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Software Development Cycle&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Misc. Topics in Java&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java on the Web - Java in the Browser: Applets&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Component Object Models&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java OOP &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Java Software Patterns&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Persistence, Databases, and Transactions, XML&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Internationalization and Localisation&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Moreover this free java ebook covers lecture videos . They are Introduction to Java, Classes, Inheritance &amp; Polymorphism, Interfaces and interfaces, Design &amp;amp; Design Process, Exceptions &amp; Error Handling, I/O, Window Systems &amp;amp; Graphics, Event-based programming, GUI (widgets), Threads, Network Programming, Software Design Cycle, OOP , Layouts, Packages, &amp; Jar files, Java on the web, Component Object Models, Overview of Software Patterns and Persistence &amp;amp; Databases &amp;amp; etc.&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://www.aduni.org/courses/java/index.php?view=cw" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-9011454115960031927?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/9011454115960031927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/9011454115960031927'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/06/free-ebook-java-object-oriented-program.html' title='Free ebook - Java Object-oriented Program Design and Software Engineering'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-5185383835155774421</id><published>2007-06-25T13:59:00.000-07:00</published><updated>2009-12-29T10:16:55.059-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Free java ebook - Introduction to Java OOA/OOD for Web Applications</title><content type='html'>&lt;div align="center"&gt;&lt;b&gt;By Alvin J. Alexander &lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;This ebook entitiled Introduction to Java OOA/OOD for Web Applications covers object oriented software development, java programming language basic to advanced, java Standard libraries and Java server side programming.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;b&gt;Contents&lt;/b&gt; &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;b&gt;Day 1: Object-Oriented Software Development&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Credits and Other Material &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Why OO? &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Benefits of object-oriented programming &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Symptoms of software development problems &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Root causes of project failure &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Software development best practices &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction to OO concepts &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Encapsulation &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Inheritance &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Polymorphism &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Abstraction with objects &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Message passing &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;UML summary &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Standard diagrams &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Object Oriented Software Development &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Why have a process? &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;The Rational Unified Process (RUP) &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Inception phase &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Elaboration &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Construction phase &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Transition &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;A sample process &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Domain modeling &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Use case modeling &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Robustness analysis &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Interaction modeling &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Collaboration and State Modeling &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Addressing Requirements &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Survey of Design Patterns &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Agile Methods &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;The Agile Alliance &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction to Extreme Programming &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Risk: The Basic Problem &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Four Variables &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;The Cost of Change &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Four Values &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Basic Principles &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Back to Basics &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;The Solution &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;OO Summary &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;OO Concepts &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;UML &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;&lt;b&gt;Day 2: The Java Programming Language&lt;/b&gt; &lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Chapter objectives &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Java design goals &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;What is Java? &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;How/where to get Java &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;First Steps with Java &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Java Commands and Utilities &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;A first application &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;main &lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Variables, constants, and keywords&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Primitive data types &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Literals &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Constants &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Reserved keywords &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Arrays &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Strings &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;String objects &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;StringBuffer class &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Comments and Javadoc &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Types of comments &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Javadoc comment tags &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;A comment example &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Notes on Usage &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Flow control and loops &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Objectives &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Statements and blocks &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;if-else &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;switch &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;while and do-while &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;for &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Labels &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;break &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;continue &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;return &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;No goto Statement &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Classes and objects &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Objectives &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;A Simple Class &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Fields &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Access Control and Inheritance &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Creating Objects &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Constructors &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Methods &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;this &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Overloading methods &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Overriding methods &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Static members &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Initialization Blocks &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Garbage collection and finalize &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;The toString() Method &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Native Methods &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Methods and parameters &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Methods &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Extending Classes &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Objectives &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;An extended class &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;A simple example &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;What protected really means &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Constructors in extended classes &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Overriding methods, hiding fields, and nested classes &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Marking methods and classes final &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;The object class &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Anonymous classes &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Abstract Classes and methods &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Cloning objects &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Extending classes: how and when &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Designing a class to be extended &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Interfaces &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Objectives &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;An example interface &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Single inheritance versus multiple inheritance &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Extending Interfaces &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Implementing Interfaces &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Using an Implementation &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Marker Interfaces &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;When to Use Interfaces &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Exceptions &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Objectives &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Creating exception types &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;throw &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;The throws clause &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;try, catch, and finally &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;When to use exceptions &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Packages &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Package Naming &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Package Access &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Package Contents &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Examples &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;&lt;b&gt;Day 3: Standard Libraries &amp;amp; Server-side Programming&lt;/b&gt; &lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ul&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Objectives &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;IO: Streams and readers &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Java networking &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Introduction &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Socket &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;ServerSocket &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;ServerSocket lifecycle &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;URL &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;URLConnection &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Threads &lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;  &lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Objectives&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Thread methods &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Thread references &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;JavaBeans &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Remote Method Invocation (RMI) &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Java Native Interface (JNI) &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Collections framework &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Lists &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Maps &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Collection Utilities &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Internationalization, localization, and formatting &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;HTTP protocol &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Request and Response &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Cookies &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Servlets and JSPs &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Objectives &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Introduction/Background &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Servlets &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Objectives &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Servlet basics &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;HelloWorldServlet &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Servlet lifecycle &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;HTTPServlet &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;HTTPServletRequest &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;HTTPServletResponse &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;JavaServer Pages &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;What is a JSP? &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;JSP engine/container: &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Translation time and request time &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Scriptlets &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Expressions &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Declarations &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Directives &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Implicit objects &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Exception handling &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Survey of other server-side Java technologies &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;XML &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;XSLT &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Enterprise Java Beans &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Java Messaging Service &lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Day 4: Databases, Best Practices, and Final Project &lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Databases and JDBC &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Getting things set up &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Connecting to the database &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Statements &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;getXXX methods &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Updating the database &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;PreparedStatements &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;A real method &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;JUnit &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Is Testing Important? &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Mars Orbiter &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;USS Yorktown &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Types of tests &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Unit Testing 101 &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Goals of unit testing? &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Unit Testing with JUnit &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;A sample JUnit session &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Recap &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Best practices &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Refactoring &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Final project &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;  &lt;/li&gt;&lt;li&gt;Bibliography &lt;/li&gt;&lt;/ul&gt;&lt;div align="justify"&gt;&lt;a href="http://www.devdaily.com/java/java_oo/java_oo.shtml" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-5185383835155774421?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5185383835155774421'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/5185383835155774421'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/06/free-java-ebook-introduction-to-java.html' title='Free java ebook - Introduction to Java OOA/OOD for Web Applications'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-8750705906022201063</id><published>2007-06-25T13:44:00.000-07:00</published><updated>2008-12-17T13:40:47.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Free java ebook - Programming Principles in Java: Architectures and Interfaces</title><content type='html'>&lt;div align="center"&gt;By David Schmidt, Kansas State University&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;This free ebook entitiled "Programming Principles in Java: Architectures and Interfaces" covers computers and programming, Simple Java Applications, Java Arithmetic and Variables, Java Input, Output, and State, Java Component Structure: Method and Class Building, Java Control Structure: Conditional Statements, Java Patterns of Repetition: Iteration and Recursion, Java Data Structure: Arrays, Java Programming to Interfaces, Java Graphical User Interfaces and Event-Driven Programming, Java Text and File Processing, etc. There was once a chapter on data structures, but it desperately needs rewriting. &lt;/div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 1: Computers and Programming 1&lt;br /&gt;&lt;/strong&gt;1.1 What is a Computer? 1&lt;br /&gt;1.2 Computer Programming 2&lt;br /&gt;1.3 Programs Are Objects 5&lt;br /&gt;1.4 Operating Systems and Windows 6&lt;br /&gt;1.5 Software Architecture 8&lt;br /&gt;1.5.1 Class Diagrams 9&lt;br /&gt;1.6 Summary 11&lt;br /&gt;1.7 Beyond the Basics 13&lt;br /&gt;1.7.1 Stepwise Refinement 14&lt;br /&gt;1.7.2 Object-Oriented Design 15&lt;br /&gt;1.7.3 Classes Generate Objects 17&lt;br /&gt;1.7.4 Frameworks and Inheritance 18&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 2: Simple Java Applications 20&lt;/strong&gt;&lt;br /&gt;2.1 An Application and its Architecture 20&lt;br /&gt;2.2 How to Build and Execute an Application 23&lt;br /&gt;2.2.1 Using an IDE 23&lt;br /&gt;2.2.2 Using the JDK 28&lt;br /&gt;2.3 How the Application Works 30&lt;br /&gt;2.3.1 An Execution Trace of the Application 33&lt;br /&gt;2.4 How One Object Constructs Another 35&lt;br /&gt;2.5 Repairing Compiler Error Messages 41&lt;br /&gt;2.6 Summary 43&lt;br /&gt;2.7 Programming Exercises 46&lt;br /&gt;2.8 Beyond the Basics 47&lt;br /&gt;2.8.1 Syntax 47&lt;br /&gt;2.8.2 Semantics 49&lt;br /&gt;2.8.3 Java Packages 51&lt;br /&gt;2.8.4 Java API 51&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 3: Arithmetic and Variables 56&lt;/strong&gt;&lt;br /&gt;3.1 Integer Arithmetic 57&lt;br /&gt;3.2 Named Quantities: Variables 59&lt;br /&gt;3.2.1 Variables Can Vary: Assignments 63&lt;br /&gt;3.3 Arithmetic with Fractions: Doubles 68&lt;br /&gt;3.4 Booleans 72&lt;br /&gt;3.5 Operator Precedences 74&lt;br /&gt;3.6 Strings, Characters, and their Operations 75&lt;br /&gt;3.7 Data-Type Checking 80&lt;br /&gt;3.8 Input via Program Arguments 83&lt;br /&gt;3.8.1 Converting between Strings and Numbers and Formatting 86&lt;br /&gt;3.8.2 Temperature Conversion with Input 88&lt;br /&gt;3.9 Diagnosing Errors in Expressions and Variables 92&lt;br /&gt;3.10 Java Keywords and Identifiers 95&lt;br /&gt;3.11 Summary 95&lt;br /&gt;3.12 Programming Projects 97&lt;br /&gt;3.13 Beyond the Basics 102&lt;br /&gt;3.13.1 Longs, Bytes, and Floats 102&lt;br /&gt;3.13.2 Helper Methods for Mathematics 103&lt;br /&gt;3.13.3 Syntax and Semantics of Expressions and Variables 105&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 4: Input, Output, and State 107&lt;br /&gt;&lt;/strong&gt;4.1 Interactive Input 108&lt;br /&gt;4.1.1 Dialog Output 112&lt;br /&gt;4.2 Graphical Output 113&lt;br /&gt;4.2.1 Panels and their Frames 113&lt;br /&gt;4.2.2 Customizing Panels with Inheritance 115&lt;br /&gt;4.3 Format and Methods for Painting 122&lt;br /&gt;4.3.1 Constructor Methods and this Object 124&lt;br /&gt;4.4 Objects with State: Field Variables 130&lt;br /&gt;4.4.1 Using Fields to Remember Inputs and Answers 135&lt;br /&gt;4.4.2 Scope of Variables and Fields 140&lt;br /&gt;4.5 Testing a Program that Uses Input 142&lt;br /&gt;4.6 Summary 144&lt;br /&gt;4.7 Programming Projects 147&lt;br /&gt;4.8 Beyond the Basics 151&lt;br /&gt;4.8.1 Scope of Variables and Fields 151&lt;br /&gt;4.8.2 Partial API for JFrame 152&lt;br /&gt;4.8.3 Methods for GregorianCalendar 152&lt;br /&gt;4.8.4 Colors for Graphics 152&lt;br /&gt;5.8.5 Applets 153&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 5: Component Structure: Method and Class Building 157&lt;br /&gt;&lt;/strong&gt;5.1 Methods 158&lt;br /&gt;5.2 Public Methods 159&lt;br /&gt;5.2.1 Basic Public Methods 160&lt;br /&gt;5.2.2 Constructor Methods 164&lt;br /&gt;5.3 Parameters to Methods 168&lt;br /&gt;5.3.1 Forms of Parameters 173&lt;br /&gt;5.4 Case Study: General Purpose Output Frame 179&lt;br /&gt;5.5 Results from Methods: Functions 186&lt;br /&gt;5.6 Private Methods 193&lt;br /&gt;5.7 Summary 200&lt;br /&gt;5.8 Programming Projects 203&lt;br /&gt;5.9 Beyond the Basics 212&lt;br /&gt;5.9.1 Naming Variables, Methods, and Classes 212&lt;br /&gt;5.9.2 Generating Web Documentation with javadoc 213&lt;br /&gt;5.9.3 Static Methods 217&lt;br /&gt;5.9.4 How the Java Compiler Checks Typing of Methods 220&lt;br /&gt;5.9.5 Formal Description of Methods 221&lt;br /&gt;5.9.6 Revised Syntax and Semantics of Classes 227&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 6: Control Structure: Conditional Statements 229&lt;br /&gt;&lt;/strong&gt;6.1 Control Flow and Control Structure 230&lt;br /&gt;6.2 Condtional Control Structure 231&lt;br /&gt;6.2.1 Nested Conditional Statements 235&lt;br /&gt;6.2.2 Syntax Problems with Conditionals 240&lt;br /&gt;6.3 Relational Operations 241&lt;br /&gt;6.4 Uses of Conditionals 245&lt;br /&gt;6.5 Altering Control Flow 249&lt;br /&gt;6.5.1 Exceptions 250&lt;br /&gt;6.5.2 System Exit 251&lt;br /&gt;6.5.3 Premature Method Returns 252&lt;br /&gt;6.6 The Switch Statement 252&lt;br /&gt;6.7 Model and Controller Components 255&lt;br /&gt;6.7.1 Designing an Application with a Model-View-Controller Architecture 257&lt;br /&gt;6.8 Case Study: Bank Accounts Manager 259&lt;br /&gt;6.8.1 Collecting Use-Case Behaviors 259&lt;br /&gt;6.8.2 Selecting a Software Architecture 261&lt;br /&gt;6.8.3 Specifying the Model 261&lt;br /&gt;6.8.4 Writing and Testing the Model 261&lt;br /&gt;6.8.5 Specifying the View Components 265&lt;br /&gt;6.8.6 A Second Look at the Software Architecture 265&lt;br /&gt;6.8.7 Writing the View Classes 265&lt;br /&gt;6.8.8 Controller Construction and Testing 272&lt;br /&gt;6.8.9 Testing the Assembled Application 276&lt;br /&gt;6.8.10 Multiple Objects from the Same Class 277&lt;br /&gt;6.9 More about Testing Methods and Classes 283&lt;br /&gt;6.9.1 Testing Individual Methods 283&lt;br /&gt;6.9.2 Testing Methods and Attributes Together 283&lt;br /&gt;6.9.3 Testing a Suite of Methods 284&lt;br /&gt;6.9.4 Execution Traces 285&lt;br /&gt;6.10 Summary 286&lt;br /&gt;6.11 Programming Projects 290&lt;br /&gt;6.12 Beyond the Basics 295&lt;br /&gt;6.12.1 The Logic of the Conditional Statement 295&lt;br /&gt;6.12.2 Interface Specifications and Integration 300&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 7: Patterns of Repetition: Iteration and Recursion 304&lt;br /&gt;&lt;/strong&gt;7.1 Repetition 305&lt;br /&gt;7.2 While Loops 306&lt;br /&gt;7.3 Definite Iteration 308&lt;br /&gt;7.3.1 Definite-Iteration Example: Painting a Bulls-Eye 153&lt;br /&gt;7.4 Nontermination 319&lt;br /&gt;7.5 Indefinite Iteration: Input Processing 321&lt;br /&gt;7.5.1 Indefinite Iteration: Searching 324&lt;br /&gt;7.6 For-Statements 328&lt;br /&gt;7.7 Nested Loops 329&lt;br /&gt;7.8 Writing and Testing Loops 335&lt;br /&gt;7.9 Case Study: Bouncing Ball Animation 338&lt;br /&gt;7.10 Recursion 347&lt;br /&gt;7.10.1 An Execution Trace of Recursion 352&lt;br /&gt;7.11 Counting with Recursion 356&lt;br /&gt;7.11.1 Loops and Recursions 359&lt;br /&gt;7.11.2 Counting with Multiple Recursions 360&lt;br /&gt;7.12 Drawing Recursive Pictures 363&lt;br /&gt;7.13 Summary 366&lt;br /&gt;7.14 Programming Projects 370&lt;br /&gt;7.15 Beyond the Basics 378&lt;br /&gt;7.15.1 Loop Termination with break 379&lt;br /&gt;7.15.2 The do-while Loop 380&lt;br /&gt;7.15.3 Loop Invariants 381&lt;br /&gt;7.15.4 Loop Termination 386&lt;br /&gt;7.12.5 More Applets 387&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 8: Data Structure: Arrays 391&lt;br /&gt;&lt;/strong&gt;8.1 Why We Need Arrays 392&lt;br /&gt;8.2 Collecting Input Data within Arrays 396&lt;br /&gt;8.3 Translation Tables 399&lt;br /&gt;8.4 Internal Structure of One-Dimensional Arrays 402&lt;br /&gt;8.5 Arrays of Objects 406&lt;br /&gt;8.6 Case Study: Databases 3409&lt;br /&gt;8.6.1 Behaviors 412&lt;br /&gt;8.6.2 Architecture 413&lt;br /&gt;8.6.3 Specifications 413&lt;br /&gt;8.6.4 Implementation 415&lt;br /&gt;8.6.5 Forms of Records and Keys 420&lt;br /&gt;8.7 Case Study: Playing Pieces for Card Games 424&lt;br /&gt;8.8 Two-Dimensional Arrays 431&lt;br /&gt;8.9 Internal Structure of Two-Dimensional Arrays 434&lt;br /&gt;8.10 Case Study: Slide-Puzzle Game 437&lt;br /&gt;8.11 Testing Programs with Arrays 446&lt;br /&gt;8.12 Summary 448&lt;br /&gt;8.13 Programming Projects 450&lt;br /&gt;8.14 Beyond the Basics 458&lt;br /&gt;8.14.1 Sorting 458&lt;br /&gt;8.14.2 Searching 462&lt;br /&gt;8.14.3 Time-Complexity Measures 465&lt;br /&gt;8.14.4 Divide-and-Conquer Algorithms 469&lt;br /&gt;8.14.5 Formal Description of Arrays 477&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 9: Programming to Interfaces 483&lt;br /&gt;&lt;/strong&gt;9.1 Why We Need Specifications 484&lt;br /&gt;9.2 Java Interfaces 485&lt;br /&gt;9.2.1 Case Study: Databases 493&lt;br /&gt;9.3 Inheritance 497&lt;br /&gt;9.4 Reference Types, Subtypes, and instanceof 500&lt;br /&gt;9.5 Abstract Classes 508&lt;br /&gt;9.5.1 Case Study: Card Players 509&lt;br /&gt;9.5.2 Class Hierarchies 516&lt;br /&gt;9.5.3 Frameworks and Abstract Classes 519&lt;br /&gt;9.6 Subtypes versus Subclasses 519&lt;br /&gt;9.7 class Object and Wrappers 520&lt;br /&gt;9.8 Packages 522&lt;br /&gt;9.8.1 Generating Package APIs with javadoc 524&lt;br /&gt;9.9 Case Study: An Adventure Game 526&lt;br /&gt;9.9.1 Interfaces and Inheritance Together 532&lt;br /&gt;9.9.2 Inheritance of Interfaces 539&lt;br /&gt;9.10 Summary 539&lt;br /&gt;9.11 Programming Projects 543&lt;br /&gt;9.12 Beyond the Basics 544&lt;br /&gt;9.12.1 Subclasses and Method Overriding 545&lt;br /&gt;9.12.2 Semantics of Overriding 550&lt;br /&gt;9.12.3 final components 555&lt;br /&gt;9.12.4 Method Overloading 556&lt;br /&gt;9.12.5 Semantics of Overloading 561&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 10: Graphical User Interfaces and Event-Driven Programming 564&lt;br /&gt;&lt;/strong&gt;10.1 Model-View-Controller Revisited 565&lt;br /&gt;10.2 Events 567&lt;br /&gt;10.3 The AWT/Swing Class Hierarchy 568&lt;br /&gt;10.4 Simple Windows: Labels and Buttons 571&lt;br /&gt;10.5 Handling an Event 579&lt;br /&gt;10.5.1 A View as Action Listener 579&lt;br /&gt;10.5.2 A Separate Controller 583&lt;br /&gt;10.5.3 A Button-Controller 583&lt;br /&gt;10.6 Richer Layout: Panels and Borders 590&lt;br /&gt;10.6.1 An Animation in a Panel 594&lt;br /&gt;10.7 Grid Layout 600&lt;br /&gt;10.8 Scrolling Lists 604&lt;br /&gt;10.9 Text Fields 610&lt;br /&gt;10.10 Error Reporting with Dialogs 617&lt;br /&gt;10.11 TextAreas and Menus 620&lt;br /&gt;10.11.1 Case Study: Text Editor 623&lt;br /&gt;10.12 Event-Driven Programming with Observers 632&lt;br /&gt;10.12.1 Observers and the MVC-Architecture 635&lt;br /&gt;10.13 Summary 636&lt;br /&gt;10.14 Programming Projects 641&lt;br /&gt;10.15 Beyond the Basics 645&lt;br /&gt;10.15.1 Applets 646&lt;br /&gt;10.15.2 Tables and Spreadsheets 649&lt;br /&gt;10.15.3 Handling Mouse Clicks and Drags 655&lt;br /&gt;10.15.4 Threads of Execution 664&lt;br /&gt;10.15.5 GUI Design and Use-Cases 669&lt;br /&gt;10.15.6 Summary of Methods for Graphical Components 671&lt;br /&gt;&lt;/div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;blockquote&gt;&lt;strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/strong&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Chapter 11: Text and File Processing 680&lt;br /&gt;&lt;/strong&gt;11.1 Strings are Immutable Objects 681&lt;br /&gt;11.1.1 String Tokenizers 683&lt;br /&gt;11.2 Sequential Files 686&lt;br /&gt;11.2.1 Output to Sequential Files 688&lt;br /&gt;11.2.2 Input from Sequential Files 690&lt;br /&gt;11.3 Sequential Input from the Command Window 692&lt;br /&gt;11.4 Case Study: Payroll Processing 695&lt;br /&gt;11.5 Exceptions and Exception Handlers 700&lt;br /&gt;11.5.1 Restarting a Method with an Exception Handler 702&lt;br /&gt;11.5.2 Interactive Input with Exception Handlers 705&lt;br /&gt;11.6 Exceptions Are Objects 706&lt;br /&gt;11.6.1 Programmer-Generated Exceptions 713&lt;br /&gt;11.7 Summary 714&lt;br /&gt;11.8 Programming Projects 716&lt;br /&gt;11.9 Beyond the Basics 719&lt;br /&gt;11.9.1 Character-by-Character File Processing 719&lt;br /&gt;11.9.2 Binary Files and Files of Objects 720&lt;br /&gt;11.9.3 A Taxonomy of File Classes 721&lt;br /&gt;11.9.4 A GUI for File Selection 730&lt;br /&gt;&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Appendix I:Java Language Definition 724&lt;br /&gt;Appendix II:Types and Subtypes 741&lt;br /&gt;Appendix III:Class Diagrams 744&lt;br /&gt;Index 748 &lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://people.cis.ksu.edu/%7Eschmidt/CIS200/" target="_blank"&gt;Read More/get this free ebook&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-8750705906022201063?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8750705906022201063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/8750705906022201063'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/06/free-java-ebook-programming-principles.html' title='Free java ebook - Programming Principles in Java: Architectures and Interfaces'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-3841958072370984687</id><published>2007-06-25T13:36:00.000-07:00</published><updated>2008-12-17T13:40:47.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Interactive Programming In Java Ebook</title><content type='html'>&lt;div align="center"&gt;By Lynn Andrea Stein&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;How to Use This EBook&lt;/strong&gt;&lt;br /&gt;Interactive Programming is designed for use by students who have no prior programming experience (typically college freshmen). It ultimately teaches both the fundamentals of computer programming and the details of the Java programming language.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The book is divided into five parts. The first briefly overviews the idea of programs built out of communities of interacting entities. The second part introduces the mechanics of Java programming, from things, types, and names to objects and classes. It is essential to the book and is intended to be read in the order presented. Part three elaborates on these ideas, introducing threads as first-class citizens of the programming world and exploring inheritance, exception-handling, and design. Part four emphasizes a variety of issues in the design of an individual entity. It is not necessary to read this section in any particular order, and certain chapters can be omitted entirely without serious detriment. Part five similarly surveys a variety of interrelated topics, in this case concerning the ways in which communities are coupled together, and its chapters, too, can be taken out of order or omitted.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The five parts, taken together, constitute a single-semester introductory course in computer programming. In such a course, some of the supplementary material (described below) will not be used. For a one-quarter course, part five and selected earlier chapters should probably be omitted. Alternately, the complete book can be spread over two quarters or over a full year, augmented as necessary from the supplementary materials.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Part By Part&lt;/strong&gt;&lt;br /&gt;Part 1 is brief and introductory, providing an overview of the approach to computer programming taken. Part 2 begins with the basic syntax and semantics of programming constructs. At the same time, from the earliest examples, students are introduced to concurrent, interactive, embedded programs. For example, interfaces are introduced early as they specify a contract between two parts of a computer system. By the middle of part 3, students have learned to write what might in other contexts be called "stand-alone" programs -- complete programs including class definitions and a main routine. They have also learned that every program is a part of a system of interacting entities -- including the user, libraries and other software, hardware, etc. -- and that no program truly stands alone.&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The remainder of the book addresses issues and alternatives that arise in the design of software communities. Part 4 focuses on ways to extend the basic entities that students build. The notion of a dispatching control loop provokes an exploration of procedural abstraction, in which separate routines handle each possible case. This in turn leads to a de-emphasis of the central control loop and a shift to event-driven programming, in which individual "handler" procedures take center stage. In a typical event system, dispatch may be provided implicitly, i.e., by underlying hardware or software. A third model -- smart objects that handle their own behavior -- is also explored. Java's AWT is introduced as both a tool and an example of an event-based system. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Part 5 addresses the issue of how entities are tied together. A recurring theme -- throughout the book, but emphasized here -- concerns interface design. This refers both to the Java construct -- a signature specification, introduced in chapter 4 -- and to the more general concept, including human (user) interface design. In addition to learning how to specify an interface, students learn what the interface does not specify. In other chapters, students learn about streams, messages, and shared memory, about connecting to objects in the same name space and to those running under different processes or on different machines, and about how to communicate with them. They also learn the basic ideas of safety and liveness, that shared mutable state can lead to program failures, and some simple mechanisms for coping with them. They do not, of course, learn to build arbitrarily complex programs that avoid deadlock under all circumstances. This topic will be visited later in the computer science curriculum. Instead, they learn to recognize the general preconditions for the possibility of safety failures and the kinds of solutions that might be possible. The goal, throughout this course, is to give students the basic conceptual vocabulary that will allow them to ask the right questions as they meet more complex issues later in their education.&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;Interactive Programming ends with an overview of various patterns of large-scale systems architecture, reviewing tradeoffs among various approaches and providing a common language for software architects. The last chapter examines conventional patterns by which complex concurrent and distributed systems are constructed. The emphasis is on designing and understanding a variety of interactive communities. This chapter also leads naturally into final projects. In courses taught using this curriculum and preliminary drafts of the book, typical final projects have included client/server chat programs and networked video games. Not what you would generally expect from first semester freshmen!&lt;/div&gt;&lt;div align="justify"&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;a href="http://www.cs101.org/ipij/" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-3841958072370984687?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3841958072370984687'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/3841958072370984687'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/06/interactive-programming-in-java-ebook.html' title='Interactive Programming In Java Ebook'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7812955651943727362</id><published>2007-06-25T13:30:00.000-07:00</published><updated>2008-12-17T13:40:47.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Ebooks - Sun Certified Java Programmer Pre-Exam Essentials</title><content type='html'>&lt;div align="center"&gt;By Dylan Walsh&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;The purpose of this document is to provide a basis for revising for the Sun Certified Programmer examinations, not to teach the Java language or the topics required for the exam. It is designed to collect all the essential information you need to retain, in one place, and is designed for someone who has already finished their own study and is about to take the exam. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This version is written according to the objectives of the "Sun Certified Programmer For Java™ 2 Platform 1.4" exam. For those taking the 1.2 exam, the objectives no longer required for 1.4 have been retained towards the end of this document. The sections have "1.2 Exam Only" at the start of their titles. I would recommend doing the 1.4 exam instead, as it is more current and the only major new subject is assertions. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Aside: There is no 1.3 exam, as such. The 1.1 exam exam was replaced by a Java2 exam, which at the time seemed like it would suffice for all Java2 releases. However in September 2002 Sun released seperate 1.2 and 1.4 exams. The 1.2 syllabus is for 1.2 and 1.3. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Thank you to everyone who has emailed me with compliments and/or corrections for previous versions of this document, it is appreciated. On the other hand, if you have questions on the exam or Java, I am afraid I do not have time to answer all of these, so please try either the certification discussion groups on the web, or the Java newsgroups. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;Having obtained my certification, I have neither time or reason to maintain this document in the future and keep it current with changes in the exam. Rather than let it stagnate, I have decided to release it as a resource to the Java certification community under the Free Documentation License. This will allow others to change, correct, expand and update it. The accompanying XML file has more information on how to do this. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;If you are just starting to prepare for the exam, then I recommend the following steps:&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;ol&gt;&lt;li&gt;&lt;div align="justify"&gt;Buy a good certification book, read the chapters, and do all of the example questions and exercises. This is advisable even if you are already experienced in Java. According to Barry Boones book, Java instructors have failed this exam. Apparently, many people have to take the exam more than once. For experienced programmers, there are things which are examined that you may not encounter in everyday programming, or would lookup in the Javadocs as needed. On the other hand, there are many things experienced developers ought to know but often do not. This exam is regarded as being more difficult than most other certifications. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;The books I used to study for the exam were versions of the Roberts, Heller et al book. and the book by Barry Boone. You can find more details on the latest versions of these on the web, and there are more recent books which may be worthwhile. You don't need to buy both, but I found that a good way to study was to do one chapter from each every evening. I did chapters on different topics, which made it more interesting and meant that I revised the same topic later in the other book. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;There are courses available, which I cannot comment on, as I studied for the exam without sitting any courses. While these may be worthwhile, I suggest you still follow step 1, as they may be general Java courses and not cover some of the specific issues which come up in the exam. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;When you are finished studying, do any and all mock exams available. In addition to those which come with the books, there many available online and you can find lists of links to them on some of the websites below. Do not sit the exam until you are getting marks comfortably above the pass level. I suggest studying until you get atleast 10% more in practice exams than the minimum required for the real exam. A habit you may find useful is when you are marking yourself, for every question you get wrong, hit yourself over the head with a baseball bat... Just kidding, for every question you get wrong, find out what the right answer is, and why, and write that down in a notebook for future revision. Make sure you do the free Sun sample questions as they most accurately reflect the exam. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Read this document again the night, or morning, before you take the exam.&lt;/div&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p align="justify"&gt;&lt;a href="http://www.jchq.net/essentials/full.htm" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7812955651943727362?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7812955651943727362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7812955651943727362'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/06/sun-certified-java-programmer-pre-exam.html' title='Ebooks - Sun Certified Java Programmer Pre-Exam Essentials'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry><entry><id>tag:blogger.com,1999:blog-6530670814895723150.post-7058739633575059670</id><published>2007-06-25T00:46:00.000-07:00</published><updated>2008-12-17T13:40:47.252-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Core Java'/><title type='text'>Introduction to Programming in Java - ebook</title><content type='html'>&lt;div align="center"&gt;By Robert Sedgewick and Kevin Wayne&lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;This booksite supplements the forthcoming textbook Introduction to Computer Science in Java by Robert Sedgewick and Kevin Wayne. &lt;/div&gt;&lt;blockquote&gt;&lt;/blockquote&gt;&lt;div align="justify"&gt;&lt;strong&gt;Textbook.&lt;/strong&gt;&lt;/div&gt;&lt;div align="justify"&gt;Our book is an interdisciplinary approach to the traditional CS1 curriculum. We teach all of the classic elements of programming, using an "objects-in-the-middle" approach that emphasizes data abstraction. The book is organized around four areas of computer science: programming, machine architecture, theory, and systems. &lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Chapter 1: Elements of Programming introduces variables, assignment statements, built-in types of data, conditionals and loops, arrays, and input/output, including graphics and sound. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Chapter 2: Functions introduces modular programming. We stress the fundamental idea of dividing a program into components that can be independently debugged, maintained, and reused. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Chapter 3: Object Oriented Programming introduces data abstraction. We emphasize the concept of a data type and its implementation using Java's class mechanism. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Chapter 4: Algorithms and Data Structures introduces classical algorithms for sorting and searching and fundamental data structures, including stacks, queues, and symbol tables. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Chapter 5: A Computing Machine introduces an imaginary machine that is similar to real computers. We specify the machine in full detail and consider machine-language programs. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Chapter 6: Circuits introduces circuits and logical design, culminating in a description of how a machine might be built from the ground up. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Chapter 7: Theory of Computation introduces the scientific discipline concerned with understanding (efficient) computational phenomena, whether it be man-made, in nature, or imaginary. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Chapter 8: Systems introduces the basic components of computer systems that support programming: compilers, operating systems, networks, and application systems. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Chapter 9: Scientific Computation introduces some of the most important algorithms that play crucial roles in our computational infrastructure, including numerical integration, matrix computation, data analysis, and Monte Carlo simulation. &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;A key feature of the book is the manner in which we motivate each programming concept that we address by examining its impact on specific applications, taken from fields ranging from materials science to genomics to astrophysics to internet commerce. This approach highlights the essential idea that mathematics, science, engineering, and computing are intertwined in the modern world. It also both reinforces and takes advantage of students' preparation in high-school math and science as they learn programming.&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://www.cs.princeton.edu/introcs/cs/" target="_blank"&gt;Read More/get this free ebook&lt;br /&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6530670814895723150-7058739633575059670?l=javaebooks.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7058739633575059670'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6530670814895723150/posts/default/7058739633575059670'/><link rel='alternate' type='text/html' href='http://javaebooks.blogspot.com/2007/06/introduction-to-programming-in-java.html' title='Introduction to Programming in Java - ebook'/><author><name>Administrator</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author></entry></feed>
