What is Java technology?
Java (version 2) is an object-oriented programming language and a programming platform developed by Sun Microsystems. Java technology is based on the concept of a single Java Virtual Machine (JVM). JVM is a translator between programming languages and underlying software and hardware of machines. All implementations of the programming language must simulate JVM so that Java programs can run on any system with the JVM version. Java programming languages are different, because Java programs need to be compiled (translated as an intermediate language called Java bytecode) and interpreted (analyzed and run bytecode through JVM ). The compilation is only performed once, while the explanation is performed every time the program is run. The compiled bytecode is the best machine code form of JVM, and the interpreter is the implementation of JVM. The Java platform has three versions (see the following Java platform versions). The platform consists of JVM and Java application programming interface (API, java APIs are a collection of ready-made software components that facilitate the development and deployment of applets and applications, including robust, secure, and interoperable enterprise applications. Java APIs are grouped into libraries of related classes and interfaces. These libraries are called packages.
To learn about the future development direction of Sun's Java programming language, read technical keynote digest of 2003 javaone Developer Conference.
Multiple Java versions
With the rapid popularization of Java technology, developers strongly demand something simpler. Sun Microsystems meets this requirement by creating three Java platform versions: Standard Edition, Enterprise Edition, and Micro Edition.
- J2SE (Java 2 Standard Edition)
Standard Java 2 sdks, tools, runtime environments, and APIs are provided for developers who use Java programming languages to compile, deploy, and run applets and applications. Merlin's magic column provides an excellent introduction to the latest J2SE 1.4 version.
2. J2EE (Java 2 Enterprise Edition)
By providing a complete set of services for these components based on standardized module components and Automatically Processing many details of application behavior without complex programming, the Enterprise Edition simplifies the construction and deployment of multi-layer enterprise applications. The J2EE explorer column will help you understand this version.
3. J2EE (Java 2 Micro Edition)
This version is a highly optimized Java Runtime Environment. It targets a range of small devices, such as smart phones, pagers, and set-top boxes (small shapes or limited storage capabilities) in specific consumer domains ). For more information about the agent, see section 101 "Introduction to the MIDP high-level UI. (You can also find a lot of j2's references on the developerWorks wireless topic .)
Why is Java Technology important?
In general, the main advantage of Java is the portability of cross-platform and operating systems, and it can be provided through channels with relatively narrow bandwidth (such as dial-up connections ). The Java language is also scalable; existing applications can easily adapt to devices subject to memory resource restrictions. In addition, because Java is designed to run in a secure way through the network, it also provides this level of security when operating over the Internet. Essentially, Java technology extends users' computing capabilities from desktops to Web resources.
To top
What is Java component technology?
Alphabet soup, which manages the acronyms of Java technology, may be a huge task, just as the development of managing the Java language through Java Community Process. The following is a list of components, optional packages, and extension packages of each Java language version (that is, the complex components that constitute the Platform), and provides a brief description and Reference Links, it is used to describe its role in the Java development field. Note that many of the following references can be used in different versions.
Technology in J2SE:
Java Access Bridge is used for Microsoft Windows. It acts as a Bridge and allows Windows-based auxiliary technologies to interact with Java Accessibility APIs (see "accessible encoding ".)
JavaBeans Component Architecture is a platform-independent specification. It defines a set of standard Component software APIs for the Java platform. (See "Reflecting, introspecting, and customizing JavaBeans ".)
Javadoc is a tool used to generate an API document in HTML format from the doc comments of the source code. (See "Java Theory and Practice: Do I have to document those contents ?".)
Java Foundation Classes (Swing) (JFC) is a collection of Java class libraries. It supports building GUI and graphical functions for Java-based client applications. (See "Java 2 User Interface ".)
Java platform debugger architecture (JPDA) is the infrastructure supporting Java 2 debugging. JPDA includes three layers of Apis:
Jdi (Java debug Interface) is a high-level programming language interface that supports remote debugging.
Jdwp (Java debug wire protocol) defines the information transmitted between the debugging process and the debugger front-end and the request format.
Jvmdi (Java Virtual Machine debug Interface) is a low-level local interface that defines the services that the JVM must provide during debugging.
(See "The Future of Software Development ".)
Java 2D API is a class set used for advanced 2D graphics and imaging (widely supported for image synthesis and alpha channel images). It is a class set that provides correct color space definition and conversion, is a set of display-oriented imaging operators. (See "Java 2D Introduction ".)
Java Web Start allows you to download and start fully functional applications (such as workbooks) by clicking without having to go through the installation process, thus simplifying the deployment of Java applications. (See "Java Web Start ".)
Java database connectivity (JDBC) is an API that enables you to access most table-based data sources from Java. It provides cross-DBMS connectivity for most SQL databases, and access to other table-based data sources (such as workbooks or flat files ). (See "what are the new features of JDBC 3.0 ".)
Remote Method Invocation (RMI) provides the bootstrap Naming Service without changing the type, and uses Object serialization to enable programmers to create Java-based distributed applications. In this application, remote Java object methods can be called from other Java virtual machines on different hosts. (See tutorial "distributed object 101-use RMI and CORBA ".)
Java Advanced Imaging (JAI) is an API that provides a set of object-oriented interfaces that support simple Advanced programming models, allowing developers to easily manipulate images. (See "Using JSP code to manage your images ".)
Java Authentication and Authorization Service (JAAS) is a package that enables services. By implementing the Java version of the standard Pluggable Authentication Module (PAM) framework, it supports user-based Authorization, verify the user and perform access control. (See "Java security part 2 authentication and authorization" in the tutorial. "extended JAAS implementation class instance-level authorization" is also a good source of information .)
Java Cryptography Extension (JCE) is a collection of packages. It provides a framework and implementation of encryption, key generation, protocol, and Message Authentication Code (MAC) algorithms. It supports symmetric, asymmetric, grouped, and stream password encryption, and supports Secure streams and sealed objects. (See "Java security, Part 1 cryptography basics ".)
Java Data Objects (JDO) is a persistent Java model abstraction based on standard interfaces. It allows programmers to directly store Java domain model instances to persistent storage (databases, it may replace methods such as direct file input/output, serialization, JDBC and EJB Bean Managed Persistence (BMP) or Container Managed Persistence (CMP) Entity Bean. (Refer to the "Java data object machine practices" tutorial ".)
Java Management Extensions (JMX) provides tools for building distributed, Web-based, modular, and dynamic applications to manage and monitor devices, applications, and service-driven networks. (See "from black box to Enterprise, Part 1: management, JMX 1st style" composed of three parts ".)
Java Media Framework (JMF) allows audio, video, and other time-based Media to be added to Java applications and applets. (See the "Java Media Framework basics" tutorial ".)
Java Naming and Directory Interface (JNDI) is a standard extension package that provides Java applications with unified interfaces for multiple Naming and Directory services in an enterprise, allows different types of enterprise naming and seamless connectivity of directory services. (See "EJB best practices: JNDI optimization of industrial strength ".)
Java Secure Socket Extensions (JSSE) is a collection of packages that enable Secure Internet communication and implement SSL (Secure Sockets Layer) and Transport Layer Security (Transport Layer Security) protocols in Java, it also includes data encryption, server verification, message integrity, and optional client verification features. (See the tutorial "using JSSE for Secure Socket Communication ".)
Java Speech API (JSAPI) allows Java applications to merge Speech technology into user interfaces. JSAPI defines cross-platform APIs to Support Command and Control recognition programs, dictation systems, and speech synthesizer. (See The "The Java 2 user interface" section .)
Java 3D is an API that provides a set of object-oriented interfaces that support simple advanced programming models, developers can use it to easily merge scalable, platform-independent 3D graphics into Java applications. (See the tutorial "Java 3D Adventure ".)
Technology in J2EE:
Java API for XML Processing (JAXP) enables developers to flexibly exchange between XML processor programs by parsing and transforming XML documents that are not implemented by specific XML Processing, without changing the application code, you can use DOM, SAX, and XSLT to process XML documents. (See "using Java to program online XML data ".)
Java API for XML Registries (JAXR) provides unified and standard APIs for accessing different types of XML registration centers (for building, deploying, and discovering the available infrastructure of Web Services ). (See Java technical standards .)
Java API for XML-based RPC (JAX-RPC) enables developers to develop SOAP-based, interoperable and portable Web Services. (See Java technical standards .)
The SOAP with Attachments API for Java (SAAJ) enables developers to produce and consume messages that comply with the SOAP 1.1 specifications and SOAP with Attachments annotations. (For more information about XML technology, see the developerWorks XML area .)
Common Object Request Broker Architecture (CORBA) is an open standard for Heterogeneous Computing. By providing a distributed Object framework, services supporting this framework, and interoperability with other languages, this standard supplements Java. (Refer to the Tutorial "using RMI and CORBA"; "RMI-IIOP in enterprise" is also a good source of information ).
ECperf is a benchmark for measuring the performance and scalability of Web business systems. It includes: EJB components that form applications; Web clients that use JSP for single user/Interaction tests; pattern scripts and loading programs; makefile and deployment descriptor; it is used to implement running rules and simulate the driver loaded by the client. (See Java technical standards .)
Enterprise JavaBeans (EJB) is a technology that provides support for services such as transactions, security, and database connectivity. It uses component models to simplify the deployment of middleware applications. (Refer to the "Enterprise JavaBean basics" tutorial on this technology, and refer to the EJB best practices in a series of articles .)
Java Authorization Contract for Containers (Java ACC) is a specification that defines the installation and configuration of the Authorization provider used by the container. Java ACC defines the interfaces required by the provider to allow container deployment tools to create and manage a set of permissions that correspond to roles. (See the "Developing accessible GUIs with Swing" tutorial ".)
JavaMail is an API that provides a set of abstract classes for simulating mail systems. (See the "JavaMail API basics" tutorial ".)
Java Message Service (JMS) is an API used to add a provider framework. By defining a public set of message concepts and programming policies supported by all message systems compatible with the JMS technology, this framework enables the deployment of portable and message-based applications for the Java platform. (See "Implementing a supplier-independent JMS solution ".)
Assumerver Faces provides a programming model that integrates reusable UI components on the page, connects these components to application data sources, and writes client-generated events to server-side event handlers, this model helps developers develop Web applications. (See "JSP pages, evolving and contributing to Web services ".)
Web developers can use a separate user interface and content generation function to quickly develop and easily maintain dynamic and platform-independent Web Pages, in this way, the designer can change the page layout without changing the dynamic content. This technology uses labels similar to XML, which encapsulate the logic used to generate page content. (Refer to the "JSP Technology Entry" tutorial and the JSP best practices in a series of articles .)
Java Servlets is a Java method that extends and enhances Web server functions. To achieve this, we should provide component-based platform independent methods for Building Web-based applications without the performance restrictions of CGI programs. (DeveloperWorks has a lot of servlet Information. The "create Java HTTP Servlet" and "build Servlet with session tracking" tutorials should be the best starting point .)
J2EE Connector Architecture defines a standard Architecture that allows the EIS supplier to provide standard resource adapters inserted into the application server by defining a set of scalable and secure transactional mechanisms, this architecture is used to connect the J2EE platform to the heterogeneous Enterprise Information Systems (EIS ). (See the "Introduction to J2EE ctor Architecture" tutorial ".)
J2EE Management Specification (JMX) defines the Management Information Model of the J2EE platform. This Model is designed for interoperability with many Management systems and protocols, including standard ing to models of Common Information Model (CIM) and SNMP Management Information Base (MIB, and the standard ing from the server-resident EJB Component (J2EE Management EJB Component, MEJB) to the Java object model. (See "from black box to Enterprise, Part 1: management, JMX 1st style ".)
Java Transaction API (JTA) is a high-level implementation and protocol-independent API that allows applications and application servers to access transactions. Java Transaction Service (JTS) specifies the implementation of Transaction Manager. Transaction Manager supports JTA and implements Java ing of OMG Object Transaction Service (OTS) 1.1 standards at a lower API level. JTS uses Internet Inter-ORB Protocol (IIOP) to transfer transactions. (See "Understanding JTS-balancing security and performance ".)
The technologies in j2s:
Connected Limited Device Configuration (CLDC) is one of the two configurations that constitute the Java Runtime Environment of resource-Limited mobile information devices. CLDC provides the most basic library set and virtual machine functions. These are required in every implementation of the k Virtual Machine (KVM) j2_environment. (See "Know no limits: Approaches to mobile device constraints ")
Mobile Information Device Profile (MIDP) is one of the two configurations that constitute the Java Runtime Environment of Mobile Information devices with limited resources. MIDP provides core application functions, including user interfaces, network connectivity, local data storage, and application lifecycle management. (See "Implementing Push technology with j2-midp" in the tutorial ".)
Connected Device Configuration (CDC) is a standard-based framework used to build and provide applications that can be shared between many network connection consumers and embedded devices. (For details, see "Securing wireless J2EE ".)
The developerWorks Wireless technology area contains several articles and tutorials on the technologies related to j2s.
Java Network Technology:
JAIN APIs is a set of Java-based APIs for rapid development of next-generation telecom products and services. (See Java technical standards .)
Java Metadata Interface (JMI) is a dynamic and platform-independent Infrastructure specification that allows Metadata creation, storage, access, discovery, and exchange. This specification is based on the Object Management Group (OMG) Meta Object Facility (MOF) specification and consists of a Group of basic Modeling artifacts described by the Unified Modeling Language (UML. (See Java technical standards .)
JavaGroups is a software toolkit (API library) used to design, implement, and experiment using distributed system solutions. (See "High-impact Web tier clustering, Part 1" and Part 2 .)
Jini is an open architecture used to create highly adaptive network-centric services for hardware and software. The Jini system architecture consists of three categories: programming model, infrastructure, and service. (See "Jini networking technology, the next step ".)
JXTA is a group of open protocols that allow all connected devices on the network to communicate and collaborate in P2P mode. The JXTA peer creates a virtual network in which any peer can directly interact with other peers or resources, even when some peers and resources are behind the firewall or NAT, or are in different network transmission. (See "Making P2P interoperable: The JXTA story ".)
To top
How can Java be associated with Web Services?
Web services are a technology that allows you to define business rules and processes using XML, so that software applications can communicate in a way independent of Taiwan independence and programming languages. XML technology allows data to be transplanted to facilitate message creation, while Java technology allows code to be transplanted. In fact, XML and Java can be well combined to form a perfect combination of Web Services.
For more information:
The "Web services beginner's portal" and "XML beginner's portal" on developerWorks will help you understand these complex technologies.
How to Improve Java programming skills?
There are two ways to improve your skills: select a course (to obtain a certificate or to learn only) or learn by yourself (of course you need to write code to practice ). In addition to drawing on the knowledge of experienced developers, obtaining a certificate can also provide authentic evidence to future employers to prove that you have the skills required to build the technology they require. By experimenting with your skills and using available resources, you can improve your skills in different fields of Java technology. The following references should be helpful for both methods.
For more information:
To get a full introduction to the Java language, the basic tutorial of the Java language is a good starting point.
If the basic tutorial looks complicated, you can try Robocode. Robocode is an easy-to-use robot War simulation program built based on Java technology. It provides pure entertainment while teaching you how to program. To get an introduction to Robocode, read "click it to hit Robocode !"
If you are a C/C ++ programmer and are not familiar with Java, the "Java programming for C/C ++ developers" tutorial compares and compares Java programming concepts with C/C ++ programming concepts to help you get started with Java.
This article is a step-by-step guide to help you prepare for the SCJP exam, that is, the Sun Certified Java Programmer Certificate exam.
IBM provides professional certification in WebSphere development (for Enterprise Java applications), DB2, XML, e-commerce, and Linux related technologies.
If you have never heard of XP or XP, it is an application design concept, it combines Continuous testing, writing tests before coding, field customer input, refactoring (improving code without changing functions), etc, this article provides an excellent tool for compiling Java applications. (Unveil the mysteries of extreme programming: Repeat the "XP essence", which describes in detail how to practice .)
Converting design theories into practical applications is the starting point of the Java theory and practice series.
Java programmers are aware of the use of integrated bug detection and testing for programming, so use Java debugging to improve your debugging skills. In addition, developerWorks provides a column set about Java debugging (mainly known as a tool for bug pattern), known as diagnosing Java code.
DeveloperWorks provides a large number of Java-based tutorials, which are the best learning experience for the next generation of code writing.
For more interactive methods to learn how to use the Java language, please join the Java Forum, hosted by a famous expert with many years of Java-related technical development experience.
What IBM tools and products can Java programmers use?
As a top innovator in the use of Java technology, IBM is at the forefront. You can view the Java technology downloads and products Page to obtain a complete list of tools and products. The following provides some important parts.
For more information:
Software Development Toolkit: a toolkit for building applications, a large number of tools used in a variety of Java-related technologies. The following are just a few of them:
IBM developer kits for Java technology, used to create and test Java applets and applications on some of the most common IBM platforms.
Agent Building and Learning Environment, used to develop Agent and Agent applications of hybrid intelligence software.
Emerging Technologies Toolkit provides advanced tools for Web service development in grid computing, asynchronous Web services, business processes, autonomous computing, and other services.
Toolkit for MPEG-4, Java classes, and a collection of APIs with simple applications, used to generate MPEG-4 content for use with devices compatible with MPEG-4.
Update Tool, a mechanism that allows users based on Java Desktop applications to easily upgrade.
Java technology on alphaWorks is a virtual repository of Java-related technologies generated by IBM, including APIs, integrated development environments and devkit, components, Reference implementations and utilities.
Java development tools of WebSphere series:
Application Server.
Branch Transformation Toolkit for WebSphere Studio, formerly known as WebSphere Business Components Composer, is a group of tools, Components, and services used to accelerate the construction of multi-channel banking applications that access the transaction system.
MQ is an application programming service that allows applications to communicate with each other.
MQ Everyplace allows you to access enterprise data of mobile workers and remote devices by using the provided message.
Business Integration Message Broker helps direct information to the location and time needed, and helps access company data, regardless of the data format.
SDK for Web Services.
Studio Site Developer provides a development environment for building and maintaining dynamic Web sites, Web Services, and Java applications.
Studio Application Developer is an integrated development environment for Web-based applications.