The largest Interview Solution Library on the web


Interview Questions
« Previous | 0 | 1 | 2 | 3 | 4 | 5 | 6 | Next »

101.Should we create system software ( e.g Operating system ) in Java ?

No, Java runs on a virtual machine called JVM and hence doesn't embed well with the underlying hardware. Though we can create a platform independent system software but that would be really slow and that's what we would never need.

102.Which UML diagrams you usually use for design ?

Use Case Diagram, Component Diagram for High level Design and Class Diagram , Sequence Diagram for low level design.

103.How do you coordinate and communicate with the team developers ?

We as a team of developers , testers , analyst , lead and architect sit close to each other. Most of the time I would just jump to their seat and talk to them ( if required ). We have daily stand up where we discuss things that needs team attention.

104.What kind of software architecture your organization follow ?

We have multi tier architecture with multiple layers , We have series of web servers and applications in application tier, infrastructure libraries at middle tier and Database servers at the lower tier. We are using Oracle as Database, ESB ( Enterprise service Bus ) for asynchronous communication and Rest Web Services.

105.Difference between Proxy and Adapter Deisgn Patterns ?

Adapter object has a different input than the real subject whereas Proxy object has the same input as the real subject. Proxy object is such that it should be placed as it is in place of the real subject.

106.Difference between Adapter and Facade ?

The Difference between these patterns in only the intent. Adapter is used because the objects in current form cannot communicate where as in Facade , though the objects can communicate , A Facade object is placed between the client and subject to simplify the interface.

107.Difference between Builder and Composite ?

Builder is a creational Design Pattern whereas Composite is a structural design pattern. Composite creates Parent - Child relations between your objects while Builder is used to create group of objects of predefined types.

108.Difference between Factory and Strategy Design Pattern ?

Factory is a creational design pattern whereas Strategy is behavioral design pattern. Factory revolves around the creation of object at runtime whereas Strategy or Policy revolves around the decision at runtime.

109.Shall we use abstract classes or Interfaces in Policy / Strategy Design Pattern ?

Strategy deals only with decision making at runtime so Interfaces should be used.

110.What are standard architectural questions:-?

Characteristics of a good architect design/ Consideration for designing a good application architecture

    • Should address functional requirements
    • Should address non functional requirements
    • Should address cross cutting concerns

      • Application Architecture layer - Key principles of Software Architecture

    • Layered Architecture: A decomposition of services such that most interactions occur only between neighboring layers.
    • Enterprise Process-Centric: A business process manages the interactions between multiple intra-enterprise applications, services, sub-processes and users.
    • Component-Based Architecture -Decomposes application design into reusable functional or logical components that expose well-defined communication interfaces.
    • Service-Oriented Architecture (SOA) -applications that expose and consume functionality as a service using contracts and messages.

      • Non functional requirements of the application design- at-least highlight important ones

    • Scalability and capacity planning - considered for high user load
    • High Availability - downtime and uptime of system
    • Reliability and Usability -bug free system and easy to use
    • Maintainability and Extensibility - quality code, standard routines and upgradable, new releases
    • Performance - Response, processing and tun around time of application

      • Cross cutting concerns of the application -some key concerns addressing

    • Transaction processing
    • Internationalization and localization which includes Language locale
    • Information security -authentication and authorization
    • Caching -local,server, network, database caching
    • Logging
    • Exception Management

      • UML Diagram and tools- key diagrams used by technical team

    • Diagram
    • Class diagram
    • Sequence diagram
    • Deployment diagram
    • Use case diagram
    • Tools
    • Rational Architect
    • Argo UML (freebees)
    • Visual Paradigm
    • Star UML etcs
    • Reverse Engineering and code generation

      • J2EE Core Design Pattern -as per application layer

    • Presentation Tier
    • Intercepting Filter -intercepts incoming requests and outgoing responses and applies a filter.
    • Context Object-encapsulates state in a protocol-independent way to be shared throughout your application
    • Front Controller-a container to hold the common processing logic that occurs within the presentation tier
    • Application Controller -centralizes control, retrieval, and invocation of view and command processing
    • View Helper -encourages the separation of formatting-related code from other business logic
    • Composite View -suggests composing a View from numerous atomic pieces
    • Dispatcher View -defers business processing until view processing has been performed.
    • Service To Worker
    • Business Tier
    • Business Delegate -reduces coupling between remote tiers and provides an entry point for accessing remote services in the business tier.
    • Service Locator -encapsulates the implementation mechanisms for looking up business service components.
    • Session Facade -provides coarse-grained services to the clients by hiding the complexities of the business service interactions.
    • Application Service -centralizes and aggregates behavior to provide a uniform service layer to the business tier services.
    • Business Object -implements your conceptual domain model using an object model.
    • Composite Entity -implements a Business Object using local entity beans and POJOs.
    • Transfer Object -provides the best techniques and strategies to exchange data across tiers
    • T O Assembler -constructs a composite Transfer Object from various sources
    • Value List Handler -uses the GoF iterator pattern to provide query execution and processing services.
    • Integration Tier
    • Data Access Object -enables loose coupling between the business and resource tiers
    • Service Activator -enables asynchronous processing in your enterprise applications using JMS.
    • Domain Store -provides a powerful mechanism to implement transparent persistence for your object model.
    • Web Service Broker -exposes and brokers one or more services in your application to external clients as a web service using XML and standard web protocols

      • J2EE Application Design Pattern

    • Creational Patterns
    • Factory Pattern
    • Abstract Factory Pattern
    • Singleton Pattern
    • Builder Pattern
    • Prototype Pattern
    • Structural Patterns
    • Adapter Pattern
    • Bridge Pattern
    • Composite Pattern
    • Decorator Pattern
    • Facade Pattern
    • Flyweight Pattern
    • Proxy Pattern
    • Behavioral Patterns
    • Chain of Responsibility Pattern
    • Command Pattern
    • Interpreter Pattern
    • Iterator Pattern
    • Mediator Pattern
    • Momento Pattern
    • Observer Pattern
    • State Pattern
    • Strategy Pattern
    • Template Pattern
    • Visitor Pattern
      • J2EE Application Development Framework

    • Spring 3.0
    • Jakarta Struts 2.0 -Servlet life cycle
    • EJB 3.0
    • JSF
    • JPA -Hibernate/ibatis
    • AJAX
    • GWT
    • JSON
    • FLEX -actionscript

      • J2EE Application Server - deployment and administration

    • Apache Tomcat
    • Websphere Application Server
    • JBOSS
    • WebLogic

      • Database Systems - SQL- complex queries -PL/SQL

    • Oracle 9i/10g/11g
    • SQL Server 2000/2005/2008
    • MySQL 5.5
      • Application build management

    • ANT - Build tools -build.xml/properties MAVEN -pom.xml
    • HUDSON - continuous integration build server

      • Source Version controls - resolving conflict, branching,tagging

    • SVN
    • CVS
    • VSS
    • GIT

      • SOA -implementation and approach

    • Webservices -AXIS 2 framework, webservice annotation RPC style and Restful services

      • JMS - MQ - MDB

  • Point-to-Point (Queue destination): In this model, a message is delivered from a producer to one consumer.
  • Publish/Subscribe (Topic destination): In this model, a message is delivered from a producer to any number of consumers.

111.What is the difference between optimistic lock and pessimistic lock?

Optimistic lock is an implicit lock that tries to make best assumption about locking strategy and minimize time spent in lock of resource. Optimistic lock is usually implemented with some kind of timestamp strategy. Pessimistic lock is an explicit lock that set by client.

112.What modeling tools you are familiar with? What version of TogetherJ (Rational Rose etc.) have you used?

Just explain the modeling tools which you have userd.

113.If stateless session bean more scalable than stateful session beans?

This is very popular questions that leads to some confusion. According to the second edition of "Core J2EE Patterns" and contrary to popular belief, stateful session beans are not less scalable than stateless session bean. The reason for that is life cycle of either type is controlled by Application Server and control of life cycle is what defines the scalability of the application

114.What's the difference between EJB 1.1 and EJB 2.0?

There are many differences. Some key points you want to mention are:
1. New CMP model
2. EJB Query Language
3. Local interfaces
4. EJBHome methods
5. Message Driven Beans (MDB) support

115.What distinguishes "good architecture" from "bad architecture"?

This is an open-ended question. There are few aspects of "good" architecture:
1. Shall address functional product requirements
2. Shall address non-functional product requirements, such as performance, scalability, reliability, fault tolerance, availability, maintainability, extensibility
3. Shall be simple and comprehendible (to support maintainability and extensibility)
4. Shall be well structured (support multiple tiers, parallel development etc.)
5. Shall be detailed enough to share with different levels of organizational structure (marketing, sales, development, management)
"Bad" architecture is basically opposite to "good" architecture.

116.What Do You Mean By High Availability?

Having better service capacity with high availability and low latency is mission critical for almost all businesses.
Availability means the ability of the application user to access the system, If a user cannot access the application, it is assumed unavailable. High Availability means the application will be available, without interruption.
Achieving high availability for a application is not always a easy task. Using redundant server nodes with clustering is a common way to achieve higher level of availability in web applications.
Availability is commonly expressed as a percentage of uptime in a given year.

117.What Is Scalability?

Scalability is the ability of a system, network, or process to handle a growing amount of load by adding more resources. The adding of resource can be done in two ways

  • Scaling Up
    This involves adding more resources to the existing nodes. For example, adding more RAM, Storage or processing power.

  • Scaling Out
This involves adding more nodes to support more users.
Any of the approaches can be used for scaling up/out a application, however the cost of adding resources (per user) may change as the volume increases. If we add resources to the system It should increase the ability of application to take more load in a proportional manner of added resources.
An ideal application should be able to serve high level of load in less resources.
However, in practical, linearly scalable system may be the best option achievable.
Poorly designed applications may have really high cost on scaling up/out since it will require more resources/user as the load increases.

118.What Is A Cluster?

A cluster is group of computer machines that can individually run a software. Clusters are typically utilized to achieve high availability for a server software.

Clustering is used in many types of servers for high availability.

  • App Server Cluster
    An app server cluster is group of machines that can run a application server that can be reliably utilized with a minimum of down-time.

  • Database Server Cluster
An database server cluster is group of machines that can run a database server that can be reliably utilized with a minimum of down-time.

119.Why Do You Need Clustering?

Clustering is needed for achieving high availability for a server software. The main purpose of clustering is to achieve 100% availability or a zero down time in service.

A typical server software can be running on one computer machine and it can serve as long as there is no hardware failure or some other failure.

By creating a cluster of more than one machine, we can reduce the chances of our service going un-available in case one of the machine fails.

Doing clustering does not always guarantee that service will be 100% available since there can still be a chance that all the machine in a cluster fail at the same time. However it in not very likely in case you have many machines and they are located at different location or supported by their own resources.

120.What Is Middle Tier Clustering?

Middle tier clustering is just a cluster that is used for service the middle tier in a application. This is popular since many clients may be using middle tier and a lot of heavy load may also be served by middle tier that requires it be to highly available.

Failure of middle tier can cause multiple clients and systems to fail, therefore its one of the approaches to do clustering at the middle tier of a application.

In java world, it is really common to have EJB server clusters that are used by many clients. In general any application that has a business logic that can be shared across multiple client can use a middle tier cluster for high availability.

« Previous | 0 | 1 | 2 | 3 | 4 | 5 | 6 | Next »


copyright © 2014 - all rights riserved by javatechnologycenter.com