목록Language/Java (7)
새발블로그
1. 스레드(Thread)란?스레드는 프로그램 내에서 독립적으로 실행되는 흐름의 단위.하나의 프로세스는 최소한 하나 이상의 스레드를 가질 수 있다.프로세스: 프로그램이 메모리에서 실행되는 단위스레드: 프로세스 내에서 실행되는 작업의 흐름2. 스레드 생성 방법1) Thread 클래스 상속Thread 클래스를 상속받아 run() 메서드를 오버라이드하고, start() 메서드를 호출하여 스레드를 시작한다.class MyThread extends Thread { @Override public void run() { System.out.println("Thread is running"); }}public class Main { public static void main(Strin..
1. SRP (Single Responsibility Principle) - 단일 책임 원칙하나의 클래스는 하나의 책임만 가져야 한다.설명: 클래스는 하나의 작업만 수행해야 하며, 이로 인해 클래스가 변경되는 이유도 하나여야 한다.장점: 유지보수성이 높아지고, 각 클래스가 독립적으로 변경될 수 있다.// SRP 준수 (좋은 예시)public class UserService { public void registerUser(String username, String password) { /* 회원가입 로직 */ }}public class EmailService { public void sendWelcomeEmail(String email) { /* 이메일 전송 로직 */ }} UserService..
1. 상속의 개념상속은 "IS-A 관계" 또는 "Kind-Of 관계"라고도 불린다.예를 들어, Employee 클래스는 Person 클래스를 상속받으면, Employee는 "Person"이라는 특성을 지닌 "Employee IS A Person"이 된다.상속 예시class Person { String name;}class Employee extends Person { // Employee IS A Person String employeeId;}class Student extends Person { // Student IS A Person String studentId; String major;} 2. 상속의 특징자식 클래스는 부모 클래스의 모든 멤버 변수와 메서드를 상속받음자식 ..
1. 클래스의 구성 요소1.1 멤버변수 (Fields)인스턴스 변수 (Non-static): 각 객체마다 독립적으로 존재하는 변수. 객체가 생성될 때마다 메모리에 할당.클래스 변수 (Static): 클래스가 메모리에 로드될 때 한 번만 생성되고 모든 객체가 이를 공유하는 변수. static 키워드를 사용하여 선언.1.2 생성자 (Constructor)생성자는 객체가 생성될 때 호출되는 특수한 메서드로, 객체의 초기화를 담당.기본 생성자: 매개변수가 없는 생성자.매개변수가 있는 생성자: 객체 생성 시 초기화할 값을 전달받아 설정.생성자는 객체 생성 시 자동 호출되며, 리턴값이 없다.자바는 소멸자가 없고, 메모리 관리는 JVM에서 자동으로 한다.생성자 예시:class Person { String nam..
1. Java 메모리 구조 개요자바의 메모리 구조는 크게 Method Area, Heap, Stack, PC Register, Native Method Stack으로 나눌 수 있다. 각 영역은 특정한 데이터를 저장하고 관리하는 역할을 한다.자바 메모리 영역Method Area (메소드 영역): 클래스 정보, static 변수, 상수 등을 저장합니다. 모든 클래스는 이 영역에 로드된다.Heap (힙 영역): 객체 인스턴스를 저장합니다. 객체가 생성될 때 힙 영역에 할당되고, 객체가 더 이상 참조되지 않으면 Garbage Collector(GC)가 이를 정리한다.Stack (스택 영역): 메서드 호출 스택, 지역 변수, 매개변수 등을 저장한다. 메서드 호출 시 스택 프레임을 쌓고, 메서드가 종료되면 해당 프..
자바는 1990년대 초 개발되어, 정말 많은 시스템에서 널리 사용되고 있는 객체 지향 프로그래밍 언어이다.자바의 강점 중 하나는 플랫폼 독립성이다. 한 번 작성하면 여러 운영체제에서 실행될 수 있기 때문에, "Write Once, Run Anywhere"라는 특성을 갖고 있다.1. 자바(Java)의 기본 특징플랫폼 독립성"Write Once, Run Anywhere" : 한 번 작성하면 어떤 운영체제에서도 실행 가능메모리 관리개발자가 직접 관리하지 않고, JVM이 메모리 자동 관리 (GC: Garbage Collection)바이트 코드 기반자바 코드를 컴파일하면 바이트 코드(.class 파일)로 변환되어 JVM이 실행JIT 컴파일런타임 시점에 자주 쓰이는 코드를 Native Code(기계어)로 변환해서 ..
03-03 문자 ==는 동일한 객체인지 판단 여부 따라서 문자열의 값을 비교할 때는 equals를 사용해야한다 String.format : 문자열을 리턴하는 메서드 System.out.printf : 문자열을 출력하는 메서드 03-11 형변환과 final String.valueOf(정수), Integer.toString(정수) 모두 정수를 문자열로 바꾸어 리턴한다. 실수 형태의 문자열을 숫자형으로 변경하려면 Double.parseDouble()을 사용하여 실수로 바꾼후에 사용해야 한다. 06-01 콘솔 입출력 위와 같이 작성한 Sample.java 소스를 컴파일하여 Sample.class 파일을 생성한 후 유닉스에서 다음처럼 실행하면 out.txt 파일에는 "일반 출력" 이라는 문자열이 저장되고 erro..