Transcript CS 177

Week 1 - Friday


What did we talk about last time?
Our first Java program
The full Hello World program
Remember that everything is in a class
The class name must match the file name
(Hello.java)
 The main()method is where the program starts
 The print statement outputs information on the
screen



public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello, world!");
}
}


In Java, like C, C++, and many other
languages, we separate different statements
with a semicolon ( ; )
If we want to do a number of statements, we
just type them in order, with a semicolon
after each one

For example, instead of one print statement,
we can have several:
System.out.println("Hello, world!");
System.out.println("Hello, galaxy!");
System.out.println("Goodbye, world!");


Each statement is an instruction to the
computer
They are printed in order, one by one




Java is a case sensitive language
Class is not the same as class
System.out.println("Word!");
prints correctly
system.Out.Println("Word!");
does not compile

Java generally ignores whitespace (tabs,
newlines, and spaces)
System.out.println("Hello, world!");
is the same as:
System.out.
println(

"Hello, world!");
You should use whitespace effectively to
make your code readable




Programs can be confusing
Sometimes you want to leave notes for
yourself or anyone else who is reading your
code
The standard way to do this is by using
comments
Although comments appear in the code, they
do not affect the final program


There are two kinds of comments (actually 3)
Single line comments use //
System.out.println("Hi!"); // this is a comment

Multi-line comments start with a /* and end
with a */
System.out.println("Hi!"); /* this is
a multi-line
comment */



Java is a large, complex language
Even so, there are only a few tasks that you
can ask it to do
You have already learned:
 Sequencing
 Basic output

There are not that many other things you can
tell Java to do
1.
2.
3.
4.
5.
6.
7.

Storing numbers and text
Basic mathematical operations
Choosing between several options
Doing a task repetitively
Storing lists of things
More complicated input and output
Naming a task so that you can use it over and over
again
That’s basically it





The process of giving computers very
detailed instructions about what to do
How do we do that exactly?
First, we need a programming language like
Java
How do we turn a set of instructions written
so that a human can read them into a set of
instructions that a computer can read?
Magic, of course!

There are many different programming
languages:
 Java
 C/C++
 ML
 …thousands more

Each has different advantages in different
situations



We classify languages as high or low level
High level languages allow you to give more
abstract commands that are more like human
thought processes or mathematics
Low level languages are closer to the
computer world and give explicit instructions
for the hardware to follow
Low
Machine
Code
Assembly
Language
C
C++
Java
ML
High



We use a program called a compiler to turn a
high level language into a low level language
Usually, the low level language is machine
code
With, Java it's a little more complex
Source
Code
Machine
Code
Computer!
Solve a
problem;
010101010
010100101
001110010
Hardware
Execute




Java is a more complicated
Java runs on a virtual machine, called the JVM
Java is compiled to an intermediate stage
called bytecode, which is platform
independent
Then, the JVM runs a just-in-time compiler
whenever you run a Java program, to turn the
bytecode into platform dependent machine
code
Java
Source
Code
class A
{
Problem p;
p.solve();
}
Java
Bytecode
Machine
Code
101110101
010101010
101011010
110010011
JVM
010100101
001110010
Hardware
1.
2.
3.
Write a program in Java
Compile the program into bytecode
Run the bytecode using the JVM (which
automatically compiles the bytecode to
machine code)
Often goes through phases similar to the
following:
1. Understand the problem
2. Plan a solution to the problem
3. Implement the solution in a programming
language
4. Test the solution
5. Maintain the solution and do bug fixes
Factor of 10 rule!

We'll talk about data representation



Reading Chapter 3
Look at Project 1
No class on Monday!