Location via proxy:
[ UP ]
[Report a bug]
[Manage cookies]
No cookies
No scripts
No ads
No referrer
Show this form
Open navigation menu
Close suggestions
Search
Search
en
Change Language
Upload
Sign in
Sign in
Download free for days
0 ratings
0% found this document useful (0 votes)
52 views
Java Programming Notes
Uploaded by
shruti
AI-enhanced title
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
Download now
Download
Save Java programming notes For Later
Download
Save
Save Java programming notes For Later
0%
0% found this document useful, undefined
0%
, undefined
Embed
Share
Print
Report
0 ratings
0% found this document useful (0 votes)
52 views
Java Programming Notes
Uploaded by
shruti
AI-enhanced title
Copyright
© © All Rights Reserved
Available Formats
Download as PDF or read online on Scribd
Download now
Download
Save Java programming notes For Later
Carousel Previous
Carousel Next
Save
Save Java programming notes For Later
0%
0% found this document useful, undefined
0%
, undefined
Embed
Share
Print
Report
Download now
Download
You are on page 1
/ 22
Search
Fullscreen
Structured Programming | Object-Oriented Paradigm | Class | Object | Method | Abstraction | Encapsulation | Data Hiding | Inheritance | Reusability | Polymorphism | Dynamic Binding 11 INTRODUCTION One characteristic that is constant in the software industry today is “change”. Change is one of the most critical aspects of software development and management. New tools and new approaches are announced almost everyday. The impact of these developments is often very extensive and raises a number of issues that must be addressed by the software engineers. Most important among them are maintainability, reusability, portability, security, integrity, and user friendliness of software products. To build today's complex software it is just not enough to put together a sequence of programming statements and sets of procedures and modules. We need fo use sound construction techniques and program structures that are easy to comprehend, implement and modify in a wide variety of situations. Since the invention of the computer, many programming approaches have been tried. These include techniques such as modular programming, top-down programming, bottom-up programming ‘and structured programming. The primary motivation in each case has been the concem to handle the increasing complexity of programs that are reliable and maintainable. These techniques became popular among programmers over the last two decades. With the advent of languages such as G, structured programming became very popular and was the paradigm of the 1980s. Structured programming proved to be a powerful tool that enabled programmers to write moderately complex programs fairly easily. However, as the programs grow larger, even the structured approach failed to show the desired results in terms of bug-free, easy-to- maintain, and reusable programs. Object-Oriented Programming (OOP) Is an approach to program organization and development, Which attempts to eliminate some of the pitfalls of conventional programming methods by incorporating the best of structured programming features with several new concepts. It is a new way of organizing and developing programs and has nothing to do with any particular language. However, rot all languages ate suitablo {0 implement the COP concepts easily. Languages that support OOP features include Smalltalk, Objective C, C++, Ada and Object Pascal. C++, an extension of C language, is the most popular OOP language today. C++ is basically a procedural language with2. Programming with Java object-oriented extension. Java, a pure object-oriented language, is one of the recent languages added to this list, the latest one being C##, 1.2 OBJECT-ORIENTED PARADIGM major objective of object-oriented approach is to auminate some of the flaws encountered jn the procedural approach. OOP treats data as a critical element in the program development and does not allow it to flow freely around the system, It ties data more closely to the functions that operate on it and protects it from unintentional modification by other functions. OOP allows us to decompose a problem into a number of entities.called Objects and then build data and functions (known as methods in Java) around these entities. oe The combination of data and methods make up an object (see Fig. 1.1). The data of an object can be accessed only by the methods associated with that object. However, methods of one object can access the methods of other objects. Some of the features of object-oriented paradigm are: Object = Data + Methods 1. Emphasis is on data rather than procedure. 2. Programs are divided into what are known as Objects. 3. Data structures are designed such that they characterize the objects. 4. Methods that operate on the data of an object are tied together in the data structure. 5. Data is hidden and cannot be accessed by external functions. 6. 7. 8. Method }. Objects may communicate with each other through methods. . New data and methods can be easily added whenever necessary. . Follows bottom-up approach in program design. Object-oriented paradigm is the most recent concept among programming paradigms and means different things to diferent people. It is therefore important to have a working definition of object- oriented programming before we proceed further. Object-oriented programming is an approach that provides a way of modularizing programs py creating partitioned memory area for both data and functions that can be used as templates for creating copies of such modules on demand. This means that an object is considered to be 2 Parlilioned afea of computer memory that stores data and a set of operations that can access the data. Since the memory partitions are independent, the objects can be used in a vari i t Programs without modifications. eee 1.3 BASIC CONCEPTS OF OBJECT-ORIENTED PROGRAMMING As mentioned earlier, object-oriented is a term, which is inter i i a ' rpreted differently by different people. 7 7 shetlore necessary to understand some of the concepts used extensively in object-oriented ian . now discuss the general concepts of OOP which form the heart of Java Objects and Classes Objects are the basic runtime entities a place, a bank account, a table of dat i an object-oriented system. They may represent a person, represent user-defined data types such ‘a of any item that the program ma h y handle. They may also 8 vectors and lists, Any Programming problem is analyzed inFundamentals of Object-Oriented Programming 3 terms of objects and the nature of communication between them. Program objects should be chosen such that they match closely with the real-world objects. AS pointed out earlier, an object takes up Space in the memory and has an associated address like a record in Pascal, or a structure in C. When a program is executed, the objects interact by sending messages to one another, For example, ‘customer’ and ‘account’ are two objects in a banking program, then the customer object may send a message to the account object requesting for the balance. Each object contains data and code to manipulate the data. Objects can interact without having to know the details of each other's data or code. It is sufficient to know the type of message accepted and the type of response returned by the objects. Although different authors represent them differently, Fig. 1.2 shows a notation that is popularly used to represent an object in object-oriented analysis and design. We just mentioned that objects contain data and code to manipulate that data. The entire set of data and code of an object can be made a user-defined data type using the concept of a class. A class may be thought of as a ‘dala type’ and an object as a ‘variable’ of that data type. Once a class has been defined, we can create any number of objects belonging to thal class. Each object is associated with the data of type class with which they are created, A class is thus a collection of objects of similar type. For example, mango, apple and orange are members of the class fruit. Classes are user-defined data types and behave like the built-in types of a programming language. For example, the syntax used to create an object is no different than the syntax used to create an integer object in C. If fruit has been defined as a class, then the statement fruit mango; Object Name Data BasicPay Salary () _Mothods Z| Representation of an object will create an object mango belonging to the class fruit. Data Abstraction and Encapsulation The wrapping up of data and methods into a single unit (called class) is known as encapsulation. Data encapsulation is the most striking feature of a class. The data is not accessible to the outside world and only those methods, which are wrapped in the class, can access it. These methods provide the interface between the object's data and the program. This insulation of the data from direct access by the program is called dafa hiding. Encapsulation makes it possible for objects to be treated like ‘black boxes’, each performing a specific task without any concern for internal implementation (see Fig. 1.3). Abstraction refers to the act of representing essential features without including the background details or explanations. Classes use the concept of abstraction and are defined as a list of abstract attributes such as size, weight and cost, and methods that operate on these attributes. They encapsulate all the essential properties of the ad objects that are to be created. Encapsulation is "formation “in” Data one of the three COP principles, the other two being inheritance and polymorphism. The concept of data encapsulation and ab- straction can be well understood by consider- ing the simple example of a mobile phone. It is Information “out” [EEBEEG) Encapsulation—Objects as “black boxes”———_ 4 Programming th Java ication. How the is used for text and voice communi wich is verte end user 10 talk {0 remote person is irrelevant from jy, eo about is the fact thal by Pressing the green ‘Anet® 3 Tus, the user is isolated from all the complex oe he mobile phone. ‘5 that can be perform .ctronic device, a complex ele functions to en: of the mobile phone viewpoint. The only thing key, he can talk to the person 09 {! virdah is well encapsulated within | aa with a mobile Phone—dlaling cay y Now, think of the standard operation ! ‘counya Cal, ene jing and receiving text messege tc. Also, consider the common data elements that are found in all types of mobile phone” ie, address DOO. inbox, sent items, etc. We can refer ty these sets of data and operations a5 an abs' generic mobile phone. All the mobile phon, of different makes adhere to this Spetraction of a generic mobile phone. In other words, we can fe that all mobile phones from different manufacturers ‘are nothing but different instances of this commo, abstraction of a generic mobile phone n Inheritance Inheritance is the process by whic class. Inheritance supports the con h objects of one lass acquire the properties of objects of anoth, cept of hierarchical classification. For ‘example, the bird robin ig is a part of the class flying bird, which is again a part of the class bird. As illustrated in Fig. 1.4, th principle behind this sort of division ig that each derived class shares common characteristics with te e class from which it is derived. In OOP, the concept of inheritance provides the idea of reusability. This means that we car 2d oot fcateres to an existing class without modifying i. THs TS essible by deriving a new aes acne iaing one. The new class will have the combined features of both the clasees. Ths os that it allows the programmer to reuse epi real appeal and power of the inheritance mechanism is that is almost, but not exactly, what he wants, and to tailor the class in such a way that it does ot Rate | Bird | Attributes: | | Feathers | Layeggs | Nonflying Bird | Attributes: ‘Swallow f | Attributes: fer : ») Penguin Kiwi Attributes: j © Attributes: I Property inheritanceFundamentals of Object-Oriented Programming 5 troduce any undesirable side effects i inode Into the rest of the classes. In Java, the derived class is known Note that each subclass defines only those fe 0 atures th: i inheritance, each Class would have to explicitly include all of ieteue Sa ete Polymorphism Polymorphism Is another important OOP concept. Pelymorphism means the ability to take more than one form. : ‘xample, an operation may exhibit different behavior in different instances. The bios depen upon the types dia used inthe eperation, For example, consider the operation tion. , the operation will generate a sum. If the oj i Of aefon Would produce o tia sting by contact Cae operand ar stings hen the name can be used to handle different number and different types of arguments. This is something similar to a particular word having several different meanings depending on the context. [ Girete Object © Box Object ™ “Triangle Object | k Draw (Circle) Draw (box) Draw (Triangle) Polymorphism Polymorphism plays an important role in allowing objects having different internal structures to share the same external interface. This means that a general class of operations may be accessed in the same manner even though specific actions associated with each operation may differ. Polymorphism is extensively used in implementing inheritance. Compile Time and Runtime Mechanisms In the context of a programming language, compile time may refer to any of the following: «The operations performed by the compiler such as syntactic and semantic analysis «The pre-runtime assessment of the program's behavior In Java, apart from syntax and semantic checks, one important logical task that is considered to be performed at compile time is the implementation of inheritance. Itis at compile time that the child class inherits the public data members and methods of the base class. Runtime, on the other hand, is the time period when a syntactically correct program is actually executed in the computer system. Thus, all the tasks that are performed during this time period are prefixed with the word ‘runtime’ or ‘dynamic’, such as runtime type checking or dynamic memory allocation, In Java, one of the important concepts that is associated with runtime is the implementation of polymorphism. It is also referred as dynamic binding, as explained in the next section. Dynamic Binding Binding refers to the linking of a procedure call to the code to be executed in response to the call. Dynamic binding means that the code associated with a given procedure call s not known until6 Programmi with Java ism and inheritanc i ime. It is associated with polymorphi 2A peo the fine Fe a - Heron, Gepends on the dynamic type of that reference.” eee ap Mee By inheritance, every object will have this pro draw procedure will be redefined jn ec ‘ cl associated with a po He Le ider the procedure “dra\ . 1.5. Ca ROW que to each object and So the draw ihe code matching the object under current reference will by nc alleg however, unit algorithm is, t he object. At runtime, that defines Message Communication program consists of a set of objects that communicate with each oth vpn objectoriented language, therefore, involves the following basic sf, define objects and their behavior. eps: Jass definitions. ig objects. by sending and receiving information much th shown in Fig. 1.6. The concept of Tes age at directly model or simulate thei heir reat. Rey An object-oriented process of programming in 1. Creating classes that 2. Creating objects from cl 3, Establishing communication amon: fh one another another as si Objects communicate wit itding systems th way as people pass messages to one passing makes it easier to talk about bul counterparts. Ne letwork of objects communicating between them Fig. A message for an object i ject is a reque method (procedure) in the S a request for execution of receiving object that gene: @ procedure, and therefc a rates the desired r refore will invoke a result, as shown in Fit ig. 1.7. Receiving Sending ” a ‘ : ess2ge | Method ().) Rees ject Object [EERE Message riggers a methodFundamentals of Object-Oriented Programming 7 Message passing Involves Specifying the nam and the information to be sent. For example, oxy Employee.salary (name) ; Here, Employee is the object, salary i information. Y Is the message and name is the Parameter that contains Of the object, the ni: ame of the method (m ler the statement (rnessnoe) Employee.salary (name) ; cee) | Message Information Objects have a life cycle. They can be created a a ee rl feasible as long as itis alive. ind destroyed. Communication with an object is 1.4 BENEFITS OF Oop OOP offers several benefits to both the to the solution of many problems associ: 1. Through inheritance, we can eliminate redundant code and extend the use of existing classes. 2. We can build programs from the standard working modules that communicate with one another, rather than having to start writing the code from scratch. This leads to saving of development time and higher productivity, 3. The principle of data hiding helps the programmer to build secure programs that cannot be invaded by code in other parts of the program. Itis possible to have multiple objects to coexist without any interference. Itis possible to map objects in the problem domain to those objects in the program. It is easy to partition the work in a project based on objects. The data-centered design approach enables us to capture more details of a model in an implementable form. Object-oriented systems can be easily upgraded from small to large systems. Message passing techniques for communication between objects make the interface descriptions with external systems much simpler. 10. Software complexity can be easily managed. Noo ee While it is possible to incorporate all these features in an object-oriented system, their importance depends on the type of the project and the preference of the programmer. There are a number of issues that need to be tackled to reap some of the benefits stated above. For instance, class libraries must be available for reuse. The technology is stil developing and current products may be superseded quickly. Strict controls and protocols need to be developed if reuse is not to be compromised. ae , A software that is easy to use is hard to build, It is hoped that the object-oriented programming languages like C++ and Java would help manage this problem. 1.5 APPLICATIONS OF OOP 00P is one of the programming buzzwords today. There appears to be a great deal of excitement and interest among software engineers in using OOP. Applications of OOP are beginning to gain8 Programming with Java a i as, The most popular application of cole ieee adr UP ty impo en: retscer interface design such 25 indows. S OF wine has been in the area | ; 7 systems developed using oP teen uch more complex and contain many more -objecgs | Real-business systems eods. OOP is useful in this type of spplcations because it can simpli complicated altribuics Fe oor application of OOP include: lity ecomplex problem. The promising ares |. Real-time systems ‘Simulation and modeling Object-oriented database: Hypertext, hypermedia an ‘Al and expert systems Neural networks and parallel progran Decision support and office automatic ; CIMICADICAD system Oe ait yelieved that the richness of OOP environm J sniy the acally of software systems but also its produ changing the way software engineers think, analyze, desigi S d expertext gramming n systems PNOMReENe enable the software industry to improve vity, Object-oriented technology is certare n and implement systems today. nly ey “ SUMMARY] . it enables us not only to organize our program code into logical ge of encapsulation, inheritance, and polymorphism, In Java is an object-oriented languag ject-oriented programming which include units called objects but also to take advanta: si this chapter, we have introduced the basic concepts of obje ‘+ Encapsulation, Inheritance, and ‘+ Polymorphism We also discussed briefly the benefits and applications of object-oriented programming approach, SUSE Pr REVIEW QUESTIONS ————————— What do you think are the major issues facing the software industry today? Briefly discuss the software evolution during the period from 1950 to 1995. 1 4. 1°3 What is object-oriented programming? How is it different from the procedure-oriented wee programming? 1.4 How are data and methods organized in an object-oriented program? 115 What are the unique advantages of an object-oriented programming paradigm? 4.6 Distinguish between the following terms: (a) Objects and classes (b) Data abstraction and data encapsulation (c) Inheritance and polymorphism (d) Dynamic binding and message passing 1.7 What kinds of things can become objects in OOP? 1.8 Describe inheritance as applied to OOP. 1.9 List a few areas of application of OOP technology. 1.10 state whether the following statements are TRUE or FALSE: (a) In conventional, procedure-oriented programming, all data are shared by all functions. (b) The main emphasis of procedure-oriented programming is on algorithms rather than on dleee Fundamentals of ‘Object-Oriented Programming 9 (6) Onesof the striking features of object-oriented rogramming is the division of programs into objects that represent real-world entities, ee ~ n fs (@) Wrapping up of data of different types into a single unit is known as encapsulation. (¢) One problem with OOP is that once a class ig Created, it can never be changed. Inheritance means the ability to reuse the date values of one object by other objects. (g) Polymorphism is extensively used in implementing inheritance. (h) Object-oriented programs are executed much faster than conventional programs. (i) Object-oriented systems can scale up better from small to large. @) Object-oriented approach cannot be used to create, databases,: | Multithread | Bytecod: | World Wide Web I Applets | Package ! Platform-neutral ytecode ne ining | Is | HTML | Web browser | Applet tag ! Web server | HotJava | p | javah | javadoc | jab i Oak! | Dynamic linking ! Native method r Netscape Navigator | appletviewer | java | javac | javar 2.1. JAVA HISTORY Java Is a general-purpose, object-oriented programming language developed by Sun Microsystems of USA in 1991. Originally called Oak by James Gosling, one of the inventors of the language, Java was designed for the development of software for consumer electronic devices like TVs, VCRs, toasters and such olher electronic machines. The goal had a strong impact on the development team to make the language simple, portable and highly reliable. The Java team which included Patrick Naughton discovered that the existing languages like C and C++ had limitalions in terms of both reliability and portability, However, they modeled their new language Java on C and C++ but removed a number of features of C and C++ that were considered as sources of problems and thus made Java a really simple, reliable, portable, and powerful language. Table 2.1 lists some important milestones in the development of Java Table 2.1 Java Milestones Year Development 23 SRE TRS 3 1980] Sun Microsystems decides to develop special sofware that could be used to manipulate consumer «lectronic devices. A team of Sun Microsystems programmers headed by Jamos Gosling was formed to Undertake this task. 1891 | After exploring the possibilty of using the most popular object-oriented language G++, the team announced a new language named “Oak”. 1992 _| The team, known as Green Project team by Sun, demonstrated the a n, pplication of their new language to contol a list of home appliances using a hand-held device with a tiny touch-sensitive screen. 1993 | The World Wide Web (WWW) appeared on the Internet and transf i formed the text-based Internet into a Sraphieal-rich environment, The Green Project team came up with the idea of developing Web applets (ny Programs) using the new language thal could run on all types of computers connected to Intemet. (Contd)Java Evolution 11 Table 2.1 (Contd) [Year “Development 1994 | The team developed a Web browser called HolJava demonstrated the power of the net users, 1995 | Oak was renamed Java", due to some legal snags. Java is just a name and is nolan acronym. Many Popular companies including Netscape and Microsoft announced thelr support to Java 1996 | Java established itsetf not on} oriented programming langue “HotJava" to locate and run applet programs on Internet. Ww language, thus making it instantly popular among the Internet ly a a leader for Internet programming but also as a general-purpose, object- ge. Sun releases Java Development Kit 1.0. 1997 | Sun releases Java Development Kit 1.1 (JDK 1.1), 1998 | Sun relases the Java 2 with version 1.2 of the Software Development Kit (SDK 1.2) 1999 _ Sun releases Java 2 Platform, Standard Edition (J2SE) and Enterprise Edition (2EE), 2000. | J2SE with SDK 1.3 was released, | 2002. | J2SE with SOK 1.4 was released. 2004 | s2SE with JDK 5.0 'stead of JDK 1.5) was released. This is known as J2SE 5.0. 2006 _| Java SE 6 was released. With this release, Sun changed the name from ‘J2SE' to ‘Java SE’ and also removed ‘.0' from the version name. 2011 _ | Java SE 7 was released. The most striking feature of the language is that it is a platform-neutral language. Java is the first programming language that is not tied to any particular hardware or operating system. Programs developed in Java can be executed anywhere on any system. We can call Java as a revolutionary technology because it has brought in a fundamental shift in how we develop and use programs. Nothing like this has happened to the software industry before. 2.2 JAVA FEATURES The inventors of Java wanted to design a language which could offer solutions to some of the problems encountered in modern programming. They wanted the language to be not only reliable, portable and distributed but also simple, compact and interactive. Sun Microsystems officially des- cribes Java with the following attributes: [Yava2 Features. Additional Features of Enhancements in. Enhancements In. : PASE 5.0 Java SEG JavaSE7 + Compiled and interpreted | - Ease of Development * Scripting Language + Language + Platform-independent | + Scalability and Performance | Support Enhancements and Portable + Monitoring and + XML Processing and | + NIO2.0 + Object-Oriented Manageabilly Web Services + Parallel Programming “+ Robust and Secure + Desktop Client + JDBC 4.0 Support + Dynamic Language + Distibuted + Core XML Support + Annotation-based ‘Support + Familiar, Simpte and + Supplementary character Programming ‘Small support + Dynamic Compilation + Mutithreaded and + JDBCRowSet Interactive + High Performance + Dynamic and Extensible Although the above appears to be a list of buzzwords, they aptly describe the full potential of the language. These features have made Java the first application language of the World Wide Web. Java will also become the premier language for general-purpose standalone applications.— Ul 42. Programming with Java ed or interpreted. Java combines both these approaches led and Interpreted translates source code into what is knoyin Compi , vl language is either comp pre Usually a computer to atage system. First, Java compl tare es oe wt Kom thus making Java at Bytecodes are not machine inst hive ane , as bytecode instruction ay nine code that can be directly execiien Te in ha ein progr near tws say that Java is both @ compiled an $ the Java program. d Portable , A Platform-Independent an ava over other languages is its portabiliy. Java programs contribution of Java ‘anywhere and anytime. Changes ang to another, i oo el ces will not force any changes in Java The most significant stem TesOul can be easily moved from one 7 ' Upgrades in operating sysems, processors and SYSteM ee eee ane vn ue ete worl download a Java applet f programs. This is the reason wh "8 oe oon ene i ifferent kinds of systems W : ‘ vomot i ent ou cal system via Internet and execute it locally. This makes the Internet an note corr usor’s basic aystem providing practically unlimited number of accessible applets ang extensi Pacis er it mpiler generates bytecode instructions that ity in two ways. First, Java compi rate t iis o Cee eon oy machine. Secondly, the size of the primitive data types are machine. independent. Object-Oriented ; Java is a true object-oriented language. Almost everything in Java Is an object. All program code and data reside within objects and classes. Java comes with an extensive set of classes, arranged in packages, that we can use in our programs by inheritance. The object model in Java is simple and easy to extend. Robust and Secure 7 Java is a robust language. It provides many safeguards to ensure reliable code. It has strict compile time and run time checking for data types. It is designed as a garbage-collected language relieving the programmers virtually all memory management problems, Java also incorporates the concept of exception handling which captures serious errors and eliminates any risk of crashing the system. Security becomes an important issue for a language that is used for Programming on Intemet. Threat of viruses and abuse of resources are everywhere. Java systems not only verify all memory access but also ensure that no viruses are communicated with an applet. The absence of pointers in Java ensures that programs cannot gain access to memory locations without proper authorization. Distributed Java is designed as a distributed language for creating applications on networks. It has the ability to share bath data and programs. Java applications can open and access remote objects on Intemet 2S Easily as they can do in a local system. This enables multiple program i locations to collaborate and work together on a single project, ess. eS ae Simple, Small and Familiardava Evolution 13 Familiarity is a eager eral stking a of Java. To make the language look familiar to the existing programe; was modeled an and C++ languages. Java uses many constructs of C and C++ looks like a C+4" code. In fact, Java is a simplified version of C++. Multithreaded and Interactive ithread , esreme Hed means consins multiple tasks simultaneously. Java supports multithreaded programs, This meer thal we Need not wait for the application to finish one task before beginning time download an applet ‘rom a distant Bn audio clip, whila;seroling a page. and at the seme, rn ‘ - mn Wi otnance of graphical aplicatons, computer. This feature greally improves the interactive The Java runtime comes with tools that , a ‘smoothly running interactive systems. support multiprocess synchronization and construct High Performance Java performance is impressive for an interpreted lan i it i ° \uage, mainly due to the use of intermediate OSE Aon ovemoati a speed is comparable to the native C/C++. Java architecture is also fesigne heads during runtime. Further, the incorporat ireadi overall execution speed of Java programs. ree cn ot cee ea Dynamic and Extensible Java Is a dynamic language. Java is capable of dynamically linking in new class libraries, methods, and objects. Java can also determine the type of class through a query, making it possible to either dynamically link or abort the program, depending on the response. Java programs support functions written in other languages such as C and C++. These functions are known as native methods. This facility enables the programmers to use the efficient functions available in these languages. Native methods are linked dynamically at runtime. Ease of Development Java 2 Standard Edition (J2SE) §.0 supports features, such as Generics, Enhanced for Loop, Autoboxing or unboxing, Typesafe Enums, Varargs, Static import and Annotation. These features reduce the work of the programmer by shifting the responsibilty of creating the reusable code to the compiler. The resulting source code is free from bugs because the errors made by the compiler are less when compared to those made by programmers. Thus, each of the linguistic features is designed to develop Java programs in an easier way. Scalability and Performance JOSE 5.0 assures a significant increase in scalal time and reducing the amount of memory used in introduction of the class, data sharing in the Hotsp: startup time by loading the core classes from the jar is reduced by sharing data in the shared archive among mut versions, the data was replicated in each JVM instance. bility and performance by improving the startup Java 2 runtime environment. For example, the jot Java Virtual Machine (JVM) improves the files into a shared archive. Memory utilization tiple JVM processes. In the earlier Monitoring and Manageability Java supports a number of APIs, such 2s JVM Monitoring and Manageme! Platform Extension, Logging, Monitoring and Management Interface, Extension (JMX) to monitor and manage Java applications. For example, Monitoring and Management API to track the information at the application level and nt API, Sun Management and Java Management Java provides JVM JVM level when14 Programming with Java ips, jstat, and jet ides tools, such as jconsole, jps, jst Ista tp rovides t ple, GUI-based {ool called jconsole jg vette deploying a large application. Java p . lo 7 7 use of monitoring and management facillies. For exar monitor the JVM. Desktop Client ‘ i chien ‘ uirements and challenges of the Jay, J2SE 5.0 provides enhanced features to meet the req 8 desktop users. It provides an improved Swing look and feel called Ocean. This feature is main) i K al lled is nl ides an impt ing loo ; Gprabriny graphics applications that require OpenGL hardware acceleration Y USEd for Miscellaneous Features ; : In addition to the above features, J2SE 5.0 supports the following features: IL feature to the Java platform. Java jort J2SE 5.0 adds a powerful XM containg ore ct Heacee for interface, to instantiate Simple API for XML (SAX) and Document Object Model (DOM) parsers to parse an XML document, transform the content of an XML document, and validate an XML document against the schema, 32-bit supplementary character support as lementary Character Support Java adds the n vata re ‘Unicode 20 support. The supplementary characters are encoded with UTF-16 values to generate a different character called, surrogate codepoint. Se Java supports JDBC RowSet to send data in a tabular format between the Temote componente ak a distibuted enterprise application. JDBC RowSet contains CachedRowset and WebRowSet objects. The CachedRowSet object is a JavaBean component which sets tke a Container. This object contains a number of rows of data, which are retrieved from the databsse The data stored in the CachedRowSet can be directly accessed without connecting to the database or any other data source. The rows of data that are retrieved from the database can be synchronized later. The WebRowSet object can operate without being connected to the database or data source. The WebRowSet object uses XML format to read and write the rowset. Enhancements in Java SE 6 ‘Some of the key enhancements in Java SE 6 are: * Scripting Language Support: Java SE 6 integrates various scripting languages such as Java Saipl and PHP Script into the Java platform. It allows scripts to be embeded in Java programs, and compiled and executed with the help of appropriate scripting engine. XML Processing and Web Services: It allows development of Web services and clients that communicate using XML. JDBC 4.0 Support: It supports JDBC 4.0 for developing database-centric applications, As a [fsult Programmers can leverage the various features of JDBC 4.0 Such as automatic loading of JDBC driver class, connection management features, ate. Annotation-based Programming: It allows programmers to define annotations (meta-tags) {or various program elements so that the same can be used by the compiler or other tools to generate ready code whenever necessary, Dynamic Compilation: The Java Compiler AP allows dynamic compilation of Java source code form a running Java application, Enhancements in Java SE7 Some of the key enhancements in Java SE 7 are:vava evowution 15 + Language Enhancements: Java SE 7 adds several language features aimed at helping the Programmers implement difficult functionality with ease. The new language features include strings in switch statement, multiple exception handling, diamond syntax, etc. + NIO 2.0: The new file system API (NIO 2.0) in Java SE 7 makes it a lot easier to work with file systems. It contains several enhancements to the standard file operations such as open, read, write, etc. In addition, it also allows the programmers to create custom file systems. * Parallel Programming: Java SE 7 facilitates parallel programming through the use of Fork/Join framework. While the conventional multithreaded programming allowed programmers to use a single processor for multitasking; the Fork/Join framework enables programmers to make the best use of the available multiple processors through parallel programming. « Dynamic Language Support: Java SE 7 supports dynamically typed languages in the JVM. The invokedynamic instruction is used to define customized linkage mechanisms for these languages. 2.3 HOW JAVA DIFFERS FROM C AND C++ Although Java was modeled after C and C++ languages, it differs from C and C++ in many ways. Java does not incorporate a number of features available in C and C++. For the benefit of C and C++ programmers, we point out here a few major differences between C/C++ and Java languages. Java and C Java is a lot like C but the major difference between Java and C is that Java is an object-oriented language and has mechanism to define classes and objects. In an effort to build a simple and safe language, the Java team did not include some of the C features in Java. 1. Java does not include the C unique statement keywords sizeof, and typedef. 2. Java does not contain the data types struct and union. 3. Java does not define the type modifiers keywords auto, extern, register, signed, and unsigned. 4, Java does not support an explicit pointer type. 5, Java does not have a preprocessor and therefore we cannot use # define, # include, and # ifdef statements. 6. Java requires that the functions with no arguments must be declared with empty parenthesis and not with the void keyword as done in C. 7. Java adds new operators such as instanceof and >>>. 8. Java adds labeled break and continue statements. 9. Java adds many features required for object-oriented programming. Java and C++ Java is a true object-oriented language while C++ Is basically C with object-oriented extension. That is what exactly the increment operator ++ indicates. C++ has maintained backward compatibility with C. It is therefore possible to write an old style C program and run it successfully under C++. Java appears to be similar to C++ when we consider only the “extension” part of C++, However, some object-oriented features of C++ make the C++ code extremely difficult to follow and maintain. Listed below are some major C++ features that were intentionally omitted from Java or significantly modified. 1. Java does not support operator overloading. 2. Java does not have template classes as in C++. 3, Java does not support multiple inheritance of classes. This is accomplished using a new feature called “interface”.——i—‘“aié—S 46 Programming with Jave ot support global variable Every or aitiod is deciared within class rt of that class: t use pointers. 2 the destructor functio' 4. Java does nm variable and and forms p2! 5, Java does not 8, Java has replaced afinalize()function. 7. There are no header files in Java. adds some new features. While Crt re, Java is nelther a superset Net Or Ger Java may be considered 2 Ficrt and a second cousin of © 85 2.1. Amore detailed discussion oF ween C++ and Java is available in with Java also is a superset a subset of C fa first cousin o} itustrated in Fig, the differences bel in Appendix A. 2.4 JAVAAND INTERNET with the Int a Web browser to ru fais strongly associated was HotJava, and run them local bled browser t local computer (see Fig. ge system of t up their dav written in Java create applet programs can also use a Java-enal Internet and run it on his true extension of the storat Internet users can also se remote users of Internet. has made Java a unique programming language known as Internet language. Remote ‘Computer Local Computer ternet because of the n applets on lly using @ “Java-enal (0 download an app! 2.2), In fact, the local computer. Web sites containin: The ability of Java applets to hit for the Intemet. In fact, due to this, Java is popular y ] [EEIERE overtopping of C, C++, and Java fact that the first applicati Internet. Internet users Sonne eo bled browser” such as Hotlava, Trey let located on a computer anywhere in “fale applets have made the Inmet’ .g Java applets that could be used fh a ride on the Information Superhghny De [EEE] owntoading of applets via internetJava Evolution 47 2.5 JAVA AND WORLD WIDE WEB World Wide Web (WWW) Is an open-ended information retrieval system designed to be used ag in the Internet's distributed environment. This system contains what are known as Web pages that provide both information and controls. Unlike a menu-driven system where we are guided through a particular direction using a decision tree structure, the Web system is open-ended and we can navigate to a new document in any direction as shown in Fig, 2.3. This is made possible with the help of a language called Hypertext Markup Language (HTML). Web pages contain HTML tags that enable us to find, retrieve, manipulate and display documents worldwide. Java was meant to be used in distributed environments such as Internet. Since, both the Web and Java share the same philosophy, Java could be easily incorporated into the Web system. Before Java, the World Wide Web was limited to the display of stil images and texts. However, the incorporation of Java into Web pages has made it capable of supporting animation, graphics, games, and a wide range of special effects. With the support of Java, thé Web has become more interactive and dynamic. On the other hand, with the support of Web, we can run a Java program on someone else's computer across the Internet. Java communicates with a Web page through a special tag called
. Figure 2.4 illustrates this process. The figure shows the following communication steps: FERRY Wed structure of information search User's Computer Remote Computer Applet Source Code HTML Document Browser HTML Document oe Web Server Java's Interaction with the web15 Web server. The Web ‘the required document, the APPLET tag, computer’ quest, and sends ument contains 1, This bytecode had fe for that applet. red to the user's comput! codes and provides s i e code fil ie compiler using the Java Sonre ont Pre computer interprets the byte downloading from the mation necessary to applet. es he Pret bytecode Is tense 3, The corresponding srasn previously created BY 4, The Java-enabled browser output. 15, The user may have further int provider's Web server. This is interpret the applet. eraction with the applet but with no further because the bytecode contains all the info sea of information represented in Mery formats and stored oral is organized as the World Wids Web which uses on the net. They allow information found y it using the hypertext markup 2.6 WEB BROWSERS t earlier, the Intern: ‘A large por et is a vast tion of the Inter ‘ed to navigate through the i e Internet and displa} As pointed ou! ‘on many computers. xt. Web browsers are us hyperte ryrip retrieve the information spread acrost th fanguage (HTML). Examples of Web tprowsers, among others, include: 1, Holdava 2. Netscape Navigator 3. Internet Explorer re discussed in detail in Chapter 14. HTML documents and
tags a isplay of interactive content HotJava Microsystems that enables the di java and demonstrates the HotJava is the Web browser from Sun atmo Web, using the Java language. HotJava is written entirely in J capabillies of the Java programming language. when the Java language was first developed and porte that could run Java applets. Although we can view a Web pede that includes Java applets with a regular browser, we will not gain any vafits So far as being a Web browser goes, itis nothing special al does not offer anything special that most other Web browsers don't offer. Its biggest draw is that it and the frst Web browser to provide support for the Java language, thus making the Web more dynamic and interactive. HotJava has been discontinued by Sun and is no longer availal .d to the Internet, no browsers were available of Java's be! Netscape Navigator ration, is a general-purpose browser that Netscape Navigator, from Netscape Communications Corpor ae tuh Java applets. With versions available for Windows, Solaris and At i 1 n , pple Macintosh, Nets Navigator ‘vas one of the most widely used browsers of its time. But with increasing populaity of Interet Explorer browser, the use of Netscape Navigator decreased over 3 period of time. Even escape communications has stopped further development of this browser after its last stable release (9.0) in March 2008. Internet Explorer Internet Explorer is another po E pular browser developed by Microsoft for Wi ; ind ett ion E ina Navigator and Explorer use tool bars, icons, menus nd dato nb aaa fe . Explorer uses a just-in-time (JIT) compiler which greatly increases the Speed of ‘execution.2.7 HARDWARE AND SOFTWARE REQUIREMENTS iple operating systems such as Sun Solaris, Red Hat Enterprise Linux, tems, Windows Vista, Windows 7 and Windows 8. The latest versions Some of the typical hardware and software requirements for vava is supported across multi Windows Server operating sys of Java are Java SE 6 and Java SE 7. Java SE 6 are listed in Table 2.2. Table 2.2 System Requirements for Java 6 Java Evolution 19 Disk Space Enterprise 3.0) (Suse Enterprise Linux Server 9, Red Hat Platform ‘Memory Browsers Solaris SPARC 32-bit 64MB | Mozilla 1.4 or above (Solaris 10) ‘Windows Intel Architecture 32-bit 64MB | Firefox 1.06 or above, (Windows XP Professional, Win 2000 professional) 16.0 or above Windows Intel Architecture 32-bit 128 MB | Firefox 1.06 or above, (Windows Server 2003 and Windows Vista) IE 6.0or above Windows Intel Architecture 64-bit 128MB | 64-bit OS, 32-bit JRE, (Windows XP Professional, Windows Server 2003, IE 6.0 or above Windows Vista) Linux 32-bit 64MmB | Mozita 1.4 or above (Red Hat 9.0, Red Hat 2.1, Suse Enterprise Linux. Server 9) Linux 64-bit 64MB | 64-bit OS, 32-bit JRE Mozilla 1.4 or above 32-bit install, 65 MB 98 MB 98 MB. 110 MB. 58MB 56 MB ‘Source: Sun Microsystems An editor (like notepad) is required for writing programs in Java. However, a number of IDEs are also available for developing java code. These IDEs allow the users to write, compile, and execute Java programs from a single interface. Some of the popular Java IDEs are Eclipse, Jcreator, Jcoder and Netbeans etc. 2.8 JAVA SUPPORT SYSTEMS It is clear from the discussion we had up to now that the operation of Java and Java-enabled browsers ‘on the Internet requires a variety of support systems. Table 2.3 lists the systems necessary to support Java for delivering information on the Internet, Table 2.3 Java Support Systems ‘Support System Intemet Connection Web Server Web Browser HTML. APPLET Tag Java Code Description Local computer should be connected to the Internet. ‘Aprogram that accepts requests for information and sends the required documents, A program that provides access to WWW and runs Java applets. Alanguage for creating hypertext for the Web. For placing Java applets in HTML document. dava code Is used for defining Java applets, (Conta)20 Programming with Java Table 2.3. (Contd,) es Seppe Syston oven parle clans lein ho APPLET tag and transferred tothe user computer pee Te inven a requesting cliont workstation and the original server. tis Proxy Server Trica inlemented for ensuring secur. : fee aes Mail Server ‘A computer system that faciitates exchange (sending and receiving oss networks. 2.9 JAVA ENVIRONMENT a, Enka Is and hundreds of classes and methods, it it includes a large number of development tool ° The development tools ae a of the system known as Java Development it wok) aes ths Classes and methods are part of the Java Standard Library (JSL), also known as the Application Programming Interface (API). Java Development Kit The Java Development Kit comes with a collection of tools that are used for develo, Java programs. They include: ‘+ appletviewer (for viewing Java applets) * javac (Java compiler) * java (Java interpreter) * Javap (Java disassembler) * javah (for C header files) * javadoc (for creating HTML documents) jdb (Java debugger) Table 2.4 lists these tools and their descriptions, ping and running Table 2.4 Java Development Tools veal Sip See ene appleWiewer | Enables us torun Java applets (without actually using a Java-compatible browser), Java ava interpreter, which runs applets and applications by reading and interpreting bytecode files, |) javac ae Java complies, which translates Java sourcecode to bytecode files that the interpreter can understand, Javadoc Creates HTML-format documentation from Java source code files. Javah Produces header files for uso with native methods, Javap ‘ava disassembler, which enables us to convert bytecode files Into a program description, jdb Java debugger, which helps us to find errors in our Programs,Application Programming Interface The Java Standard Library (or API) includes hundreds of classes and methods grouped into several functional packages (see Appendix B). Most commonly used packages are: 4. Language Support Package: A collection of classes and methods required for imple- menting basic features of Java. 2. Utilities Package: A collection of classes to provide utility functions such as date and time functions. 3, InputOutput Package: A collection of classes required for input/output manipula- tion. 4, Networking Package: A collection of class- es for communicating with other computers via Internet. 5, AWT Package: The Abstract Window Tool Kit package contains classes that imple- ments platform-independent graphical user interface. 6. Applet Package: This includes a set of classes that allows us to create Java ap- plets. Java Evolution 24 Text Edilor Java Source ‘Code Header Files Java Program Output [EEE] Process of building and running Java application programs ‘The use of these library classes will become evident when we start developing Java programs. Java Runtime Environment The Java Runtime Environment (JRE) facilitates the execution of programs developed in Java. It primarily comprises the following: 4, Java Virtual Machine (JVM): It is a program that interprets the intermediate Java byte code and generates the desired output. It is because of byte code and JVM concepts that programs written in Java are highly portable. 2. Runtime class librarie: ‘execution of Java programs. 3. User interface toolkits: AWT and Swing aro examples of toolkits that support varied input : These are a set of core class libraries that are required for the methods for the users to interact with the application program. 4. Deployment technologies: JRE comprises the following key deployment technologies: {a) Java plug-in: Enables the execution of a Java applet on the browser. (b) Java Web Start: Enables remote-deployment of an application. With Web Start, users can launch an application directly from the Web browser without going through the installation procedure. in this chapter, we have introduced a brief history of Java and its salient features. Java is a pure object-oriented language introduced by Sun Microsystems of USA and has a number of characteristics that make it suitable for Internet programming. We have discussed briefly how Java (SUMMARY can be incorporated into the World Wide Web system with the help of Web browsers.Nee 22_Programming with Java id C/C++ ntal differences between Java an COA lr Soran required and various tools available for languages. Finally, we discussed the e! implementing Java programs. REVIEW QUESTIONS i 2.1 Why is Java known as platform-neutral language? 2.2 How is Java more secured than other languages? 2'3. What is multithreading? How does it improve the performance of Java? 2.4 List at least five major differences between C and Java. 255 List at least five major C+ features that were intentionally removed from Java. 2.6 Howis Java strongly associated with the Internet? 2.7 What is World Wide Web? What is the contribution of Java to the World Wide Web? plementation of Java applets. 2.8 What is Hypertext Markup Language? Describe its role in the ing 2.9 Describe the various systems required for Internet programming? 2.10 Describe with a flow chart, how various Java tools are used in the application development.
You might also like
The Subtle Art of Not Giving a F*ck: A Counterintuitive Approach to Living a Good Life
From Everand
The Subtle Art of Not Giving a F*ck: A Counterintuitive Approach to Living a Good Life
Mark Manson
4/5 (6124)
Principles: Life and Work
From Everand
Principles: Life and Work
Ray Dalio
4/5 (627)
The Gifts of Imperfection: Let Go of Who You Think You're Supposed to Be and Embrace Who You Are
From Everand
The Gifts of Imperfection: Let Go of Who You Think You're Supposed to Be and Embrace Who You Are
Brené Brown
4/5 (1148)
Never Split the Difference: Negotiating As If Your Life Depended On It
From Everand
Never Split the Difference: Negotiating As If Your Life Depended On It
Chris Voss
4.5/5 (933)
The Glass Castle: A Memoir
From Everand
The Glass Castle: A Memoir
Jeannette Walls
4/5 (8214)
Grit: The Power of Passion and Perseverance
From Everand
Grit: The Power of Passion and Perseverance
Angela Duckworth
4/5 (631)
Sing, Unburied, Sing: A Novel
From Everand
Sing, Unburied, Sing: A Novel
Jesmyn Ward
4/5 (1253)
The Perks of Being a Wallflower
From Everand
The Perks of Being a Wallflower
Stephen Chbosky
4/5 (8365)
Shoe Dog: A Memoir by the Creator of Nike
From Everand
Shoe Dog: A Memoir by the Creator of Nike
Phil Knight
4.5/5 (860)
Her Body and Other Parties: Stories
From Everand
Her Body and Other Parties: Stories
Carmen Maria Machado
4/5 (877)
Hidden Figures: The American Dream and the Untold Story of the Black Women Mathematicians Who Helped Win the Space Race
From Everand
Hidden Figures: The American Dream and the Untold Story of the Black Women Mathematicians Who Helped Win the Space Race
Margot Lee Shetterly
4/5 (954)
The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers
From Everand
The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers
Ben Horowitz
4.5/5 (361)
Steve Jobs
From Everand
Steve Jobs
Walter Isaacson
4/5 (2922)
Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future
From Everand
Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future
Ashlee Vance
4.5/5 (484)
The Emperor of All Maladies: A Biography of Cancer
From Everand
The Emperor of All Maladies: A Biography of Cancer
Siddhartha Mukherjee
4.5/5 (277)
Brooklyn: A Novel
From Everand
Brooklyn: A Novel
Colm Toibin
3.5/5 (2061)
A Man Called Ove: A Novel
From Everand
A Man Called Ove: A Novel
Fredrik Backman
4.5/5 (4972)
Angela's Ashes: A Memoir
From Everand
Angela's Ashes: A Memoir
Frank McCourt
4.5/5 (444)
The Art of Racing in the Rain: A Novel
From Everand
The Art of Racing in the Rain: A Novel
Garth Stein
4/5 (4281)
The Yellow House: A Memoir (2019 National Book Award Winner)
From Everand
The Yellow House: A Memoir (2019 National Book Award Winner)
Sarah M. Broom
4/5 (100)
The Little Book of Hygge: Danish Secrets to Happy Living
From Everand
The Little Book of Hygge: Danish Secrets to Happy Living
Meik Wiking
3.5/5 (447)
The World Is Flat 3.0: A Brief History of the Twenty-first Century
From Everand
The World Is Flat 3.0: A Brief History of the Twenty-first Century
Thomas L. Friedman
3.5/5 (2283)
Bad Feminist: Essays
From Everand
Bad Feminist: Essays
Roxane Gay
4/5 (1068)
Yes Please
From Everand
Yes Please
Amy Poehler
4/5 (1987)
Devil in the Grove: Thurgood Marshall, the Groveland Boys, and the Dawn of a New America
From Everand
Devil in the Grove: Thurgood Marshall, the Groveland Boys, and the Dawn of a New America
Gilbert King
4.5/5 (278)
The Outsider: A Novel
From Everand
The Outsider: A Novel
Stephen King
4/5 (1993)
The Woman in Cabin 10
From Everand
The Woman in Cabin 10
Ruth Ware
3.5/5 (2619)
A Tree Grows in Brooklyn
From Everand
A Tree Grows in Brooklyn
Betty Smith
4.5/5 (1936)
The Sympathizer: A Novel (Pulitzer Prize for Fiction)
From Everand
The Sympathizer: A Novel (Pulitzer Prize for Fiction)
Viet Thanh Nguyen
4.5/5 (125)
Team of Rivals: The Political Genius of Abraham Lincoln
From Everand
Team of Rivals: The Political Genius of Abraham Lincoln
Doris Kearns Goodwin
4.5/5 (1912)
A Heartbreaking Work Of Staggering Genius: A Memoir Based on a True Story
From Everand
A Heartbreaking Work Of Staggering Genius: A Memoir Based on a True Story
Dave Eggers
3.5/5 (692)
Wolf Hall: A Novel
From Everand
Wolf Hall: A Novel
Hilary Mantel
4/5 (4074)
On Fire: The (Burning) Case for a Green New Deal
From Everand
On Fire: The (Burning) Case for a Green New Deal
Naomi Klein
4/5 (75)
Fear: Trump in the White House
From Everand
Fear: Trump in the White House
Bob Woodward
3.5/5 (830)
Rise of ISIS: A Threat We Can't Ignore
From Everand
Rise of ISIS: A Threat We Can't Ignore
Jay Sekulow
3.5/5 (143)
Manhattan Beach: A Novel
From Everand
Manhattan Beach: A Novel
Jennifer Egan
3.5/5 (901)
John Adams
From Everand
John Adams
David McCullough
4.5/5 (2530)
The Light Between Oceans: A Novel
From Everand
The Light Between Oceans: A Novel
M L Stedman
4.5/5 (790)
9 and 10 Experiment
PDF
No ratings yet
9 and 10 Experiment
20 pages
Unit-1 WAD
PDF
No ratings yet
Unit-1 WAD
13 pages
Psychology Class 12 CBSE & MTP-1
PDF
No ratings yet
Psychology Class 12 CBSE & MTP-1
21 pages
Chapter - 3 Practice Paper
PDF
No ratings yet
Chapter - 3 Practice Paper
12 pages
The Unwinding: An Inner History of the New America
From Everand
The Unwinding: An Inner History of the New America
George Packer
4/5 (45)
Little Women
From Everand
Little Women
Louisa May Alcott
4/5 (105)
The Constant Gardener: A Novel
From Everand
The Constant Gardener: A Novel
John le Carré
3.5/5 (109)
Related titles
Click to expand Related Titles
Carousel Previous
Carousel Next
The Subtle Art of Not Giving a F*ck: A Counterintuitive Approach to Living a Good Life
From Everand
The Subtle Art of Not Giving a F*ck: A Counterintuitive Approach to Living a Good Life
Principles: Life and Work
From Everand
Principles: Life and Work
The Gifts of Imperfection: Let Go of Who You Think You're Supposed to Be and Embrace Who You Are
From Everand
The Gifts of Imperfection: Let Go of Who You Think You're Supposed to Be and Embrace Who You Are
Never Split the Difference: Negotiating As If Your Life Depended On It
From Everand
Never Split the Difference: Negotiating As If Your Life Depended On It
The Glass Castle: A Memoir
From Everand
The Glass Castle: A Memoir
Grit: The Power of Passion and Perseverance
From Everand
Grit: The Power of Passion and Perseverance
Sing, Unburied, Sing: A Novel
From Everand
Sing, Unburied, Sing: A Novel
The Perks of Being a Wallflower
From Everand
The Perks of Being a Wallflower
Shoe Dog: A Memoir by the Creator of Nike
From Everand
Shoe Dog: A Memoir by the Creator of Nike
Her Body and Other Parties: Stories
From Everand
Her Body and Other Parties: Stories
Hidden Figures: The American Dream and the Untold Story of the Black Women Mathematicians Who Helped Win the Space Race
From Everand
Hidden Figures: The American Dream and the Untold Story of the Black Women Mathematicians Who Helped Win the Space Race
The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers
From Everand
The Hard Thing About Hard Things: Building a Business When There Are No Easy Answers
Steve Jobs
From Everand
Steve Jobs
Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future
From Everand
Elon Musk: Tesla, SpaceX, and the Quest for a Fantastic Future
The Emperor of All Maladies: A Biography of Cancer
From Everand
The Emperor of All Maladies: A Biography of Cancer
Brooklyn: A Novel
From Everand
Brooklyn: A Novel
A Man Called Ove: A Novel
From Everand
A Man Called Ove: A Novel
Angela's Ashes: A Memoir
From Everand
Angela's Ashes: A Memoir
The Art of Racing in the Rain: A Novel
From Everand
The Art of Racing in the Rain: A Novel
The Yellow House: A Memoir (2019 National Book Award Winner)
From Everand
The Yellow House: A Memoir (2019 National Book Award Winner)
The Little Book of Hygge: Danish Secrets to Happy Living
From Everand
The Little Book of Hygge: Danish Secrets to Happy Living
The World Is Flat 3.0: A Brief History of the Twenty-first Century
From Everand
The World Is Flat 3.0: A Brief History of the Twenty-first Century
Bad Feminist: Essays
From Everand
Bad Feminist: Essays
Yes Please
From Everand
Yes Please
Devil in the Grove: Thurgood Marshall, the Groveland Boys, and the Dawn of a New America
From Everand
Devil in the Grove: Thurgood Marshall, the Groveland Boys, and the Dawn of a New America
The Outsider: A Novel
From Everand
The Outsider: A Novel
The Woman in Cabin 10
From Everand
The Woman in Cabin 10
A Tree Grows in Brooklyn
From Everand
A Tree Grows in Brooklyn
The Sympathizer: A Novel (Pulitzer Prize for Fiction)
From Everand
The Sympathizer: A Novel (Pulitzer Prize for Fiction)
Team of Rivals: The Political Genius of Abraham Lincoln
From Everand
Team of Rivals: The Political Genius of Abraham Lincoln
A Heartbreaking Work Of Staggering Genius: A Memoir Based on a True Story
From Everand
A Heartbreaking Work Of Staggering Genius: A Memoir Based on a True Story
Wolf Hall: A Novel
From Everand
Wolf Hall: A Novel
On Fire: The (Burning) Case for a Green New Deal
From Everand
On Fire: The (Burning) Case for a Green New Deal
Fear: Trump in the White House
From Everand
Fear: Trump in the White House
Rise of ISIS: A Threat We Can't Ignore
From Everand
Rise of ISIS: A Threat We Can't Ignore
Manhattan Beach: A Novel
From Everand
Manhattan Beach: A Novel
John Adams
From Everand
John Adams
The Light Between Oceans: A Novel
From Everand
The Light Between Oceans: A Novel
9 and 10 Experiment
PDF
9 and 10 Experiment
Unit-1 WAD
PDF
Unit-1 WAD
Psychology Class 12 CBSE & MTP-1
PDF
Psychology Class 12 CBSE & MTP-1
Chapter - 3 Practice Paper
PDF
Chapter - 3 Practice Paper
The Unwinding: An Inner History of the New America
From Everand
The Unwinding: An Inner History of the New America
Little Women
From Everand
Little Women
The Constant Gardener: A Novel
From Everand
The Constant Gardener: A Novel