Java 문법 종합 1주차

이상인·2023년 5월 22일

기본 문법 꼼꼼히, 반복 학습
객체지향 ( 앞으로의 과정 내내 객체지향의 내용을 떠올리면서 학습 )

Java

  • 공통 실행환경, 클래스, 객체
  • 공통 실행환경이 있어서 여러 기기에서 실행 가능하다.
  • 여러 기기의 운영 체제에서 실행할 수 있는 언어이다.
  • 안전성이 높다
  • 대규모 앱 개발이 가능하다
  • Java를 배우면 다양한 개발 도구와 라이브러리를 사용할 수 있습니다.

객체

  • (object) : 사람, 사물 등 세상에 존재하는 모든 것
  • 특징을 가지고 있다. (이름, 나이, 주소, 혈액형 등)
  • 행동

이 세상과 비슷한 메커니즘을 가지고 가는 언어인 Java이기 때문에 객체지향언어

JVM(Java Virtual Machine)

  • 여러가지 기기 위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는 것

.java파일은 .class 파일로 컴파일된다.
그렇기 때문에 기본적으로 클래스라는 키워드로 .java 파일을 만든다.
.java 파일 안에 들어가는 모양은 실제 class라는 키워드로 만든다.

public class Main {
    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
  • 중괄호로 구분 되는 곳이 하위 요소이다.
  • Main 클래스 안에 하위요소는 메서드라고 부른다. (위에서 main 메서드)
  • 자바프로젝트는 제일 먼저 클래스의 main 메서드를 실행시킨다. (JVM의 약속)
  • public : 제어자 (class를 어떻게 제어 할 것이냐? = 어디까지 접근하게 만들 것이냐, 제어자)
  • Main 클래스의 이름은 파일 이름과 일치시켜야 한다.
  • static : 이 프로그램이 시작될 때 무조건 실행될 수 있는 상태인 녀석
  • Java라는 언어에서는 input에 대한 타입을 제한하고 있다. output도 마찬가지
  • void : 메서드의 출력의 데이터타입, 출력이 없다는 뜻. 메서드의 출력값을 정하는 위치
  • String[] : 매개변수 자리, input타입
  • args : 변수명, 아무거나 써도 상관없다.
  • . : 보통 하위요소를 표현
  • System 클래스 안에 out이라는 객체 안에 있는 println이라는 행동을 정의하는 메서드
  • println : 줄 바꿈 O, ln = line
  • // : 주석
  • 오류가 표시되는 이유는 Java가 알아들을 수 없는 표현이기 때문

변수

  • 저장공간의 선언 : 저장공간타입 저장공간이름;

값의 저장
1) 선언과 동시에 값을 저장 : EX) int num = 10; (초기화)
2) 선언 이후에 값을 저장 : 덮어쓰기 EX) num =10;

변수의 타입
1) 기본형

  • 정수형 : byte, short, int, long (표현범위 차이)
  • 실수형 : float, double(default)
  • char(문자형) : 'A'
  • Boolean(논리형) : True, False

2) 참조형 : 복잡한 것, 별도로 저장, 별도의 저장한 값(주소값)을 참조하는 식으로 사용(
주소형변수)

  • string(문자열) : 어디가 끝인지 널문자 \0을 넣어 알려줘서 저장
  • 객체
  • 배열 int[] a = {1,2,3}
    그냥 프린트하면 주소값이 나옴. Arrays.toString(a)로 출력한다.
  • 리스트 등등
    ※ 메모리영역
  • Stack 영역 (기본형 변수, 참조형 변수의 주소값) 정적으로 할당된 메모리영역
  • Heap 영역 (참조형 변수의 원본 값) 동적으로 할당된 메모리영역

래퍼클래스 변수

  • 기본형 변수를 클래스로 한 번 랩핑(감싸는) 변수
  • Byte, Short, Integer, Character 등등
  • 행동(유용한 기능)이 있음
  • 박싱, 언박싱 : 감싸고 풀고

형변환

  • 변수의 타입 바꾸기
  • 실수 -> 정수로 변환하면 소수점 아래는 내림 된다. 명시적
  • 암시적 형변환 (자바 내에서 자동으로 타입을 바꿔주는 것)
    →변수 타입별 크기를 알아야 한다.
    // byte(1) -> short(2) -> int(4) -> long(8) -> float(4) -> double(8)
  • 작은 크기의 타입이 큰 크기의 타입과 '계산' 될 때,
    자동으로 큰 크기의 타입으로 형 변환이 된다. -> 자동형변환
  • 강제형변환 : 큰 타입-> 작은 타입

상수

  • 변하지 않는 공간 : final 저장공간타입 저장공간이름;

import

  • 외부의 것을 가져와서 쓴다
    java.util.Scanner

단어정리

  • JVM
  • 클래스
  • ★객체(object) : 사람, 사물 등 세상에 존재하는 모든 것
  • 운영체제
  • 앱 : 운영체제 위에서 실행되는 프로그램
  • 라이브러리
  • ★컴파일러 : 내가 작성한 코드들(.java 파일)을 운영체제가 읽을 수 있는 바이트코드(.class파일)로 변환
  • 인터프리터 : 운영체제가 읽은 바이트 코드를 기계가 실행할 수 있는 기계어로 번역
  • JIT 컴파일러 : 인터프리터의 효율 ↑ ( 둘이 세트 )
  • 메모리 영역 : java 데이터를 저장하는 영역 (운영체제로부터 JVM이 할당받은 메모리 영역)
  • 클래스 로더 : 바이트코드(class)를 메모리 영역에 담는 운반기
  • 가비지 컬렉터 : 메모리 영역에서 안 쓰는 데이터를 주기적으로 제거
  • JRE : 자바 실행 환경 JVM, 하지만 JRE만 있다면 java프로그램을 실행만 할 수 있다.
    .class 파일만 실행 가능하다
  • JDK : Java Development Kit (자바 개발 키트)
    JRE + 컴파일 + 디버깅
  • 디버깅 : 버그를 찾아내는 기능, 원하는 줄 숫자 옆에 누르고 Shift + F9
  • 아스키코드

0개의 댓글