Java 102

자바 multi-threading

multi-threading 자바에서 멀티 스레딩(Multi-threading)은 프로그램의 여러 부분이 동시에 실행되도록 하는 기술이다.이를 통해 자원의 효율적 사용과 응용 프로그램의 반응성 향상을 달성할 수 있다.멀티 스레딩은 하나의 프로세스 내에서 여러 개의 스레드를 생성하여 각 스레드가 작업을 수행하도록 함으로써 병렬 처리를 가능하게 한다. 여러 thread가 동시에 수행되는 프로그래밍, 여러 작업이 동시에 실행되는 효과 thread는 각각 자신만의 작업 공간을 가짐 ( call Stack ) 각 thread 사이에서 공유하는 자원이 있을 수 있음 (자바에서는 static instance) 여러 thread가 자원을 공유하여 작업이 수행되는 경우, 서로 자원을 차지하려는 race conditi..

Java 2024.05.03

자바 Thread

Thread란? process란? 저장되어 있는 프로그램이 실행되면 OS로 부터 메모리를 할당받아 프로세스 상태가 된다. 하나의 프로세스는 하나 이상의 thread를 가지게 되고, 실제 작업을 수행하는 단위는 thread이다.      Thread를 추가로 만들어 사용하는 방법 1. 첫 번째 방법은 Thread 클래스를 상속하여 만들 수 있다. package useful.ch05;/** * 쓰레드를 추가하는 방법 - 상속을 활용할 수 있다. * Thread --> Runnable --> run() */public class MyThread extends Thread { // 다형성 적용 : MyThread -> Thread 로 볼 수 있다. // 우리가 정의한 클래스에서 run() 메서드를 오버라이드..

Java 2024.05.02

Swing (이미지 겹치기)

package ch04;import javax.swing.Icon;import javax.swing.ImageIcon;import javax.swing.JFrame;import javax.swing.JLabel;/** * JLabel 이용해서 이미지를 다룰 수 있다. * JLabel.add(); 메서드를 통해서 이미지를 겹칠 수 있다. * 좌표 기준으로 이미지를 세팅하려면 * 배치관리자를 null 값으로 세팅해야 한다. */public class MyFrame extends JFrame { private JLabel backgroundMap; private JLabel player; public MyFrame() { initData(); setInitLayout(); } private void ini..

Java 2024.05.02

Exception(예외처리)

예외 처리 자바 프로그래밍에서의 예외 처리(Exception Handling)는 프로그램 실행 중 발생할 수 있는 예상치 못한 상황(예외)을 관리하는 방법이다.예외 처리를 통해 프로그램의 비정상적인 종료를 막고, 예외 상황을 보다 적절하게 처리하여 프로그램의 안정성과 신뢰성을 높일 수 있다.   자바에서는 다음과 같은 방법으로 예외를 처리합니다 try { // 예외가 발생할 수 있는 코드} catch (ExceptionType1 e) { // ExceptionType1 예외를 처리하는 코드} catch (ExceptionType2 e) { // ExceptionType2 예외를 처리하는 코드} try { // 예외가 발생할 수 있는 코드} catch (Exception e) { ..

Java 2024.04.30

String, StringBuffer 클래스

String 클래스  String 선언하는 두가지 방법 String str1 = "Hello"; > 리터럴 방법으로 선언 > 상수풀로 위치 String str2 = new String("Hello"); > 힙 메모리로 String str3 = new String("Hello"); > 힙 메모리로 선언하는 방법에 따라서 올라가는 위치가 다르다. 힙 메모리에 인스턴스로 생성되는 경우와 상수 풀(constant pool)에 있는 주소를 참조하는 두 가지 방법 힙 메모리는 생성될때마다 다른 주소 값을 가지지만, 상수 풀의 문자열은 모두 같은 주소 값을 가진다. String Constant Pool 이란  시나리오 코드1 package useful;public class StringTest { public st..

Java 2024.04.29

Object 클래스

Object 클래스Object 클래스는 모든 클래스의 최상위 클래스이다.모든 클래스는 Object에서 상속받고, Object 클래스의 메서드 중 일부는 재정의 해서 사용할 수 있다.자바에서는 단일 상속만을 지원한다고 하였는데, Object 클래스를 제외한 단 하나의 상속만 받을 수 있다.Object 클래스는 java.lang 패키지 안에 존재 한다.import java.lang.*; 프로그래밍 시, import 하지 않아도 자동으로 imort 된다.많이 사용하는 기본 클래스들이 속한 패키지이며 String, Integer, System… 등이 존재 한다. Object 클래스의 메서드 활용 Object 클래스의 메서드 중 일부는 재정의해서 사용할 수 있다.재정의 할 수 없는 메서드는 final 로 선언 ..

Java 2024.04.29

인터페이스(interface)

인터페이스모든 메서드가 추상 메서드로 선언됨 ( public abstract )모든 변수는 상수로 선언됨 ( public static final )  package basic.ch22;interface Animal { // 추상 메서드만 선언 가능 // public abstract void eat(); // public abstract void move(); // 축약 가능 void eat(); void move();}// implements - 구현하다 class Dog implements Animal { @Override public void eat() { System.out.println("먹이를 먹다"); } @Override public void move() { System.out.pr..

Java 2024.04.25

추상 클래스(abstract class)

추상 클래스추상 클래스(Abstract Class)는 하나 이상의 추상 메서드를 포함하고 있는 클래스이다.추상 메서드는 구현이 없는(메서드 몸체{ }가 없는)메서드 이며, 추상 클래서 내에서는 이러한 추상 메서드의 정의만을 포함하고 있다.추상 클래스는 직접적으로 객체를 생성할 수 없으며, 다른 클래스에서 상속받아 구현되어야 한다.   추상 메서드란? int add(int x, int y); // 선언 int add(int x, int y){ } // 구현부가 있음, 추상 메서드 아님  package basic.ch21;/** * 추상 클래스란? * 추상 메서드를 포함하고 있거나 * abstract 키워드를 가지고 있는 클래스를 말한다. * 추상 클래스는 바로 new 키워드로 객체를 생성할 수 없다..

Java 2024.04.25

다형성(Polymorphism)

다형성다형성은 하나의 데이터 타입을 다양한 형태로 바라볼 수 있는 것다형성(Polymorphism)은 객체 지향 프로그래밍에서 중요한 개념 중 하나이다.이는 한 요소(예: 메서드, 클래스)가 여러 형태를 가질 수 있는 능력을 의미합니다.다형성은 코드의 유연성과 재사용성을 높여주며, 상속, 추상화, 인터페이스와 함께 사용된다.  package basic.ch20;public class Animal { public void move() { System.out.println("동물이 움직입니다"); } public void eating() { System.out.println("먹이를 먹습니다"); } } package basic.ch20;public class Human extends Animal { ..

Java 2024.04.25

연관, 의존 관계

연관관계(Association)와 포함관계(Composition)는 객체지향 프로그래밍에서 객체 간의 관계를 나타내는 두 가지 다른 개념이다. 그러나 이 둘은 완전히 독립적인 개념이 아니며, 포함관계는 연관관계의 특수한 형태로 볼 수 있다.즉, 모든 포함관계는 연관관계이나, 모든 연관관계가 포함관계인 것은 아니다. 연관관계(Association)연관 관계는 일반적으로 한 클래스의 객체가 다른 클래스의 객체와 상호작용을 하지만, 둘 사이의 생명주기에 대한 의존성은 갖지 않는 경우를 의미한다.예를 들어, 한 은행(Bank)과 여러 고객(Customer) 사이의 관계가 연관 관계의 사례가 될 수 있다.고객은 하나의 은행에 계좌를 가질 수 있고, 은행은 여러 고객을 가질 수 있지만, 고객의 생명주..

Java 2024.04.24