Java(27)
-
멀티 스레드(Thread)
멀티스레드는 하나의 프로세스 내에서 여러 개의 스레드를 동시에 실행하는 기법이다. 스레드는 프로세스 내에서 실제로 작업을 수행하는 최소 단위로, 프로세스의 리소스를 공유한다. 각 스레드는 독립적인 실행 흐름을 가지며, 자신만의 스택을 가지지만, 힙 메 모리와 코드 영역은 공유한다. 스레드 생성 방법 2가지 1. extents Thread (스레드를 상속받기) - Thread 클래스를 상속받는 것은 가장 직관적인 방법이다. - 사용자는 Thread 클래스를 확장하고 run() 메서드를 오버라이드하여 스레드가 실행할 코드를 정의한다. class MyThread extends Thread { public void run() { System.out.println("스레드가 실행 중입니다."); } } publi..
2024.04.22 -
Java IO(입출력)
자바 IO는 파일에서 데이터를 읽고 쓰기, 네트워크를 통한 데이터 전송, 사용자 입력 처 리 등 다양한 방법으로 사용 InputStream, OutputStream, Reader, Writer 1. byte단위 입출력 Stream byte단위 입출력 스트림은 데이터를 바이트 단위로 읽고 쓰는 기능을 제공한다. byte단위 입출력 스트림은 주로 이진 데이터를 다룰 때 사용된다. 이진 데이터란 텍스 트가 아닌 파일이나 네트워크 데이터 같은 것을 말합니다. 예를 들어, 이미지, 오디오 파 일, 비디오 파일 등이 이진 데이터에 해당한다. 1-1 InputStream (1). FileInputStream: 파일로부터 바이트 단위로 데이터를 읽는 데 사용됩니다. 이 클래 스는 파일 시스템에 저장된 데이터를 읽는 기..
2024.04.22 -
내부 클래스
자바에서 클래스 내부에 또 다른 클래스를 정의하는 개념 - 외부 클래스의 멤버처럼 취급 - 특별한 접근 권한과 기능을 가짐 - 내부 클래스는 주로 외부 클래스와 긴밀하게 관련된 작업을 수행하기 위해 사용 1. 접근성과 은닉성 - 외부 클래스의 필드와 메소드에 직접적으로 접근할 수 있음 - 외부 클래스의 private 멤버들에도 접근이 가능하다는 것을 의미 - 외부에서는 내부 클래스의 private 멤버에 접근할 수 없어 은닉성을 제공 2. 코드의 조직화 - 관련된 기능을 같은 외부 클래스 안에 묶어두면, 코드를 더 잘 조직화하고 관리 할 수 있음 - 코드의 가독성과 유지보수성을 향상시킴 3. 종류 - 멤버 내부 클래스, 로컬 내부 클래스, 익명 내부 클래스, 정적 내부 클래스 4. 특정 상황에 적합 - ..
2024.04.16 -
예외처리(Exception)
- 프로그램 실행 중에 발생할 수 있는 예상치 못 한 상황(예외)에 대비하여 프로그램의 정상적인 흐름을 유지하고 예외 상황을 안전 하게 처리하는 프로그래밍 기법 - 에외처리가 없으면 프로그램이 비정상적으로 종료된다. 기본 구조 자바에서 예외 처리는 주로 try-catch-finally 블록을 사용하여 구현됩니다. try 블록: 예외가 발생할 수 있는 코드를 포함합니다. catch 블록: try 블록에서 발생한 예외를 처리합니다. finally 블록 (선택적): 예외 발생 여부와 관계없이 실행되는 코드를 포함합니 다. public class Main { public static void main(String[] args) { try { int result = 10 / 0; // 예외 발생 가능 코드 } c..
2024.04.16 -
인터페이스(Interface)
- 서로 관계가 없는 물체들이 상호 작용을 하기 위해서 사용되는 장치나 시스템 - 클래스 구조상의 관계와 상관없이 클래스들에 구현되어질 수 있는 규약 - 즉, 클래스들 사이의 유사한 특성을 부자연스러운 상속 관계를 설정하지 않고 얻어냄 언제 사용할까? - 하나 또는 그 이상의 클래스들에서 똑같이 구현되어질 법한 메소드를 선언하는 경우 - 클래스 자체를 드러내지 않고 객체의 프로그래밍 인터페이스를 제공하는 경우 인터페이스의 상속 - 인터페이스는 다중상속을 지원하지 않는 자바에서 다중 상속의 장점을 활용하기 위해 도입 - 한 클래스는 하나의 부모클래스를 가지며 하나 이상의 인터페이스를 구현할 수 있음 - 인터페이스 사이에서는 다중 상속이 가능함 - 인터페이스는 interface 키워드로 선언하고 imple..
2024.04.16 -
추상 클래스
추상 클래스 - abstract 키워드로 사용 - 확장만을 위한 용도로 정의되는 클래스 - 일반 메소드를 가질 수 있음 - 객체화 할 수 없음 추상 메소드 - 메소드에 대한 구현을 갖지 않음 - 추상 클래스의 자식 클래스가 해당 메소드를 구현하도록 강요하기 위함 - 추상 메소드는 추상 클래스 안에만 존재 가능 //추상 클래스 abstract public class Shape implements Drawable { //추상 메소드 public abstract double calculateArea(); } public class Triangle extends Shape implements Drawable{ private double base; private double height; public Trian..
2024.04.16