본문 바로가기
Programming/Java

[Java] 프로그래밍 기초

by AI_Wooah 2020. 10. 26.

시작하기 전

  • 자바 웹개발자가 되기 위한 공부 로드맵
    • [ ] Java
    • [ ] DataBase (플랫폼 중 대표적인 Oracle)
    • [ ] HTML&CSS
    • [ ] JavaScript
    • [ ] JQuery
    • [ ] JDBC
    • [ ] Servlet/JSP
    • [ ] Ajax
    • [ ] MyBatis
    • [ ] Spring Framework

Part1. 프로그래밍 기초


1.1 프로그래밍이란?

  • 인간이 컴퓨터에게 원하는 일을 시키고자 할 때 컴퓨터가 인식할 수 있는 명령어로 지시해야 한다.
  • 컴퓨터는 0과 1만 알아들을 수 있기 때문에 일을 수행하기 위해 설계된 알고리즘을 프로그래밍 언어를 사용하여 프로그램으로 작성한다.
  • 이 때 인간이 사용하는 언어를 컴퓨터의 언어로 번역해주기 위해 컴파일 작업이 필요하다.

1.2 프로그램 언어별 특성

  • 고급 언어
    • Java : 객체지향언어
    • C : 절차지향언어
  • 기계보다 인간이 알아듣기 쉬운 프로그래밍 언어로 C, Java, Python 등이 있다.
  • 저급 언어
  • 컴퓨터 내부에서 바로 처리 가능한 프로그래밍 언어로 일반적으로 기계어와 어셈블리어 언어가 있다.

1.3 Java 언어의 특징

  • 이식성이 강하며 운영체제에 독립적이다.
  • 다른 언어에 비해 사용하기 쉬운 언어이다.
    • 메뉴와 메모리 관리 기능이 기능하다.
    • 객체 지향 언어이기 때문에 코드 재사용이 편리하다.
    • 능률적이고 명확한 코드를 작성하도록 한다.
  • 컴퓨터에서 빌려서 사용하는 메모리를 자동으로 메모리 자동으로 관리해준다. (Garbage Collection)
  • 네트워크와 분산환경을 지원한다.
  • 멀티쓰레드를 지원한다.
    • 쓰레드는 특정 기능을 수행 할 수 있는 하나의 단위이다.
    • 멀티쓰레드는 여러 일을 병렬적으로 동시에 사용 가능하게 한다.
    • 싱글쓰레드는 한번에 한가지 일만 수행할 수 있다.

1.4 JVM의 특징 - 이식성

  • 이식성이 높다는 것은 다양한 플랫폼으로부터 독립적이라는 뜻이다.
  • 한 운영체제를 기반으로 작성된 프로그램의 경우 다른 운영체제에서 실행이 안되는 경우가 있다.
  • C언어 같은 경우는 컴파일시 이식성이 낮은 어셈블리어로 바뀌어 실행하기 때문에 실행하려는 운영체제마다 코드를 바꿔야하는 불편함이 있다.
  • 자바는 컴파일시 JVM에 의해 자바 바이트 코드로 변환이 되기 때문에 자바 가상머신이 있는 어느 운영체제에서나 실행이 가능해 편리하다.
  • JVM이란?
  • 플랫폼에 독립적인 bytecode(class파일)을 해석하고, 실행하는 인터프리터 실행 환경은 PC 또는 Web Browser 설치된 플랫폼에 종속적

소스코드 → 컴파일러 → 바이트코드 → JVM(인터프리터) → 운영체제에서 실행


1.5 설치의 범위

사용자/개발자 입장에 따라 설치하는 범위가 달라진다.

  • JVM(Java Virtual Mathine) : 자바 프로그램 등을 컴파일하여 만들어진 바이트코드를 실행해주는 가상 머신
  • JRE(Java Runtime Environment) : JVM에 자바 라이브러리와 기타 파일들이 결합된 자바를 실행하기 위한 환경을 만들어주는 프로그램이다.
  • JDK(Java Development Kit) : JRE에 컴파일러와 디버거 등 개발 도구를 포함하는 개발자를 위한 프로그램이다
  • 패키지 에디션
    • Java SE (Java Standard Edition) : 자바 언어 대부분의 패키지가 포함되어 있다.
    • Java EE(Java Enterprise Edition) : 현업에서 사용되는 API들이 집약되어 있어 웹 프로그래밍에서 가장 많이 사용되는 Servlet, JSP를 비롯해 많은 기술이 포함되어 있다.
    • Java ME(Java Micro Edition) : 모바일 기기(피쳐폰, PDA폰) 등 스마트폰 등장 전의 소규모 기기에 기능 제공

1.6 Java 프로그래밍 순서

Class 작성 순서

  1. 패키지(package) 선언
  2. 임포트(Import) 선언
  3. 클래스(class) 작성부
    1. 멤버변수
    2. 생성자 함수
    3. 멤버함수
      • 키보드 입출력 테스트
      • 자료형 변환
      • 정수의 계산

1.7 Hello World 출력 코드

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("Hello World!"); // Hello World!
		System.out.println("dondon"); // dondon
		System.out.println(11 * 2); // 22
	
		// 주석
		/* 
		 * 별사이에 주석처리 돼서
		 * 아무런 영향 끼치지 않음
		 */
	}
}

 

1.8 메소드 호출 코드(Method Printer)

package helloworld;

public class A_MethodPrinter {
	//여기의 class는 파일명의 .class와 다르다 .은 바이트코드를 말하고 여기서의 class는 파일단위를 말한다.
	// {} 중괄호 블럭 또는 브레이스라고 부름

	public void methodA() {
		System.out.println("methodA() 호출됨...");
		methodB();
		methodC();
	}

	public void methodB() {
		System.out.println("methodB() 호출됨...");
		methodC();
	}

	public void methodC() {
		System.out.println("methodC() 호출됨...");
	}

	// 아래 메인 메소드
	// main 치고 컨트롤 스페이스 누르면 메인메소드 불러옴
	// 프로그램을 start 시키는 스위치 역할을 하는 메소드
	// 여러 메소드 중에서 메인메소드는 단 한개만 가질 수 있으며 작성 순서와 상관 없이 가장 먼저 동작하는 메소드이다.
	public static void main(String[] args) { // 메소드 시작 블럭
		// 자바에서는 클래스가 가진 메소드를 실행하려면 아래와 같이 한다.
		// 클래스명 사용할이름 = new 클래스명();
		A_MethodPrinter p = new A_MethodPrinter(); // p는 클래스의 이름

		// 메소드 호출
		// 사용할 이름.메소드명();
		p.methodA(); // .은 포함된다는 의미
		//		p.methodB();
		//		p.methodC();

	} // 메소드 종료 블럭

} // } 클래스 종료 블럭

 

반응형

'Programming > Java' 카테고리의 다른 글

[Java] 연산자  (0) 2022.03.07
[Java] 변수(Variable)  (2) 2020.10.26
[Java] 상속을 사용하는 목적과 장점  (1) 2020.10.07
[Java] 객체와 클래스의 정의 및 차이점  (0) 2020.10.05
[Java] 클래스  (0) 2020.10.05

댓글