Java (83) 썸네일형 리스트형 쓰레드 Thread, 작업을 수행하는 단위 쓰레드 Thread 프로세스에서 작업을 수행하는 단위 ⭐process 프로그램이 실행되면 OS로부터 메모리를 할당받아 프로세스 상태가 된다. ⭐thread 하나의 프로세스에는 하나 이상의 쓰레드를 가지고 된다. 쓰레드는 실제 작업을 수행하는 단위이다. 메모리[@프로세스@프로세스@프로세스] ㄴ@프로세스[#쓰레드#쓰레드#쓰레드] 🤔Why?단일 쓰레드 환경이라면메모리 소모가 큰 작업을 할때 다른 작업을 할 수 없게 된다. 자바에서는 이럴때 run() 메소드를 활용해서 다른 작업을 동시에 할 수 있다. Run: cpu는 하나의 작업만을 수행 | Start => Runnable Not Runnable(sleep): 스케줄러가 메모리에 .. 예외처리 Exception, 예상치 못한 상황에 대비 ⭐예외처리 Exception 예상치 못한 상황, 예외를 처리하는 방법 이를 통해 💀 비정상 종료를 방지하고 💀 안정성과 신뢰성을 높일 수 있다. How? 😃 try-catch 구문 why? 😒 사용자를 믿을 수 없기 때문 ⭐finally 왜쓰는지? 자원해제를 위해.. 💀 프로그램이 점점 느려지는 메모리 누수 방지 ⭐ throw 예외를 강제로 발생시킨다 ⭐ throws 메서드안에서 예외를 발생시킨다. 예외처리 예제1)배열을 초과하는 예외를 발생시킨 뒤이를 try - catch 구문으로 처리했다.package _exception;/** * 4.24 * 예외처리 연습 */public class ArrayExceptionHandling { //main public static void mai.. 문자열 String 과 StringBuffer, 특별한 클래스 ⭐String 과 StringBuffer String 클래스 문자열을 표현하는데 사용된다. 💀불변 immutable 이다. 한 번 설정하면 변경할 수 없다. String 클래스를 통해 문자열을 저장하는 방식엔 2가지가 있다.리터럴 방식 String str1 = "Hello"; Heap 안에 존재하는 특정한 영역 String Constant Poll에 저장돼 재사용된다. new 연산자 사용 String str1 = new String("Hello"); Heap 메모리에 객체로서 올라간다. String 클래스의 특성으로 인해 문자열을 자주 변경한다면 메모리 낭비가 심해질 수 있다. 상수풀에 문자열을 저장한 뒤 이를 참조해서 재사용하면 메모리를 아낄 수 있다. ⭐StringBuffer String 클래스의.. 자바 API 문서, 보는 습관을 들이자 ⭐java API 문서 자바 개발자들은 자바 API를 이용한다. 이를 위해 API 목록과 사용법을 정리한 문서가 있다. APIApplication - 응용프로그램 Programming - 프로그래밍 Iterface - 인터페이스: 서로 연결해주는 접접(표준, 규약) ⭐ 자바를 통해 어떤 문제를 해결하려면 자신이 필요한 로직이 담긴 API 패키지를 찾아야 한다. 👍 한 사람이 모든 API를 외울 수는 없다. 그때 그때 문서에서 필요한 것을 찾아 쓰는 연습을 해야 한다. 많이 쓰는 자바 패키지 4가지java.lang - 기본 패키지와 클래스 java.util - 프로그램 제어, 데이터 저장 java.io - 주변기기와 파일 제어 java.net - 통신 👍API문서를 볼때의 실무팁계층구조를 먼저 보고필.. 오브젝트 Object 클래스, 자동으로 상속되는 최상위 클래스 ⭐오브젝트 클래스 Object Class Object 클래스는 모든 클래스의 최상위 클래스다. 자바는 Object 클래스를 제외하고 하나의 상속만을 제공한다. java.lang 패키지 안에 존재하며 import java.lang.*; 임포트 하지 않아도 자동으로 가져와준다. 이를 통해 많은 마더 메서드를 상속받아 쓸 수 있다. 대표적으로는 toString(), equals(), hashCode() 등이 있다. ⭐toString() 객체의 주소값을 호출 재정의: 모든 객체에 공통 메서드를 만들어주고 싶을때 ⭐ equals() 두 객체의 동등성 == 비교 재정의: 서로 다른 객체가 논리적으로 동등하도록 만들고 싶을때 ⭐ hashCode() 객체의 고유한 정수값을 만들어서 독립성을 보장 빠른 검색과 분류 저장.. 인터페이스 Interface, 동작을 정의하는 추상타입 ⭐인터페이스 Interface 객체의 동작을 정의하는 추상타입으로 클래스가 구현할 메서드의 설계도를 제공한다. 👍다형성 👍 유연성 👍 코드재사용성을 높일 수 있다. 예제 1)인터페이스(동물 )클래스(새,개)설계를 통해 인터페이스 사용법을 알아봤다. public interface Animal { //인터페이스}public class Bird implements Animal { //구현클래스}public class Dog implements Animal { //구현클래스}package com.interface_.animal;/** * 4.23 인터페이스 * * How * Interface를 선언하면 된다. * 여기 안에 선언된 메서드는 * 모두 추상메서드가 돼야 한다. * * Why? */public.. 추상 클래스 Abstrct class, 부모클래스를 만들지만 객체로 만들기는 싫을때 ⭐추상 클래스 abstract class 추상 메서드를 포함한 클래스 상속에서 사용되는 개념으로 객체로 만들기는 좀 애매할때 사용한다. class 앞에 abstract가 붙으면 된다. ⭐추상 메서드 선언부만 있고 바디가 없는 형태 예 int add(int x, int y); void 앞에 abstract가 붙으면 된다. 추상클래스를 (동물 - 인간, 호랑이) 관계를 통해 이해해봤다.package com.abstract_.animal;/** * 4.22 5교시 추상클래스 * * 추상클래스 * abstract class * * 하나 이상의 추상 메서드를 포함한 클래스 * class 앞에 abstract가 뭍으면 추상클래스다. * * 강제적으로 타입으로만 설계하는 기법이다. * * abstract - 강제.. 다형성 Polymorphism, 유연한 코드 작성을 위한 개념 ⭐다형성 Polymorphism 하나의 데이터 타입을 다양한 형태로 바라볼 수 있다는 개념 한 요소가 여러 형태를 가질 수 있다는 가능성을 가리킨다.⭐ 다형성의 장점은부모 타입으로 자식 클래스를 인스턴스화 할 수 있다는 점이다.이는 자바의 굉장한 기능이다. 다형성을 이해한다면 유연한 코드를 작성할 수 있다. 예제) 동물 클래스를 인간, 호랑이 클래스가 상속하게 하자package com.polymorphism;/** * 4.22 3교시 다형성 */public class Animal { public void move() { System.out.println("동물이 움직인다"); } public void eat() { System.out.println("동물이 먹는.. 이전 1 2 3 4 5 6 7 8 ··· 11 다음