dev:java

no way to compare when less than two revisions

Differences

This shows you the differences between two versions of the page.


Previous revision
Last revision
dev:java [2023/03/25 17:42] – [Benefits of Java] Henrik Yllemo
Line 1: Line 1:
 +<button type="primary" size="xs" icon="glyphicon glyphicon-bookmark">[[programming_lagugages| Programming Language]]</button> 
 +====== Java ======
 +
 +
 +<data programminglanguage>
 +Full Name: Java
 +Short Name: Java
 +Description: Designed to allow the creation of programs that can run on several different platforms.
 +Company: Oracle
 +Web: Yes
 +Mobile: Yes
 +Enterprise: Yes
 +Embedded : No
 +</data>
 +
 +<accordion>
 +<panel title='What is Java?'>
 +Java is a popular programming language and computing platform that was developed by Sun Microsystems and is now owned by Oracle. It is designed to be platform-independent and to run on a wide range of devices and operating systems.
 +</panel><panel title='What are some features of Java?'>
 +Java includes features such as automatic memory management, garbage collection, and a robust standard library. It also supports object-oriented programming, multithreading, and networking.
 +</panel><panel title='What platforms can Java be used on?'>
 +Java can be used on a wide range of platforms, including Windows, macOS, Linux, and mobile devices such as Android. It can also be used on embedded devices, such as those found in cars, appliances, and other consumer electronics.
 +</panel><panel title='What types of applications can be built with Java?'>
 +Java can be used to build a wide range of applications, including desktop applications, web applications, mobile apps, games, and more. It is particularly well-suited for building large-scale, enterprise-level applications.
 +</panel><panel title='Is Java difficult to learn?'>
 +Java is designed to be easy to learn for developers who are already familiar with programming concepts. However, like any programming language, it may take some time to become proficient in using Java effectively. There are many resources available to help developers learn Java, including online tutorials, books, and courses.
 +</panel><panel title='Is Java a popular language?'>
 +Yes, Java is a very popular language that is widely used in industry and academia. It is particularly popular in enterprise-level applications, where its reliability, scalability, and security are highly valued. The language has a large and active community of developers, which has contributed to its growth and success.
 +</panel></accordion>
 +
 +{{wp>Java_(programming_language)}}
 +
 +<callout type="" title="GitHub Topics" icon="fa fa-github">
 +  * https://github.com/topics/java
 +
 +Java was originally developed as an alternative to the C/C++ programming languages. It is now mainly used for building web, desktop, mobile, and embedded applications. Java is owned and licensed through Oracle, with free and open source implementations available from Oracle and other vendors.
 +</callout> 
 +
 +<callout type="" title="Free Programming Books" icon="fa fa-book">
 +  * [[http://www.mat.uniroma2.it/~picard/SMC/didattica/materiali_did/Java/Java_3D/Java_3D_Programming.pdf|3D Programming in Java]] - Daniel Selman (PDF)
 +  * [[http://ptgmedia.pearsoncmg.com/images/0131478303/downloads/Iverson_book.pdf|Apache Jakarta Commons: Reusable Java Components]] - Will Iverson (PDF)
 +  * [[https://artint.info/2e/html/ArtInt2e.html|Artificial Intelligence - Foundations of Computational Agents, Second Edition]] - David L. Poole and Alan K. Mackworth
 +  * [[https://web-engineering.info/tech/JavaJpaJsf/book/|Building Back-End Web Apps with Java, JPA and JSF]] - Mircea Diaconescu, Gerd Wagner (HTML,PDF)
 +  * [[https://www.mkyong.com/all-tutorials-on-mkyong-com/|Category wise tutorials - J2EE]] - Yong Mook Kim
 +  * [[https://web.archive.org/web/20210126062450/https://pdf.coreservlets.com/|Core Servlets and JavaServer Pages, 2nd Ed. (2003)]] - Marty Hall and Larry Brown //(🗃️ archived)//
 +  * [[https://web.archive.org/web/20190302130416/http://dept.cs.williams.edu/~bailey/JavaStructures/Book_files/JavaStructures.pdf|Data Structures in Java for the Principled Programmer (2007)]] - Duane A. Bailey (PDF)
 +  * [[https://google.github.io/styleguide/javaguide.html|Google's Java Style Guide]]
 +  * [[https://introcs.cs.princeton.edu/java/cs/|Introduction to Computer Science "booksite"]] - by Robert Sedgewick and Kevin Wayne (HTML)
 +  * [[http://www.programmedlessons.org/Java9/index.html|Introduction to Computer science using Java]] - Bradley Kjell
 +  * [[http://introcs.cs.princeton.edu/java/home/|Introduction to Programming in Java]] - Robert Sedgewick and Kevin Wayne
 +  * [[http://math.hws.edu/javanotes|Introduction to Programming Using Java]] - David J. Eck (HTML, PDF, ePUB + exercises)
 +  * [[https://math.hws.edu/eck/cs124/javanotes5|Introduction to Programming Using Java (5th Edition - final version, 2010 Jun)]] - David J. Eck (HTML, PDF, ePUB + exercises)
 +  * [[https://ptgmedia.pearsoncmg.com/images/013143697X/downloads/013143697X_book.pdf|Java Application Development on Linux (2005)]] - Carl Albing and Michael Schwarz (PDF)
 +  * [[https://archive.org/details/JavaJavaJavaObject-orientedProblemSolving/page/n0|Java, Java, Java Object-Oriented Problem Solving]] - R. Morelli and R.Walde
 +  * [[https://docs.oracle.com/javase/specs/|Java Language and Virtual Machine Specifications]] - James Gosling, et al
 +  * [[https://javamasters.io/servlets|Java Masters]] - Java Masters (HTML)
 +  * [[http://goalkicker.com/JavaBook/|Java Notes for Professionals]] - Compiled from StackOverflow documentation (PDF)
 +  * [[https://en.wikibooks.org/wiki/Java_Programming|Java Programming]] - Wikibooks
 +  * [[https://yfain.github.io/Java4Kids/|Java Programming for Kids]] - Yakov Fain
 +  * [[https://www.packtpub.com/free-ebooks/java-projects-second-edition|Java Projects, Second Edition]] - Peter Verhas (Packt account //required//)
 +  * [[https://riptutorial.com/Download/java-language.pdf|Learning Java Language]] - Compiled from StackOverflow Documentation (PDF)
 +  * [[https://www.redbooks.ibm.com/redbooks/pdfs/sg248357.pdf|Microservices Best Practices for Java]] (PDF)
 +  * [[http://computing.southern.edu/halterman/OOPJ/|Object-Oriented Programming in JavaTM Textbook]] - Rick Halterman (PDF per Chapter)
 +  * [[http://pub.bruckner.cz/titles/oop|OOP - Learn Object Oriented Thinking & Programming]] - Rudolf Pecinovsky (PDF)
 +  * [[http://opendatastructures.org/ods-java.pdf|Open Data Structures (in Java)]] - Pat Morin (PDF)
 +  * [[https://leanpub.com/playing-with-java-microservices-on-k8s-and-ocp|Playing with Java Microservices on Kubernetes and OpenShift]] - Nebrass Lamouchi //(Leanpub account or valid email requested)//
 +  * [[http://www.cafeconleche.org/books/xmljava/|Processing XML with Java (A Guide to SAX, DOM, JDOM, JAXP, and TrAX) (2002)]] - Elliotte Rusty Harold
 +  * [[https://docs.oracle.com/javaee/6/tutorial/doc/javaeetutorial6.pdf|The Java EE6 Tutorial]] (PDF)
 +  * [[https://docs.oracle.com/javaee/7/JEETT.pdf|The Java EE7 Tutorial]] - Eric Jendrock, et al (PDF)
 +  * [[https://docs.oracle.com/javase/tutorial/index.html|The Java Tutorials]]
 +  * [[https://www.scrapingbee.com/java-webscraping-book|The Java Web Scraping Handbook]] - Kevin Sahin (PDF, HTML)
 +  * [[https://greenteapress.com/wp/think-data-structures/|Think Data Structures: Algorithms and Information Retrieval in Java]] - Allen B. Downey (PDF, HTML)
 +  * [[https://greenteapress.com/wp/think-java-2e/|Think Java: How to Think Like a Computer Scientist, 2nd Edition]] - Allen B. Downey and Chris Mayfield (HTML, PDF) [[https://books.trinket.io/thinkjava2/|(Interactive version by Trinket)]]
 +    * [[https://greenteapress.com/wp/think-java/|Think Java: How to Think Like a Computer Scientist]] - Allen B. Downey and Chris Mayfield (HTML, PDF) [[https://books.trinket.io/thinkjava/|(Interactive version by Trinket)]]
 +  * [[https://www.vogella.com/tutorials/RxJava/article.html|Using RxJava 2 Tutorial]] - Lars Vogel, Simon Scholz (HTML)
 +  * [[https://runestone.academy/runestone/books/published/java4python/index.html|Welcome to Java for Python Programmers]] - Brad Miller
 +  * [[http://javaworkshop.sourceforge.net|Welcome to the Java Workshop (2006)]] - Trevor Miller
 +  * [[https://leanpub.com/whatsnewinjava8/read|What’s New in Java 8]] - Adam L. Davis
 +  * [[http://www.pawlan.com/monica/books/AdvBk.pdf|Writing Advanced Applications for the Java 2 Platform]] - Calvin Austin and Monica Pawlan (PDF)
 +
 +<WRAP column right><wrap lo>Source: [[https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-langs.md|EbookFoundation]]</wrap></WRAP>
 +</callout> 
 +
 +<jumbotron>
 +===== Hello World =====
 +
 +<sxh java>
 +class HelloWorld {
 +     public static void main(String[] args) {
 +          System.out.println("Hello, world!");
 +     }
 +}
 +</sxh>
 +<WRAP column right><wrap lo>Source: [[https://en.wikibooks.org/wiki/Computer_Programming/Hello_world|Wikibooks]]</wrap></WRAP>
 +</jumbotron>
 + 
 +
 +===== Benefits of Java =====
 +
 +^Benefit^Description^
 +^Platform independence|Java code can run on any platform without any modifications, as long as a Java Virtual Machine (JVM) is available for that platform. This makes Java a very portable language.|
 +^Object-oriented programming|Java is an object-oriented language, which means that it is designed to be modular, flexible, and scalable. This makes it well-suited for building complex, large-scale applications.|
 +^Automatic memory management|Java includes a garbage collector that automatically manages memory allocation and deallocation. This helps to prevent memory leaks and makes it easier to write stable and reliable code.|
 +^Large standard library|Java includes a large and comprehensive standard library that provides a wide range of functionality, including networking, file I/O, and user interface development. This makes it easier to build complex applications without having to reinvent the wheel.|
 +^Robust security|Java has built-in security features that help to protect against a wide range of security threats, such as buffer overflows, injection attacks, and denial-of-service attacks.|
 +^Strong community|Java has a large and active community of developers who contribute to the development of the language, as well as to the creation of tools and libraries that make it easier to use. This community also provides support and resources for developers who are learning Java.|
 +^High performance|Java is designed to be fast and efficient, which makes it well-suited for building high-performance applications. It includes features such as just-in-time compilation and bytecode optimization that help to improve performance.|
 +^Multithreading|Java includes built-in support for multithreading, which allows for concurrent execution of code. This makes it easier to build scalable applications that can take advantage of multiple processors or cores.|
 +^Easy to learn|Java has a simple and easy-to-learn syntax that is similar to other popular programming languages such as C++ and C#. This makes it a good choice for beginners who are just starting to learn programming.|
 +^Open-source|Java is an open-source language, which means that the source code is freely available and can be modified and distributed by anyone. This has led to the development of many open-source tools and libraries that make it easier to use Java.|
 +^Backward compatibility|Java is designed to be backward compatible, which means that new versions of the language can run code that was written for older versions. This helps to ensure that Java applications will continue to run even as new versions of the language are released.|
 +^Versatile|Java can be used to build a wide range of applications, from small command-line tools to large-scale enterprise applications. It is also used for developing Android mobile apps and can be used in web development with Java-based frameworks such as Spring and Struts.|
 +
 +  * Developer-friendly - Simple
 +  * Object-Oriented
 +  * Cross Platform
 +  * Garbage collector
 +  * Memory allocation
 +  * Multithreaded
 +  * Exception handling
 +  * Portability
 +
 +
 +===== TIOBE Index =====
 +
 +  * https://www.tiobe.com/tiobe-index/java/
 +
 +<callout title="External links:">
 +  * https://en.wikibooks.org/wiki/Java_Programming
 +</callout> 
 +
 +
 +See also: [[dev:programming_lagugages]]
  
  • dev/java.txt
  • Last modified: 2023/05/01 17:20
  • by Henrik Yllemo