Difference between revisions of "W7003 The Basics"

From Coder Merlin
Line 1: Line 1:
== First Steps ==
== First Steps ==
* Emacs and Java
=== Prepare a Directory ===
* mkdir ~/AP-Practice
{{ConsoleLines|
* Within this directory, mkdir Hello, World
{{Lime|john-williams@codermerlin}}:{{Cyan|~/}}$ cd<br/>
* Create a new file, HelloWorld.java
{{Lime|john-williams@codermerlin}}:{{Cyan|~/}}$ mkdir AP-Practice<br/>
** Names matter - the public class name MUST match the file name
{{Lime|john-williams@codermerlin}}:{{Cyan|~/}}$ cd AP-Practice<br/>
* Compile with '''javac'''
{{Lime|john-williams@codermerlin}}:{{Cyan|~/AP-Practice}}$ mkdir HelloWorld<br/>
* An executable must have an entry point which is a '''public''', '''static''' function named ''main'', accepting a single argument, an array of strings.
{{Lime|john-williams@codermerlin}}:{{Cyan|~/AP-Practice}}$ cd HelloWorld<br/>
* Execute with '''java'''
{{Lime|john-williams@codermerlin}}:{{Cyan|~/AP-Practice/HelloWorld}}$ <br/>
}}
=== Create a New File ===
{{ConsoleLines|
{{Lime|john-williams@codermerlin}}:{{Cyan|~/AP-Practice/HelloWorld}}$ emacs HelloWorld.java<br/>
}}
 
Enter the following text:
<syntaxhighlight lang="java">
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
</syntaxhighlight>
 
{{Hint|
* '''Names matter''' - The file name MUST match the name of the public class
* An executable must have an ''entry point'' which is a '''public''', '''static''' function named ''main'', accepting a single argument, an array of strings.
}}
 
=== Compilation ===
A Java program can be compiled with the '''javac''' command.  Note that the argument to the command is the file to be compiled, including the ".java" suffix.  This will produce a file with the ".class" suffix.
{{ConsoleLines|
{{Lime|john-williams@codermerlin}}:{{Cyan|~/AP-Practice/HelloWorld}}$ javac HelloWorld.java<br/>
}}
 
=== Execution ===
A Java program may be executed with the '''java''' command.  Note that the argument to the command is the file to be executed, excluding the ".class" suffix.
{{ConsoleLines|
{{Lime|john-williams@codermerlin}}:{{Cyan|~/AP-Practice/HelloWorld}}$ java HelloWorld<br/>
}}


== Short Cuts ==
== Short Cuts ==

Revision as of 22:32, 27 November 2019

Within these castle walls be forged Mavens of Computer Science ...
— Merlin, The Coder

First Steps[edit]

Prepare a Directory[edit]

john-williams@codermerlin:~/$ cd

john-williams@codermerlin:~/$ mkdir AP-Practice

john-williams@codermerlin:~/$ cd AP-Practice

john-williams@codermerlin:~/AP-Practice$ mkdir HelloWorld

john-williams@codermerlin:~/AP-Practice$ cd HelloWorld

john-williams@codermerlin:~/AP-Practice/HelloWorld$

Create a New File[edit]

john-williams@codermerlin:~/AP-Practice/HelloWorld$ emacs HelloWorld.java

Enter the following text:

public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello, World!");
    }
}
Hint.pngHelpful Hint
  • Names matter - The file name MUST match the name of the public class
  • An executable must have an entry point which is a public, static function named main, accepting a single argument, an array of strings.

Compilation[edit]

A Java program can be compiled with the javac command. Note that the argument to the command is the file to be compiled, including the ".java" suffix. This will produce a file with the ".class" suffix.

john-williams@codermerlin:~/AP-Practice/HelloWorld$ javac HelloWorld.java

Execution[edit]

A Java program may be executed with the java command. Note that the argument to the command is the file to be executed, excluding the ".class" suffix.

john-williams@codermerlin:~/AP-Practice/HelloWorld$ java HelloWorld

Short Cuts[edit]

  • Compilation and Execution can be combined
  • All of this can occur within emacs
  • Emacs shortcut and up arrow
  • Define keyboard macro with f3 and f4, execute with f4
    • CTRL-X, CTRL-S, ALT-SHIFT-&, Up-Arrow, ENTER

Semicolons[edit]

Semicolons are required at the end of each statement

Static Typing[edit]

  • Java is statically typed
  • Variables must be declared before they can be used, including the type
  • Types define the possible values of the variable and the operations that may be performed upon it

Primitive Types[edit]

NOTE: All primitive types begin with a lowercase letter

  • byte (8-bit)
  • short (16-bit)
  • int (32-bit)
  • long (64-bit)
  • boolean
  • char (16-bit unicode)
  • float
  • double

Common Errors[edit]

int gpa;
gpa = 3.75;

float f = 10.5; 

byte b = -128;
b -= 1;

Implicit Casting[edit]

  • Magnitude of numeric types is preserved (precision may be lost)

Explicit Casting[edit]

  • Required when magnitude of numeric type may not be preserved

Division by Zero[edit]

  • Compare and contrast integer vs floating point

New[edit]

The new keyword is not used for primitive types

Primitive numeric types[edit]

  • Primitive numeric types overflow and underflow silently