Java/기초

    [JAVA] Garbage Collection 이란?

    Garbage Collection 이란? 가비지 컬렉션은 자바의 메모리 관리 방법 중의 하나로 JVM의 Heap 영역에서 동적으로 할당했던 메모리 영역 중 필요 없게 된 메모리 영역을 주기적으로 삭제하는 프로세스이다. C언어 같은 언어에서 메모리 관리는 프로그래머의 책임으로서, 직접 관리하지 않는다면 메모리 릭(Memory Leak)을 맞게 된다. Java나 Kotlin에서는 메모리 누수를 방지하기 위해 가비지 컬렉터가 불필요한 메모리를 알아서 정리해준다. JVM의 Heap 영역은 다음의 두가지 전제로 설계된다. 대부분의 객체는 금방 접근 불가능한 상태(Unreachable)가 된다. -> 객체는 대부분 일회성 오래된 객체(old)에서 새로운 객체(young)로의 참조는 아주 적게 존재한다. -> 메모리..

    배열(Array)

    1차원 배열 1차원 배열은 가장 일반적인 배열의 형태 배열의 요소가 배열이 아닌 배열을 의미 배열은 참조 타입(변수에 주소값 저장)에 해당 배열의 요소는 Arrays.toString() 메서드를 통해 쉽게 확인 배열이 가진 요소의 개수를 배열의 길이 또는 크기 double[] temperatureOfJuly; // 배열을 가리킬 참조 변수 temperatureOfJuly 선언 temperatureOfJuly = new double[31]; // 총 31개의 double형 값을 저장할 수 있는 배열 생성 //한줄로 선언하는 방법 double[] temperatureOfJuly = new double[31]; System.out.println(temperatureOfJuly.length); // 31 배열의..

    제어문 - 조건문(if, Switch), 반복문(for, while)

    제어문 조건문 : if문, switch문 반복문 : for문, while문, do while문 조건문 if 문 소괄호 안에는 boolean 값으로 평가될 수 있는 조건식을 넣어준다. 중괄호 안에는 조건식이 참일 때 실행하고자 하는 코드를 넣어준다. if (조건식) { //조건식이 참이라면 실행되는 블록입니다. } if...else문 if...else문은 조건식의 결과에 따라 실행블록을 선택한다. 조건식이 true이면 해당 블록이 실행되고, 조건식이 false이면 다음으로 넘어가 else if 문의 조건식을 검사한다. else if문의 모든 조건식이 false라면, 나머지 경우를 의미하는 else 블록이 실행된다. if(조건식1) { //조건식1이 참이라면, 실행되는 블록입니다. } else if (조건식..

    콘솔 입출력(I/O)

    콘솔 출력 출력하기 : System.out.print() 소괄호 안의 내용을 단순히 출력하기만 하고, 줄바꿈을 하지 않음 System.out.print("Hello JAVA"); System.out.print("Kim" + "Coding"); System.out.print(3+6); System.out.print(2022 + "year"); /* 출력 Hello JAVAKimCoding92022year */ 출력하고 줄 바꾸기 : System.out.println() 소괄호 안의 내용을 콘솔에 출력하고 줄바꿈 print뒤에 붙은 ln은 line을 의미 System.out.println("Hello JAVA"); System.out.println("Kim" + "Coding"); System.out.pri..

    연산자(Operator)

    산술 연산자 연산자 기능 예시 결과값 + (덧셈 연산자) 두 항의 값을 더한 값을 반환합니다. 7 + 3 10 - (뺄셈 연산자) 좌항의 값에서 우항의 값을 뺀 값을 반환합니다. 7 - 3 4 * (곱셈 연산자) 두 항의 값을 곱한 값을 반환합니다. 7 * 3 21 / (나눗셈 연산자) 좌항을 우항으로 나눈 값을 반환합니다. 7 / 3 2 % (나머지 연산자 또는 모듈로 연산자) 좌항의 값을 우항의 값으로 나눈 나머지를 반환합니다. 7 % 3 1 나눗셈 연산자와 나머지 연산자를 사용할 때에는 우항에 0이 위치할 수 없다. 나눗셈 연산자를 사용할 때, 좌항과 우항이 모두 int형이면 그 결과도 int형이기 때문에 소수점 이하의 값은 버려진다. 증감 연산자 num1++; // num1 = num1 + 1;과..

    문자열(String)

    String 타입의 변수 선언과 할당 큰따옴표("")로 감싸진 문자열 타입 // 문자열 리터럴을 String 타입의 변수 name에 할당하는 방법 String name1 = "Kim Coding"; // String 클래스의 인스턴스를 생성하는 방법 String name2 = new String("Kim Coding"); 문자열 리터널 할당과 인스턴스 생성 할당 방법 비교 공통점 String name1 = "Kim Coding"; String name2 = new String("Kim Coding"); System.out.print(name1); // "Kim Coding" System.out.print(name2); // "Kim Coding" 참조 타입의 변수에 할당 name1과 name2는 실제 ..

    변수(Variable)와 타입(Type)

    변수(Variable) 변수 : 값이 변할 수 있는 데이터를 임시적으로 저장하기 위한 수단 변수 선언 및 값 할당 class Example { public static void main(String[] args) { int num; // 변수 선언 num = 1; // 값 할당(초기화) num = 2; // 값 할당(재할당) } } 변수 명명 규칙 카멜 케이스(camelCase) int camelCase; //두 번째 단어부터 대문자로 시작 int 10Age; // Error 변수명으로 영문자, 숫자, _, $를 사용할 수 있으며, 영문자는 대소문자가 구별되어 인식 상수(Constant) 상수 : 변하지 말아야 할 데이터를 임시적으로 저장하기 위한 수단 상수는 final이라는 키워드를 사용해 선언할 수 ..

    Java란?

    자바의 특징 운영체제에 독립적 JRE(Java Runtime Environment: JVM(자바 가상머신) + 표준 클래스 라이브러리)가 설치되어 있는 모든 OS에서 실행이 가능 객체 지향 언어(Object Oriented Programming, OOP) OOP란, 여러 부품(객체)들을 만들고 조립하여 하나의 프로그램을 실행하는 것이다. 객체 지향적으로 설계된 프로그램은 유지보수가 쉽고 확장성이 높다. 함수형 프로그래밍 지원 함수형 프로그래밍을 지원하는 문법인 람다식과 스트림이 있다. 컬렉션의 요소를 필터링, 매핑, 집계 처리하기 쉬워지고 코드가 간결해지는 장점이 있다. 자동 메모리 관리(Garbage Collection) 가비지 컬렉터(Garbage Collector)를 실행시켜 자동으로 사용하지 않는..