[Java] Java Review

JH·2023년 4월 29일

Java

목록 보기
18/21

1. TIL

A. Java

1. 자바 환경 설정

시스템 변수 설정 : JAVA_HOME(변수명), 사용하는 JDK폴더 설정
PATH 설정 : JAVA_HOME/bin


2. 자바 개발 도구

bin 폴더에 있음

  • javac : 자바 컴파일러 프로그램 (class 파일을 만들어줌)

  • java : 자바 실행프로그램

  • jar : 자바 언어에서 사용하는 압축 파일

  • javadoc : 문서 작성 도구

  • 소스 파일 : test.java

  • 실행 파일 : test.class

터미널(Prompt)에서의 실행문
javac Test.java : 컴파일러 프로그램 실행
java Test : 자바 실행 프로그램 실행

eclipse를 사용하면 자동으로 컴파일 해줌

3. 자바 실행 순서

소스 파일 → 컴파일 → 실행 파일 → 실행 → Class loader
→ Byte code verifier → Interperter 또는 Just-In-Time compiler
→ Runtime System → 운영 체제 → Hardware


  • Class loader : 클래스 파일을 메모리에 로딩시켜줌

  • Byte code verifier : 로드된 파일의 코드 유효성 검증

  • Interperter, JIT Compiler : 바이트 코드를 기계어 코드로 변환

  • Runtime System

    • JDK : JVM + 개발 Tool
    • JRE : JVM + api
    • JVM : 바이트 코드를 기계어 코드로 변환하는 작업과 자바 실행에 관한 모든일 처리하는 프로그램



B. 변수

1. 변수

변수 선언 : 메모리에 데이터를 저장하기 위해 일정한 공간을 확보하고 이름을 지정하는 것

데이터 타입 : 메모리의 크기와 저장되는 값을 결정함

  • 논리 타입 : boolean : 1byte

  • 문자 타입 : char : 2byte, 'F' : '' 사용, 한 글자의 값만 가지는 데이터

  • 정수 타입 : byte : 1byte, short : 2byte, int : 4byte, long : 8byte

  • 실수 타입 : float : 4byte, double : 8byte

  • 참조 타입 : 메모리 주소 값, ex) String, Array

특정 연산

부호 연산자 : +a, -a : 양수, 음수 지정
비트 연산자 : &, |, ^, ~

  • 2진수로 계산함, 맨 앞은 부호 비트가 들어감, 0 : 양수, 1 : 음수

데이터 타입 변환 (type casting)

자동 타입 변경 (암시적 변환)

  • 작은 타입에서 큰 타입으로 가능
  • 연산 시 가장 큰 타입으로 변경 (byte, short, int를 연산하면 int)

직접 타입 변경 (명시적 변환)

  • (데이터 타입)변수 또는 값
  • 큰 타입에서 작은 타입으로 변경할 경우 (데이터가 손실될 수 있음)



C. 주석

  1. 주석문 : // , /**/
  2. Annotation : 컴파일러에게 정보를 알려주기 위해 사용함
  3. API 문서 작성 : javadoc.exe 프로그램의 API 문서를 생성함
  • (/* @문서정보1 @문서정보2 /)



D. 제어문

1. 조건문

if문, if ~ else문, if ~ elseif ~ else문, switch문

if ~ elseif ~ else문은 조건에 맞지 않으면 다음 elseif 조건으로 넘어감

2. 반복문

for문, while문, do while문

while문도 외부에 변수를 두고 실행문의 마지막에 증감식을 실행하면 횟수를 정할 수 있음

  • break : 반복문을 빠져나옴
  • continue : 현재 반복문의 실행을 멈추고 다음 반복문을 실행함



E. 배열

동일한 타입의 변수들을 순차적으로 메모리에 저장한 후, 첫번째 변수의 메모리 주소값만 이용하여 인접한 변수를 접근하는 구조

배열의 장점: 순차적인 접근으로 접근 속도가 빠름

new : heap Memory에 새로운 참조 변수를 생성하는 키워드

배열 생성 : int[]arr = new int[5] = int arr[] = new int[5] 둘 다 같은 의미
값 저장 : arr[1] = 123
값 추출 : int num = arr[1]

배열의 생성과 초기화를 동시에 하는 방법 : int[] score = {1, 2, 3, 4, 5}

배열의 특징 : 초기화 된 배열은 초기값을 가짐 (false, 0, null)

2차원 배열

new int[5][2] : 행5개, 열2개
new int[5][] : 행 또는 열의 개수를 따로 지정할 수 있음

Ex) 2차원 배열

int[][] arr = new int[5][5]
int num = 1
for(int i=0; i<arr.length; i++) {
	for(int j=0; j<arr.length; j++) {
    arr[i][j] = num++
    }
}

명령행 매개 변수

자바 프로그램 실행 시 전달받는 배열 : static void main(String[] args)
해당 java 파일의 이름을 매개변수로 받음



F. 클래스 객체

객체 모델링 : 객체(객체 이름) = 속성 + 행동

클래스 다이어그램 : 객체를 클래스로 표현하는 방법

  • 객체(객체 이름) → 클래스(클래스 이름)
  • 속성 → 변수
  • 행동 → 메소드

1. 패키지

자바에서의 디렉토리, 현재 클래스파일이 소속된 위치
패키지화 : 디렉토리를 나눠서 작업하는 것

import문 : 다른 디렉토리에 있는 패키지를사용할 때 사용함
import문에서 *는 모든 것을 뜻하지만 하위 패키지에는 적용되지 않음


2. 접근 제어자

선언되는 클래스, 변수, 메소드들을 접근하여 사용할 수 있는 권한

  • private : 접근하는 곳이 같은 클래스인 경우에만 접근 가능

  • default: 접근하는 곳이 같은 패키지인 경우에만 접근 가능

  • protected: 접근하는 곳이 같은 패키지 또는 상속관계인 경우에만 접근 가능

  • public: 조건 없음

2. 메소드

메소드에서 return문 : 메소드의 실행을 종료하겠다고 선언하는 명령문

메소드 오버로딩 : 동일한 이름으로 매개 변수만 다르게 여러 번 메소드를 선언하는 것

  • 메소드 로딩이 가능한 이유 : 컴파일 될 때 이름이 달라지기 때문에
  • 컴파일 시 이름 : testMethod_String


2. 느낀점

부족했던 배열에 관한 부분이나 자바의 기본적인 개념을 다시 볼 수 있어서 좋았다.

profile
잘해볼게요

0개의 댓글