This popular tutorial "from the Source" has been completely revised and updated to cover Version 6 of the Java Platform, Standard Edition. Written by members of the Java Software team at Sun Microsystems, this book uses a tested, interactive approach and features real-world problems that help you learn the Java platform by example. New to this edition are chapters on generics, collections, Java Web Start, the platform environment, and regular expressions. A new appendix contains information on how to prepare for the Java Programming Language Certification exam. All of the popular features that made this book a classic have been retained, including convenient summaries at the end of each section and Questions and Exercises segments to help you practice what you learn. It is the official place to go for complete, expert, and definitive information on Java technology.
|Published (Last):||20 October 2015|
|PDF File Size:||4.9 Mb|
|ePub File Size:||9.57 Mb|
|Price:||Free* [*Free Regsitration Required]|
In programming, the term Java is used for a. There are many different languages running on the java platform, and the Java Language is the one that most often used. Java is used in a wide variety of computing platforms spanning from embedded devices and cell phones on the low end to enterprise servers and super computers on the high end.
Java is fairly ubiquitous in cell phones, Web servers and enterprise applications, and somewhat less common in desktop applications, though users may have come across Java applets when browsing the Web.
For years, Sun Microsystems referred to Java as the "Java technology" but has used the word "Java" as an adjective about the technology. In practice, many programmers have used the word "Java" to mean the programming language, while the execution platform was called the "JRE" Java Runtime Environment and the compiler-system was called the "JDK" Java Development Kit , rather than a "Java compiler" as such.
The word "Java" has often been used as an adjective, but the formal term "Java technology" should be noted see history below. Java Language: Java is an object-oriented programming language developed by James Gosling and colleagues at Sun Microsystems in the early s.
Unlike conventional languages which are generally either designed to be compiled to native machine code, or interpreted from source code at runtime, Java is intended to be compiled to a bytecode though can be compiled to native code with gcj which is then run generally using JIT compilation by a Java virtual machine.
It became popular quickly. Sun has not announced any plans for a "Java 3". Sun makes most of its Java implementations available without charge, with revenue being generated by specialized products such as Java Enterprise System. There were five primary goals in the creation of the Java language: 1.
It should use the object-oriented programming methodology. It should allow the same program to be executed on multiple operating systems. It should contain built-in support for using computer networks. It should be designed to execute code from remote sources securely. It should be easy to use by selecting what was considered the good parts of other object-oriented languages.
The first characteristic, object orientation "OO" , refers to a method of programming and language design. Although there are many interpretations of OO, one primary distinguishing idea is to design software so that the various types of data it manipulates are combined together with their relevant operations.
Thus, data and code are combined into entities called objects. An object can be thought of as a self-contained bundle of behavior code and state data. The principle is to separate the things that change from the things that stay the same; often, a change to some data structure requires a corresponding change to the code that operates on that data, or vice versa.
The intent is to make large software projects easier to manage, thus improving quality and reducing the number of failed projects. Another primary goal of OO programming is to develop more generic objects so that software can become more reusable between projects. A generic "customer" object, for example, should in theory have roughly the same basic set of behaviors between different software projects, especially when these projects overlap on some fundamental level as they often do in large organizations.
In this sense, software objects can hopefully be seen more as pluggable components, helping the software industry build projects largely from existing and well-tested pieces, thus leading to a massive reduction in development times. Software reusability has met with mixed practical results, with two main difficulties: the design of truly generic objects is poorly understood, and a methodology for broad communication of reuse opportunities is lacking. Some open source communities want to help ease the reuse problem, by providing authors with ways to disseminate information about generally reusable objects and object libraries.
Unlike conventional languages which are generally either designed to be compiled to native machine code, or interpreted from [[source code]] at [[runtime]], Java is intended to be compiled to a [[Byte-code bytecode]] though can be compiled to native code with [[gcj]] which is then run generally using [[JIT compilation]] by a [[Java virtual machine]].
Thus, data and code are combined into entities called [[Object computer science objects]]. In this sense, software objects can hopefully be seen more as pluggable [[software componentry components]], helping the software industry build projects largely from existing and well-tested pieces, thus leading to a massive reduction in development times. Some [[Open source Innovation communities open source communities]] want to help ease the reuse problem, by providing authors with ways to disseminate information about generally reusable objects and object libraries.
One should be able to write a program once and run it anywhere. This is achieved by most Java [[compiler]]s by compiling the Java language code "halfway" to [[bytecode]] specifically [[Java bytecode]] —simplified machine instructions specific to the Java platform. The code is then run on a [[virtual machine]] VM , a program written in native code on the host hardware that [[Interpreter computing interprets]] and executes generic Java bytecode.
Further, standardized libraries are provided to allow access to features of the host machines such as graphics, [[thread computer science threading]] and [[Computer network networking]] in unified ways.
There are also implementations of Java compilers that compile to native [[object code]], such as [[GCJ]], removing the intermediate bytecode stage, but the output of these compilers can only be run on a single [[Computer architecture architecture]].
This resulted in a legal dispute with Microsoft after Sun claimed that the Microsoft implementation did not support the RMI and JNI interfaces and had added platform-specific features of their own. In response, Microsoft no longer ships Java with Windows, and in recent versions of Windows, Internet Explorer cannot support Java applets without a third-party plugin. However, Sun and others have made available Java run-time systems at no cost for those and other versions of Windows. The first implementations of the language used an interpreted virtual machine to achieve [[Porting portability]].
More recent JVM implementations produce programs that run significantly faster than before, using multiple techniques. The first technique is to simply compile directly into native code like a more traditional compiler, skipping bytecodes entirely.
This achieves good performance, but at the expense of portability. Dynamic recompilation can achieve optimizations superior to static compilation because the dynamic compiler can base optimizations on knowledge about the runtime environment and the set of loaded classes.
JIT compilation and dynamic recompilation allow Java programs to take advantage of the speed of native code without losing portability. Platform-independent Java is however very successful with server-side applications, such as [[Web service]]s, [[servlet]]s, and [[Enterprise JavaBean]]s, as well as with [[Embedded system]]s based on [[OSGi]], using [[Embedded Java]] environments. In some languages the programmer allocates memory to create any object stored on the [[heap programming heap]] and is responsible for later manually deallocating that memory to delete any such objects.
If a programmer forgets to deallocate memory or writes code that fails to do so in a timely fashion, a [[memory leak]] can occur: the program will consume a potentially arbitrarily large amount of memory. In addition, if a region of memory is deallocated twice, the program can become unstable and may crash. Finally, in non garbage collected environments, there is a certain degree of overhead and complexity of user-code to track and finalize allocations.
Often developers may box themselves into certain designs to provide reasonable assurances that memory leaks will not occur. In Java, this potential problem is avoided by [[garbage collection computer science automatic garbage collection]]. The program or other objects can reference an object by holding a reference to it which, from a low-level point of view, is its address on the heap.
When no references to an object remain, the Java garbage collector automatically deletes the [[unreachable object]], freeing memory and preventing a memory leak. The use of garbage collection in a language can also affect programming paradigms. The use of transient immutable value-objects minimizes side-effect programming. In Java, garbage collection is built-in and virtually invisible to the developer. That is, developers may have no notion of when garbage collection will take place as it may not necessarily correlate with any actions being explicitly performed by the code they write.
Depending on intended application, this can be beneficial or diadvantageous: the programmer is freed from performing low-level tasks, but at the same time loses the option of writing lower level code.
Java Tutorial, The: A Short Course on the Basics, 4th Edition
This revised and updated edition introduces the new features added to the platform, including lambda expressions, default methods, aggregate operations, and more. An accessible and practical guide for programmers of any level, this book focuses on how to use the rich environment prov An accessible and practical guide for programmers of any level, this book focuses on how to use the rich environment provided by Java to build applications, applets, and components. Expanded coverage includes a chapter on the Date-Time API and a new chapter on annotations, with sections on type annotations and pluggable type systems as well as repeating annotations.
The Java Tutorial Fourth Edition
In programming, the term Java is used for a. There are many different languages running on the java platform, and the Java Language is the one that most often used. Java is used in a wide variety of computing platforms spanning from embedded devices and cell phones on the low end to enterprise servers and super computers on the high end. Java is fairly ubiquitous in cell phones, Web servers and enterprise applications, and somewhat less common in desktop applications, though users may have come across Java applets when browsing the Web. For years, Sun Microsystems referred to Java as the "Java technology" but has used the word "Java" as an adjective about the technology. In practice, many programmers have used the word "Java" to mean the programming language, while the execution platform was called the "JRE" Java Runtime Environment and the compiler-system was called the "JDK" Java Development Kit , rather than a "Java compiler" as such. The word "Java" has often been used as an adjective, but the formal term "Java technology" should be noted see history below.
The Java Tutorial : A Short Course on the Basics, 5/e
When I shared my collection of top 10 Java programming books, one of my readers asked me to share some free Java books as well. Doing a quick search on the internet reveals lots of free books, resource, and tutorials to learn Java. These books are an excellent resource for any Java beginners, as well as an experienced programmer, and since they are free, it makes absolute sense to have a look on this before buying any other book in Java. Though books like Effective Java or Java Concurrency in Practice are not free, they are worthy of every penny spent. All you need is an internet connection to download this books on your computer, laptop, iPhone or Android smartphone. No doubt a great guide for any Java programmer willing to learn Java 8 by himself. If you will follow examples given in his book, you will learn lambdas and Streams in real quick time.