본문 바로가기
개발노트/java

java 기초

by 시계속세상은아직돌아가는중 2024. 1. 24.

개요

자바에 입문하기 앞서 전통적인 문구 hello ~를 출력해보고 반복문도 적용해보자.
다른 언어와의 차이점도 한 번 떠올려보면 재밌는 공부가 되는 것 같다.

1. 문자열 출력


1) 자바

public class HelloJava {

    public static void main(String[] args){
        System.out.println("Hello java"); // 값을 콘솔에 출력하는 것
    }

}

 

2) 코틀린

class HelloKotlin

    private fun main(){
        println("Hello kotlin")
    }

 

코틀린에서 얼마나 간소화 되었는지 알 수 있는 부분이다.

 

java 코드를 한 번 뜯어보자

 

public 접근제한자다. 이는 당연하게도 코틀린과 동일하다
public으로 선언되었기 때문에 어디서든 접근이 가능하다
static 정적 매서드임을 나타내고 있다.
void 반환값을 지정해준다.
void는 지정하지 않았음이다.
main 메서드의 이름이다
String[] args 메서드의 매개 변수다.
문자열로 된 변수를 받고 있으며, 프로그램을 실행할 때 사용자가 입력한 인자들이 이 배열에 전달된다.

 

이 구문들은 치기 귀찮아 보인다. 인텔리 제이에서는 psvm 단축어를 통해 바로 만들 수 있다.
S.out역시 동일하다

2. 반복문

 

1)자바

public class HelloJava2 {

    public static void main(String[] args){

        for (int i = 1; i <= 3; i++) {
            System.out.println("Hello Java" + i);
        }
    }
}

 

2)코틀린

 

class HelloKotlin

private fun main() {
    for (i in 1..3) // i in 1 until 4( 1 < 4)
        println("Hello kotlin$i")
}

 

for 반복문의 시작이다
int i; 초기화.
반복문에 사용될 변수 i가 int형임을 선언한다. 또한 선언이 끝났으므로 ;를 붙인다
i <= 3; 조건식
i가 3이하가 될 때 까지 반복함을 명시한다
i++ 증감식
i가 점점 증가한다.


c,c++에서도 동일하게 작동하는 식이다.

다만 출력 방식이 다른데, i를 출력하기 위해 원하는 값에 +i를 붙였다.

중간에 값을 넣는다면

 System.out.println("Hello" + i + " Java");



으로 수정 될 것이다.

이는 c++과 좀 더 유사한 형태다

 

#include <iostream>

int main() {
    for (int i = 1; i <= 3; i++) {
        std::cout << "Hello" << i << " C++" << std::endl;
    }

    return 0;
}

 

3) java란?

 

자바는 표준 스펙구현으로 나눌 수 있다.

 

 

1) 표준 스펙

 

자바의 설계도이며 문서이다. 이 표준 스펙을 기반으로 실제 작동하는 자바를 만든다.

자바 커뮤니티 프로세스(JCP)를 통해 관리하게 된다.

 

2) 구현

 

여러 회사에서 자바 표준 스펙에 맞춰서 구현하게 된다. 해당 구현들은 대부분 윈도우,mac,리눅스 같이 다양한 OS에서 작동한다.

 

구현의 장단점을 예로 들자면, Amazon은 AWS에 최적화되어있다.

 

3) 컴파일과 실행

 

java가 제공하는 javac라는 프로그램을 사용한다.

.java -> .class파일이 생성된다.

 

자바 소스 코드를 바이트 코드로 변환하여 가상 머신에서 더 빠르게 실행될 수 있게 최적화 및 문법 오류 검출한다.

4) 운영 체제의 독립성

java는 java가 설치된 모든 OS에서 실행이 가능하다. 따라서 자바 개발자는 OS를 타겟팅하지 않고 자바에 맞춰서 개발하면 된다.

'개발노트 > java' 카테고리의 다른 글

java 기초 2 변수의 형태  (0) 2024.01.24