Category:Java platform

Pages in this category should be moved to subcategories where applicable. This category may require frequent maintenance to avoid becoming too large. It should directly contain very few, if any, pages and should mainly contain subcategories.

1.
Java (software platform)
–
Java is used in a wide variety of computing platforms from embedded devices and mobile phones to enterprise servers and supercomputers. While they are less common than standalone Java applications, Java applets run in secure, sandboxed environments to provide many features of native applications, in addition, several languages have been designed to run natively on the JVM, including Scala, Clojure and Apache Groovy. Java syntax borrows heavily from C and C++, but object-oriented features are modeled after Smalltalk, Java eschews certain low-level constructs such as pointers and has a very simple memory model where every object is allocated on the heap and all variables of object types are references. Memory management is handled through integrated automatic garbage collection performed by the JVM, on November 13,2006, Sun Microsystems made the bulk of its implementation of Java available under the GNU General Public License. The latest version is Java 8, the only supported version as of 2016, Oracle has announced that using older versions of their JVM implementation presents serious risks due to unresolved security issues. The Java platform is a suite of programs that facilitate developing and running programs written in the Java programming language. A Java platform will include an engine, a compiler. Java ME, Specifies several different sets of libraries for devices with limited storage, display and it is often used to develop applications for mobile devices, PDAs, TV set-top boxes, and printers. Java SE, For general-purpose use on desktop PCs, servers, Java EE, Java SE plus various APIs which are useful for multi-tier client–server enterprise applications. The Java platform consists of programs, each of which provides a portion of its overall capabilities. For example, the Java compiler, which converts Java source code into Java bytecode, is provided as part of the Java Development Kit, the Java Runtime Environment, complementing the JVM with a just-in-time compiler, converts intermediate bytecode into native machine code on the fly. The Java platform also includes a set of libraries. The heart of the Java platform is the concept of a machine that executes Java bytecode programs. This bytecode is the same no matter what hardware or operating system the program is running under, there is a JIT compiler within the Java Virtual Machine, or JVM. The JIT compiler translates the Java bytecode into native processor instructions at run-time, the use of bytecode as an intermediate language permits Java programs to run on any platform that has a virtual machine available. Since JRE version 1.2, Suns JVM implementation has included a just-in-time compiler instead of an interpreter, although Java programs are cross-platform or platform independent, the code of the Java Virtual Machines that execute these programs is not. Every supported operating platform has its own JVM, in most modern operating systems, a large body of reusable code is provided to simplify the programmers job. This code is provided as a set of dynamically loadable libraries that applications can call at runtime

2.
Blu-ray
–
Blu-ray or Blu-ray Disc is a digital optical disc data storage format. It was designed to supersede the DVD format, in that it is capable of storing high-definition, the plastic disc is 120 mm in diameter and 1.2 mm thick, the same size as DVDs and CDs. Conventional Blu-ray Disc discs contain 25 GB per layer, with dual layer discs being the standard for feature-length video discs. Triple-layer discs and quadruple layers are available for BD-XL re-writer drives, the name Blu-ray refers to the blue laser used to read the disc, which allows information to be stored at a greater density than is possible with the longer-wavelength red laser used for DVDs. The main application of Blu-ray is as a medium for video material such as films and physical distribution of video games for the PlayStation 3, PlayStation 4. Besides the hardware specifications, Blu-ray is associated with a set of multimedia formats, high-definition video may be stored on Blu-ray discs with up to 2160p resolution, at up to 60 frames per second. DVD discs had been limited to a resolution of 480p or 576p. The BD format was developed by the Blu-ray Disc Association, a group representing makers of consumer electronics, computer hardware, Sony unveiled the first Blu-ray disc prototypes in October 2000, and the first prototype player was released in April 2003 in Japan. Afterwards, it continued to be developed until its release in June 2006. During the high definition disc format war, Blu-ray Disc competed with the HD DVD format. Toshiba, the company that supported HD DVD, conceded in February 2008. According to Media Research, high-definition software sales in the US were slower in the first two years than DVD software sales, Blu-ray faces competition from video on demand and the continued sale of DVDs. As of January 2016, 44% of U. S. broadband households had a Blu-ray player, the information density of the DVD format was limited by the wavelength of the laser diodes used. Following protracted development, blue laser diodes operating at 405 nanometers became available on a production basis, Sony started two projects in collaboration with Philips applying the new diodes, UDO, and DVR Blue, a format of rewritable discs that would eventually become Blu-ray Disc. The core technologies of the formats are similar, the first DVR Blue prototypes were unveiled at the CEATEC exhibition in October 2000 by Sony. A trademark for the Blue Disc logo was filed February 9,2001, on February 19,2002, the project was officially announced as Blu-ray Disc, and Blu-ray Disc Founders was founded by the nine initial members. The first consumer device arrived in stores on April 10,2003, the Sony BDZ-S77, but there was no standard for prerecorded video, and no movies were released for this player. On October 4,2004, the name Blu-ray Disc Founders was officially changed to the Blu-ray Disc Association, the Blu-ray Disc physical specifications were completed in 2004

3.
Java applet
–
A Java applet is a small application which is written in Java or another programming language that compiles to Java bytecode and delivered to users in the form of that bytecode. The user launches the Java applet from a web page, a Java applet can appear in a frame of the web page, a new application window, Suns AppletViewer, or a stand-alone tool for testing applets. Java applets were introduced in the first version of the Java language, Java applets are usually written in Java, but other languages such as Jython, JRuby, Pascal, Scala, or Eiffel may be used as well. Java applets run at very fast speeds and, until 2011, unlike JavaScript, Java applets had access to 3D hardware acceleration, making them well-suited for non-trivial, computation-intensive visualizations. As browsers have gained support for hardware-accelerated graphics thanks to the technology, as well as just-in-time compiled JavaScript. Since Javas bytecode is cross-platform, Java applets can be executed by browsers for many platforms, including Microsoft Windows, FreeBSD, Unix, macOS, Java applet technology has been marked for deprecation. The Applets are used to provide features to web applications that cannot be provided by HTML alone. They can capture mouse input. In response to actions, an applet can change the provided graphic content. This makes applets well-suited for demonstration, visualization, and teaching, there are online applet collections for studying various subjects, from physics to heart physiology. An applet can also be an area only, providing, for instance. If needed, an applet can leave the area and run as a separate window. Applets can also play media in formats that are not natively supported by the browser, pages coded in HTML may embed parameters within them that are passed to the applet. Because of this, the same applet may have a different appearance depending on the parameters that were passed, as applets were available before CSS and DHTML were standard, they were also widely used for trivial effects such as rollover navigation buttons. Heavily criticized, this usage is now declining, Java applets are executed in a sandbox by most web browsers, preventing them from accessing local data like the clipboard or file system. The code of the applet is downloaded from a web server, after which the browser either embeds the applet into a web page or opens a new window showing the user interface. A Java applet extends the class java. applet. Applet, or in the case of a Swing applet, the class which must override methods from the applet class to set up a user interface inside itself is a descendant of Panel which is a descendant of Container. As applet inherits from container, it has largely the same user interface possibilities as an ordinary Java application, the first implementations involved downloading an applet class by class. While classes are small files, there are many of them

4.
AgentSheets
–
AgentSheets is a Cyberlearning tool to teach students programming and related information technology skills through game design. AgentSheets is supported by a middle and high school curriculum called Scalable Game Design aligned with the ISTE National Educational Technology Standards, the curriculum is made available through the Scalable Game Design Wiki. Previous research has found that game design with AgentSheets is universally accessible across gender as well as ethnicity and is not limited to students interested in playing video games. The participation is high because most middle schools participating in the study have made Scalable Game Design a module that is part of existing required courses. Many of the middle schools all of their students in scalable game design reaching in some schools over 900 students per year. Of the well over 1000 students participating in the project in the first semester over 52% were girls, of the girls 85% enjoyed the scalable game design course and 78% would like to take another game design course. The built-in drag-and-drop language is accessible enough that students without programming background can make their own simple Frogger-like game, at the same time, AgentSheets is powerful enough to make sophisticated The Sims-like games with artificial intelligence. To transition from visual programming to more traditional programming students can render their games into Java source code, similar to a spreadsheet, an agentsheet is a computational grid. Unlike spreadsheets, this grid does not just contain numbers and strings and these agents are represented by pictures, can be animated, make sounds, react to mouse/keyboard interactions, can read web pages, can speak and even recognize speech commands. This grid is well suited to build computational science applications modeling complex scientific phenomena with up to tens of thousands of agents, the grid is useful to build agent-based simulations including cellular automata or diffusion-based models. These models are used in a variety of applications. Antiobjects The original goal of research was to explore new models of computational thinking. The first prototype of AgentSheets ran in 1989 at the University of Colorado, NCAR, the Connection Machine is a highly parallel computer with up to 65,536 CPUs. These rules can be created by programming by example, the user would tell the system to watch the train, the user would move the train on train track one step and stop recording, the system would create the rule allowing trains to follow train tracks. Agent-Based Graphical Rewrite Rules were later used in the KidSim/Cocoa/Creator kid programming tool. Semantic rewrite rules could interpret rules topologically, with a single rule a user could create a complete train that follows train track behavior. Programming by Analogous Examples, New behavior can be created through analogies, for instance the behavior of a car can be described as analogy to trains. A car moves on a road like a train on a train track, a challenge to this approach is conceptual exception handling

5.
Abstract Window Toolkit
–
The Abstract Window Toolkit is Javas original platform-dependent windowing, graphics, and user-interface widget toolkit preceding Swing. The AWT is part of the Java Foundation Classes — the standard API for providing a user interface for a Java program. AWT is also the GUI toolkit for a number of Java ME profiles, for example, Connected Device Configuration profiles require Java runtimes on mobile telephones to support abstract window toolkit. When Sun Microsystems first released Java in 1995, AWT widgets provided a level of abstraction over the underlying native user-interface. For example, creating an AWT check box would cause AWT directly to call the underlying native subroutine that created a check box, however, a check box on Microsoft Windows is not exactly the same as a check box on Mac OS or on the various types of Unix. Some application developers prefer this model because it provides a degree of fidelity to the underlying native windowing toolkit. However, some application developers dislike this model because they prefer their applications to look exactly the same on every platform, in J2SE1.2, the Swing toolkit largely superseded the AWTs widgets. In addition to providing a set of UI widgets, Swing draws its own widgets instead of relying on the operating systems high-level user interface module. Swing provides the option of using either the native look and feel or a cross-platform look. The AWT provides two levels of APIs, A general interface between Java and the system, used for windowing, events, and layout managers. This API is at the core of Java GUI programming and is used by Swing and Java 2D. awt. datatransfer package for use with the Clipboard and Drag. A basic set of GUI widgets such as buttons, text boxes and it also provides the AWT Native Interface, which enables rendering libraries compiled to native code to draw directly to an AWT Canvas object drawing surface. Neither AWT nor Swing are inherently thread safe, therefore, code that updates the GUI or processes events should execute on the Event dispatching thread. Failure to do so may result in a deadlock or race condition, to address this problem, a utility class called SwingWorker allows applications to perform time-consuming tasks following user-interaction events in the event dispatching thread. This problem was because the architecture of the two widget toolkits was very different, despite Swing borrowing heavyweight top containers from AWT. Starting in Java 6 Update 12, it is possible to mix Swing, a new project, Caciocavallo, has been created, that provides an OpenJDK-based Java API to ease AWT implementation on new systems. The project has successfully implemented AWT widgets using Java2D.3 or later, Java. awt Java SE8 AWT/Swing java. awt

6.
GNU Classpath
–
Not to be confused with the GPL linking exception. GNU Classpath is a project aiming to create a software implementation of the standard class library for the Java programming language. Despite the large size of the library to be created, the majority of the task is already done, including Swing, CORBA, the Classpath developers have implemented almost all of the classes from J2SE1.4 and 5.0. Classpath can thus be used to run popular Java-based software such as Vuze, GNU Classpath has been one of the high priority directions of the GNU Project. While the source code of the implementation from Sun Microsystems was available. This was an obstacle for many projects that could not progress without altering this code. The GNU Classpath development community includes institutions focused on research of Java virtual machines, GNU Classpath is a part of the Free Software Foundation. It was originally developed in parallel with libgcj due to license incompatibilities, GNU Classpath is licensed under the GNU General Public License with a linking exception. This is a software license. All code is owned by the Free Software Foundation. GNU Classpath is used by many free Java runtimes because every full-featured Java virtual machine must provide an implementation of the class libraries. Some other uses include, The GNU Compiler for Java, which is capable of compiling Java code into native standalone executables, gCJAppletViewer for launching Java applets from command line if they are not supported by the browser in use. IKVM. NET, which integrates Java with the. NET Framework JNode and this system is written in Java and assembler only. Specialised virtual machines such as Jaos for integration with the Oberon programming language, virtual machines for distributed computing with clusters, having up to 128 processors on Myrinet. The IcedTea project used GNU Classpath as a replacement for proprietary elements of OpenJDK, GNU Classpath development started in 1998 with five developers. During the history, it merged several times with other projects having similar goals, in the past, GNU Classpath supplied its own virtual machine. As Classpath was becoming a library, shared with a lot of different projects. After implementing the majority of the official Java 1.4 API, on October 24,2006, the implementation of the last missing 1.4 class, HTMLWriter, was committed

7.
Java 3D
–
Java 3D is a scene graph based 3D application programming interface for the Java platform. It ran atop either OpenGL or Direct3D until the version 1.6.0 which runs at the top of JOGL, since version 1.2, Java 3D has been developed under the Java Community Process. A Java 3D scene graph is an acyclic graph. Compared to other solutions, Java 3D is not only a wrapper around these graphics APIs, here a scene is constructed using a scene graph that is a representation of the objects that have to be shown. This scene graph is structured as a tree containing several elements that are necessary to display the objects, additionally, Java 3D offers extensive spatialized sound support. Java 3D and its documentation are available for download separately and they are not part of the Java Development Kit. Intel, Silicon Graphics, Apple, and Sun all had retained mode scene graph APIs under development in 1996, since they all wanted to make a Java version, they decided to collaborate in making it. Development was underway already in 1997, a public beta version was released in March 1998. The first version was released in December 1998, from mid-2003 through summer 2004, the development of Java 3D was discontinued. In the summer of 2004, Java 3D was released as a community source project, and Sun and volunteers have since been continuing its development. On January 29,2008, it was announced that improvements to Java 3D would be put on hold to produce a 3D scene graph for JavaFX JavaFX with 3D support was released with Java 8. The JavaFX 3D graphics functionality has more or less come to supersede Java 3D, since February 28,2008, the entire Java 3D source code is released under the GPL version 2 license with GPL linking exception. Since February 10,2012, Java 3D uses JOGL2.0 for its hardware accelerated OpenGL rendering, in addition to those, many other C or C++ scene graph APIs offer Java support through JNI. At a lower level, the JOGL OpenGL bindings for Java are an alternative to scene graph APIs such as Java 3D. - Places for collaboration, includes lists of books and users, faq, tutorial, examples and information OpenGL. J3D Java 3D Tutorials Lecture. - From Siggraph for beginners Game Programming, in Java 3D Plugin for Eclipse hosted by SourceForge Example visualisation applets using Java 3D EMAP, - A 3D anatomical structure explorer with embedded 2D section made by Guangjie Feng

8.
Batik (software)
–
Batik is a pure-Java library that can be used to render, generate, and manipulate SVG graphics. IBM supported the project and then donated the code to the Apache Software Foundation, the Batik distribution also contains a ready-to-use SVG browser making use of the above modules. The name of the library comes from the Batik painting technique, Batik was long the most conformant existing SVG1.1 implementation and as of 2011 is just a small fraction behind Opera. The latest 1.2 late October 2004 working draft

9.
Apache Kafka
–
Apache Kafka is an open-source stream processing platform developed by the Apache Software Foundation written in Scala and Java. The project aims to provide a unified, high-throughput, low-latency platform for handling real-time data feeds, additionally, Kafka connects to external systems via Kafka Connect and provides Kafka Streams, a Java stream processing library. The design is influenced by transaction logs. Apache Kafka was originally developed by LinkedIn, and was open sourced in early 2011. Graduation from the Apache Incubator occurred on 23 October 2012, in November 2014, several engineers who worked on Kafka at LinkedIn created a new company named Confluent with a focus on Kafka. Monitoring end-to-end performance requires tracking metrics from brokers, consumer, and producers, there are currently several monitoring platforms to track Kafka performance, both open-source, like LinkedIns Burrow, as well as paid, like Datadog. In addition to platforms, collecting Kafka data can also be performed using tools commonly bundled with Java. Apache Kafka website Discussion of projects design Github mirror Apache Kafka presentation by Morten Kjetland LinkedIn open sourcing announcement