เป็นธรรมเนียมของการเริ่มต้นเรียนรู้การเขียนโปรแกรม เราจะเขียนโปรแกรมเล็กๆเพื่อพิมพ์คำว่า Hello World ดังนี้

      โปรแกรมแรกของเราจะเป็นการสั่งพิมพ์คำว่า Hello World โดยเมื่อเราสั่ง run โปรแกรม ข้อความ Hello World จะปรากฏในหน้าต่างคอนโซลของโปรแกรม IntelliJ IDEA โดยผลลัพธ์จากโปรแกรมจะเป็นดังภาพด้านล่าง บรรทัด Process finished with exit code 0 แสดงว่าไม่มีข้อผิดพลาดใดๆ ซึ่ง exit code เป็น 0 คือไม่มีข้อผิดพลาด

    เมื่อเราสั่ง run โปรแกรมจะมีการคอมไพล์โปรแกรมจากโปรแกรมต้นฉบับไปเป็นจาวาไบต์โค๊ด ดังนั้นเราจะทดลองใช้งานโปรแกรมบนเครื่องคอมพิวเตอร์โดยการสำเนาคำสั่งในหน้าต่างคอนโซลของ IntelliJ IDEA ไปวางในหน้าต่างคอนโซลของระบบปฏิบัติการที่ใช้งานซึ่งจะเห็นว่าโปรแกรมสามารถทำงานได้ในสิ่งแวดล้อมจริง

     จากตัวอย่าง โปรแกรมเราใช้เมธอด System.out.println(); ซึ่งเราสามารถลดเวลาในการพิมพ์คำสั่ง โดยพิมพ์คำสั่งแบบย่อๆว่า sout แล้วเลือกจากรายการคำสั่งที่โปรแกรม IntelliJ IDEA เสนอมาให้ ซึ่งโปรแกรม IntelliJ IDEA จะเติมเป็นคำสั่งเต็มๆให้เราเอง

     เมธอด System.out.println(); เป็นเมธอดที่ใช้พิมพ์ข้อมูลในวงเล็บและขึ้นบรรทัดใหม่ หากต้องการพิมพ์แบบไม่ขึ้นบรรทัดใหม่ให้ใช้เมธอด System.out.print(); 

โปรแกรมของเราก็เป็นคลาส

     จากตัวอย่างโปรแกรม Hello World เราจะมาดูว่าแต่ละบรรทัดหมายถึงอะไร

package com.company :  หมายถึงโปรแกรมนี้เป็นส่วนหนึ่งของแพคเกจชื่อ com.company 

public class Main : เป็นการสร้างคลาสชื่อ Main ขึ้นมา

public static void main(String[] args) : เป็นการสร้างเมธอดชื่อ main ขึ้นมา

System.out.println(“Hello World”) :  เป็นการเรียกใช้เมธอด println จาก System.out เพื่อพิมพ์คำว่า Hello World ซึ่ง System.out เป็นคลาสที่มีอยู่ใน java api 

     ระบบปฏิบัติการทุกแบบจะมีช่องทางมาตรฐานเพื่อการรับข้อมูล (standard input) ส่งข้อมูล (standard output) และแสดงข้อผิดพลาด (standard error) ภาษาจาวาจึงเตรียมคลาสเพื่อติดต่อกับช่องทางเหล่านี้มาให้ใน java api  คือ System.in เพื่อรับข้อมูล System.out เพื่อส่งข้อมูล และ System.err เพื่อแสดงข้อผิดพลาด

     จากตัวอย่างจะเห็นว่าแค่โปรแกรมเพื่อพิมพ์ข้อความเพียงข้อความเดียว เราต้องสร้างคลาสและสร้างเมธอดขึ้นมา ดังนั้นการเขียนโปรแกรมในภาษาจาวาคือการสร้างคลาสและเมธอดต่างๆขึ้นมานั่นเอง

สร้างคลาสได้ไฟล์

     เมื่อเราสร้างคลาส Main ขึ้นมา โปรแกรม IntelliJ IDEA จะสร้างไฟล์รหัสต้นฉบับชื่อ Main.java ขึ้นมาภายใต้ไดเร็คทอรี่ที่เรากำหนด โดยโครงสร้างของไดเร็คทอรี่จะเป็นดังนี้

<ไดเร็คทอรี่ที่เรากำหนด>\<ชื่อโครงงาน>\src\com\company\<ชื่อคลาส>.java

และเมื่อเราคอมไพล์โปรแกรมแล้วจะได้ไฟล์จาวาไบต์โค๊ดภายใต้ไดเร็คทอรี่ที่เรากำหนด โดยโครงสร้างของไดเร็คทอรี่จะเป็นดังนี้

<ไดเร็คทอรี่ที่เรากำหนด>\<ชื่อโครงงาน>\out\production\<ชื่อโครงงาน>\com\company\<ชื่อคลาส>.class

ตัวอย่างเช่น

C:\Users\marup\IdeaProjects\HellWorld\src\com\company\Main.java

C:\Users\marup\IdeaProjects\HellWorld\out\production\HellWorld\com\company\Main.class

     โดยไดเร็คทอรี่ src จะใช้เก็บไฟล์รหัสต้นฉบับ (ไฟล์ที่มีนามสกุล .java)  ส่วนไดเร็คทอรี่ out จะใช้เก็บผลลัพธ์จากการคอมไพล์ซึ่งก็คือไฟล์จาวาไบต์โค้ด (ไฟล์ที่มีนามสกุล .class) ดังนั้นทุกครั้งที่เราสร้างคลาสจะได้ไฟล์ใหม่ขึ้นมาเสมอ หรือพูดง่ายๆว่าแต่ละคลาสก็คือไฟล์หนึ่งไฟล์นั่นเอง  

     ตัวอย่างของการสร้างคลาสหลายๆคลาสจะเห็นไฟล์ของแต่ละคลาสภายใต้ไดเร็คทอรี่ที่กำหนดไว้ เช่น

     อันที่จริงใน 1 ไฟล์สามารถมีคลาสได้มากกว่า 1 คลาสซึ่งเราจะได้ทำความเข้าใจจากการเรียนรู้ในบทต่อๆไป แต่ในเบื้องต้นเราจะเรียนรู้และใช้งานในแบบ 1 คลาสต่อ 1 ไฟล์

เมธอด main คือจุดเริ่มต้นของโปรแกรม

     จากตัวอย่างโปรแกรม Hello World เมื่อเราสร้างโครงงานจากเทมเพลตโปรแกรม IntelliJ IDEA จะสร้างคลาส Main ให้เราโดยอัตโนมัติและภายในคลาสจะมีเมธอด main มาให้ด้วยเลย

     เมธอด main เป็นเมธอดพิเศษที่เราใช้บอกโปรแกรม Java Virtual Machine ถึงจุดเริ่มต้นของโปรแกรม รูปแบบของคำสั่งสร้างเมธอด main จะมีรูปแบบดังต่อไปนี้เท่านั้น

public static void main(String[] args)

ตัวอย่างเช่น

     อันที่จริงไม่จำเป็นต้องมีคลาสชื่อ Main ก็ได้แต่ขอให้มีเมธอด main ซึ่งอาจจะอยู่ในคลาสชื่ออื่นที่เราต้องการให้เป็นจุดเริ่มต้นของการทำงานของโปรแกรมเราก็ได้ ตามตัวอย่างด้านล่าง (สังเกตุว่าชื่อคลาสไม่ใช่ Main แต่เป็น HelloWorldWithNoMainClass)

     หากโปรแกรมของเราไม่มีเมธอด main เวลาที่เราคอมไพล์โปรแกรมจะพบข้อผิดพลาดว่าไม่พบเมธอด main ดังตัวอย่าง

     ในขั้นตอนการใช้งานโดยส่วนใหญ่เราจะต้องสร้างออบเจกต์จากคลาสที่ต้องการใช้งานขึ้นมาก่อน จากนั้นจึงจะสามารถเรียกใช้งานเมธอดต่างๆของ

ออบเจกต์นั้นๆได้ แต่เพราะว่าเมธอด main เป็นเมธอดแรกสุดที่ถูกเรียกใช้งาน ดังนั้นจึงไม่มีคลาสที่จะมาสั่งสร้างออบเจกต์ ดังนั้นเมธอด main จะต้องกำกับด้วยคีย์เวิร์ด static เสมอ ซึ่งคีย์เวิร์ด static หมายถึงเราสามารถเรียกใช้งานเมธอด main ได้โดยที่ไม่ต้องมีการสร้างออบเจกต์ขึ้นมาก่อน 

     เรามักจะใช้คลาส Main ในการทดสอบการทำงานของโปรแกรมที่เราเขียนขึ้นมาและไม่เอาส่วนที่เป็นการทำงานจริงมาไว้ที่คลาส Main เพราะส่วนมากเราเขียนโปรแกรมขึ้นมาเพื่อนำไปเป็นส่วนหนึ่งของโปรแกรมอื่นหรือจะเรียกว่าเขียน Java API ของตัวเองขึ้นมาก็ได้ และเราจะลบคลาส Main และเมธอด main ออกก่อนที่จะคอมไพล์โปรแกรม เพราะโปรแกรมหลักที่จะเอา Java API ของเราไปใช้จะมีเมธอด main ของตนเองอยู่แล้ว