자바(Java) - 쓰레드란? start와 run의차이
·
JAVA-기초/JAVA기본
Java는 단일 쓰레드 언어이기 때문에 한 번에 하나의 작업만 수행할 수 있습니다. 그러나 Java 비동기 처리를 위한 여러 가지 메커니즘을 제공합니다. 예를 들어, setTimeout 함수를 사용하여 지정된 시간이 지난 후에 함수를 실행할 수 있습니다. 이 경우에는 작업이 백그라운드에서 처리되고, 타이머가 만료되면 이벤트 루프가 해당 함수를 호출합니다. 또한 웹 워커(Web Workers)를 사용하여 백그라운드 스레드에서 실행되는 별도의 Java파일을 만들어 실행할 수 있습니다. 이 경우에는 워커 스레드에서 실행되는 코드와 메인 스레드에서 실행되는 코드가 분리되어 있습니다. 여기에 예시 코드가 있습니다: // setTimeout을 사용하여 비동기적으로 작업을 예약하는 예시 코드 console.log("..
자바(Java) 참조변수의 형변환(업캐스팅/다운캐스팅)
·
JAVA-기초/JAVA기본
참조변수의 형변환? 기본형 변수와 같이 참조변수도 형변환이 가능하다. 단,서로 상속관계에 있는 클래스 사이에서만 가능하다. 자손타입과 조상타입간에 서로 참조변수로의 형변환만 가능하다. 이는 바로 윗 조상이 아닌 최상위 조상인 Object클래스와도 형변환이 가능하다. 업 캐스팅과 다운캐스팅 업 캐스팅 자손 클래스 -> 조상 클래스 : 형변환 생략가능 예시) 다운캐스팅 조상 클래스 -> 자손 클래스 : 형변환 생략불가능 예시를 보면서 이해해보자. 사진에서처럼 조상 클래스1개와 자손 클래스 2개가 있다. 조상클래스와 자손클래스의 형변환이 어떻게 이뤄지는지, 어떤 상황에서 에러가 발생하는지 알아보자. 참고로 자손클래스간의 관계는 전혀 발생하지 않는다. Keybaord - Neonkeyboard // Keyboa..
자바(Java) 다형성(조상클래스,자손클래스)
·
JAVA-기초/JAVA기본
다형성? 여러 가지 형태를 가질 수 있는 능력이란 뜻이며, 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 한다. 더 자세히 말하면, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하는 것이다. Keyboard와 NeonKeyboard는 서로 상속관계에 있으며 Keyboard는 조상 클래스, NeonKeyboard는 자손클래스이다. 참조 변수 k 에는 키보드 객체의 주소 값이 담겨 있으며, 참조 변수N에는 네온키보드의 값이 담겨있다. 이처럼 참조변수와 인스턴스의 타입이 일치하는 것이 보통이다. 이번엔 서로 상속관계에있는 두 클래스에서 조상 클래스의 타입의 참조변수로 자손클래스를 참조해보자. Keyboard(조상 클래스)참조변수 K에 NeonKeyboard(자손클래스)의 ..
자바(Java) 인스턴스(객체), 객체 배열
·
JAVA-기초/JAVA기본
인스턴스(instace)? 어떤 클래스로부터 만들어진 객체를 그 클래스의 인스턴스라고 한다. 인스턴스는 객체와 같은 의미이다. 예를 들어 책상은 객체이며, 책상 클래스의 인스턴스이다.라고 생각할 수 있다. 객체의 구성요소 객체는 다양한 속성과 다양한 기능을 갖는다. 속성 - 멤버변수, 특성, 필드, 상태 기능 - 메서드, 함수, 행위 인스턴스의 생성 및 사용 인스턴스(객체)는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 동일해야한다. Computer CP = new Computer();
자바(Java) - 제어자 주의사항
·
JAVA-기초/JAVA기본
제어자를 조합해서 사용할 때 주의해야 할 사항 1. 메서드에 static과 abstract를 함께 사용할 수 없다. 2. 클래스에 abstract와 final을 동시에 사용할 수 없다. fianl은 클래스를 확장할 수 없다는 의미 abstract는 상속을 통해서 의미를 부여한다. 서로 상반되기 때문에 동시에 사용할 수 없다. 3. abstract메서드의 접근 제어자가 private일 수 없다. absttract메서드는 자손클래스에서 의미를 구현해주어야 하기 때문에 접근 제어자가 private이면 접근할 수 없다. 4. 메서드에 private와 fianl을 같이 사용할 필요는 없다. 접근 제어자가 private인 메서드는 오버라이딩 될 수 없기 때문에 final을 사용하지 않아도 캡슐화 되어 다른 클래스에..