Java: Difference between revisions

922 bytes added ,  7 years ago
no edit summary
No edit summary
No edit summary
Line 1: Line 1:
Java is a general-purpose, high-level, object-oriented programming language developed in 1995 by Sun Microsystems (purchased by Oracle in 2010). One of the principal design goals for Java was a high degree of portability across platforms, summarized by the slogan ''write once, run anywhere'', and which is realized by having Java source code compiled to 'byte code' which then runs inside a Java virtual machine (JVM), ensuring a very uniform environment across numerous architectures and platforms. This has made Java a popular language choice in some environments and it is also widely used as a language for teaching programming. While performance was not one of the original design goals for Java, there are ways to help Java code run quickly and it has enjoyed a certain popularity in some scientific domains such as the life sciences, e.g. software like the Broad Institute's [https://software.broadinstitute.org/gatk/ GATK]. This page is not designed to teach the Java programming language but merely to provide some tips and hints for the use of Java in a high-performance computing environment such as Compute Canada.  
Java is a general-purpose, high-level, object-oriented programming language developed in 1995 by Sun Microsystems (purchased by Oracle in 2010). One of the principal design goals for Java was a high degree of portability across platforms, summarized by the slogan ''write once, run anywhere'', and which is realized by having Java source code compiled to 'byte code' which then runs inside a Java virtual machine (JVM), ensuring a very uniform environment across numerous architectures and platforms. This has made Java a popular language choice in some environments and it is also widely used as a language for teaching programming. While performance was not one of the original design goals for Java, there are ways to help Java code run quickly and it has enjoyed a certain popularity in some scientific domains such as the life sciences, e.g. software like the Broad Institute's [https://software.broadinstitute.org/gatk/ GATK]. This page is not designed to teach the Java programming language but merely to provide some tips and hints for the use of Java in a high-performance computing environment such as Compute Canada.  
Compute Canada's systems have several different Java virtual machines installed which are made available to users via the <tt>module</tt> command like other software packages. You should normally only have one Java module loaded at a time. The principal commands associated with such Java modules are <tt>java</tt> to launch the Java virtual machine and <tt>javac</tt> to call the Java compiler for converting a Java source file into byte code.


==Parallelism in Java==
==Parallelism in Java==
Line 24: Line 26:


==Pitfalls==
==Pitfalls==
===Memory Issues===
Java uses an automatic system called ''garbage collection'' to identify variables which are out of scope and return the memory associated with them to the operating system which however doesn't stop many Java programs from requiring significant amounts of memory to run correctly. When a Java virtual machine is launched using the <tt>java</tt> command a default amount of the system memory is allocated to this virtual machine which may be inadequate.


===The <tt>volatile</tt> Keyword===
===The <tt>volatile</tt> Keyword===
Bureaucrats, cc_docs_admin, cc_staff
2,306

edits