Showing posts with label checklist java. Show all posts
Showing posts with label checklist java. Show all posts

Competencies Checklist for Jnr Java Programmer

Declarations, Initialization and Scoping
- Develop code that declares abstract and all forms of nested classes.
- Develop code that declares an interface implements or extends one or more interfaces.
- Develop code that declares, initializes, and uses primitives, arrays, enums, and objects as static, instance, and local variables.
- Able to determine if a method is correctly overriding or overloading another method, and identify legal return values for the method.
- Given a set of classes and superclasses, develop constructors for one or more of the classes.
- Able to 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, able to write code to instantiate the class.

Flow Control
- Develop code that implements an if or switch statement.
- Develop code that implements all forms of loops and iterators, including the use of for, for-each, do, while, labels, break, and continue.
- 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 which 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.

Working with API content
- Writting code to navigate file systems, reading from files, writing to files, or interacting with the user, develop the correct solution using java.io: BufferedReader, BufferedWriter, File, FileReader, FileWriter, PrintWriter, and Console.
- Develop code that uses the primitive wrapper classes (such as Boolean, Character, Double, Integer, etc.), and/or autoboxing & unboxing. Discuss the differences between the String, StringBuilder, and StringBuffer classes.
- Use standard J2SE APIs in the java.text package to correctly format or parse dates, numbers, and currency values for a specific locale.
- Write code that uses standard J2SE APIs in the java.util and java.util.regex packages to format or parse strings or streams.

Working on 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.
- Write code that makes appropriate use of object locking to protect static or instance variables from concurrent access problems.


Good object oriented concept
- Develop code that implements tight encapsulation, loose coupling, and high cohesion in classes.
- 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.
- Develop code that declares and/or invokes overridden or overloaded methods and code that declares and/or invokes superclass, or overloaded constructors.
- Develop code that implements "is-a" and/or "has-a" relationships

Working on Collections / Generics
- Able to 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, List, and Map interfaces and implementation classes.
- Able to recognize the limitations of the non-generic Collections API and how to refactor code to use the generic versions. Write code that uses the NavigableSet and NavigableMap interfaces.
- Develop code that makes proper use of type parameters in class/interface declarations, instance variables, method arguments, and return types
- Use 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 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.

Competencies Checklist for Snr Java Web Developer

Working on Servlet Technology
- Working on various HTTP Methods (such as GET, POST, HEAD, and so on), list triggers that might cause a Client 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.
- Able to work on entire 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.

Structure and deploy web application
- 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, (d) JAR files, and (e) Java class files; and describe how to protect resource files from HTTP access.
- Construct the correct structure of the deployment descriptor.
- Understand WAR file and its contents.

Working on Web Container Model
- Write servlet code to access initialization parameters and create the deployment descriptor elements for declaring initialization parameters.
Write servlet code to add, retrieve, and remove attributes; identify the proper scope for an attribute; and identify multi-threading issues associated with each scope.
- Write and configure a filter; create a request or response 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
- 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.

Session Management
- Write servlet code to store objects into a session object and retrieve objects from a session object.
- Understand APIs used to access the session object, when the session object was created, and the mechanisms used to destroy the session object.
- 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.


Working on Web Application Security
- Based on the servlet specification, compare and contrast the following security mechanisms: (a) authentication, (b) authorization, (c) data integrity, and (d) confidentiality.
- Declare a security constraint, a Web resource, the transport guarantee, the login configuration, and a security role.
- Working on authentication types (BASIC, DIGEST, FORM, and CLIENT-CERT)


Working on JSP
- 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.
- Understand 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.
- 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. 6.7 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).

Building JSP Pages Using the Expression Language
- 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.
- Write EL code that uses the following operators: property access (the . operator), collection access (the [] operator).

Building JSP Pages Using Standard Actions
- Create a code snippet using the following standard actions: jsp:useBean (with attributes: 'id', 'scope', 'type', and 'class'), jsp:getProperty, jsp:setProperty (with all attribute combinations), and jsp:attribute.
- Create a code snippet using the following standard actions: jsp:include, jsp:forward, and jsp:param.

Building JSP Pages Using Tag Libraries
- Create the 'taglib' directive for a JSP page.
- Create the custom tag structure in a JSP page to support that goal.
- Use an appropriate JSP Standard Tag Library (JSTL v1.1) tag from the "core" tag library.

Building a Custom Tag Library
- 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.
- 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.

Understand Java EE Patterns
- 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.

Our past activities

K365Labs on Facebook