deamon thread 데몬스레드는 주 스레드의 작업을 돕는 보조적인 역할을 수행하는 스레드이다. 주 스레드가 종료되면 데몬 스레드는 강제적으로 자동 종료된다. (그이유는 주 스레드의 보조 역할을 하므로 존재의미가 없어지기 때문) 이 점을 제외하면 일반스레드랑 크게 차이가 없다. 데몬스레드 적용 예: 워드프로세서의 자동저장, 미디어플레이어의 동영상 및 음악재생, 가비지컬렉터 등 이 기능들은 주 스레드(워드프로세스,미디어플레이어,jvm)가 종료되면 같이 종료 스레드를 데몬으로 만들기 위해서는 주 스레드가 데몬이 될 스레드의 setDaemon(true)를 호출해 주면 됨 public static void main(String[] args) { AutoSaveThread thread = new AutoSav..
원본 출처 : https://yuja-kong.tistory.com/158 컴파일, 빌드, 배포에 대해 이해하기 작성 동기 우리가 백엔드 개발을 하는 상황을 예를 들어보자. IntelliJ나 eclipse 같은 개발 툴을 사용하여 원하는 로직을 개발 할 것이다. 만든 것을 테스트 해보기 위해 main class를 run 하면 툴이 알 yuja-kong.tistory.com 현실 세계에서의 컴파일, 빌드, 배포 영문 책이 서점에 오기까지의 과정을 예를 들어보자. 번역가가 영문으로 된 글을 한글로 번역한다. -> 컴파일 출판사에서는 번역된 글을 모아서 한 권의 책으로 엮는다. -> 빌드 책을 서점으로 배송해서 원하는 위치에 진열한다. -> 배포 프로그래밍에서의 컴파일, 빌드, 배포 사용자가 작성한 코드를 컴..
print ( 줄 바꿈 없이 한 줄로 출력) / println ( 출력 후 줄 바꿈) printf (서식이 있는 출력) 지시를 통해 변수의 값을 여러 가지 형식으로 바꿔서 출력할 수 있다. Ex System.out.printf ("출력 서식", 출력할 내용); %d 정수형 출력 %s 문자형 출력 %f 실수형 출력 %c 문자열 출력 %n 줄 바꿈 %b boolean 출력 printf 예제 출력 결과 : 줄을 바꿀수 있다. 방을 2년 계약했다. 나는 서울에 살고있다. String.format() 문자열 형식 설정하기 리턴되는 문자열의 형태를 지정하는 메소드 서식 문자열의 앞에 %를 붙여 문자열에 사용하면 그 위치에 변수의 값을 형식화 하여 대입 가능하다. 대문자나 소문자를 지정할 수 있는 서식 문자열에서 대..
참조변수 super - 객체 자신을 가리키는 참조변수, 인스턴스 메서드(생성자)내에만 존재 - 조상의 멤버를 자신의 멤버와 구분할 때 사용 ▶ this : 현재 클래스의 참조를 가리킵니다 ▶ super : 부모 클래스의 참조를 가리킵니다 예제1 예제2 둘다 같은 주소를 가르키니 this.x 와 super.x가 동일한 10 으로 나온다. 생성자 super() - 조상의 생성자를 호출할 때 사용 - 조상의 멤버는 조상의 생성자를 호출해서 초기화 ▶ this() : 같은 클래스의 다른 생성자를 호출할 때 사용 ▶ super() : 자식 생성자 안에서 부모 클래스의 생성자를 호출할 때 사용한다. 자손의 생성자가 조상의 멤버를 초기화하고있다. 자손의 생성자는 자신이 선언한 것만 초기화 해야한다 위 예제의 Poin..
break문 자신이 포함된 하나의 반복문을 벗어난다. int i = 0; while(true){ // ← 특별한 제어가 없다면 이 while문은 무한으로 반복한다. if(i == 10){ // i가 10이 되면 if문 실행 break; // 멈춘다 } i++; } Continue문 자신이 포함된 반복문의 끝으로 이동 - 다음 반복으로 넘어간다. for(int i = 1 ; i
예외에 대한 설명 중 틀린 것은 무엇입니까? 1.예외는 사용자의 잘못된 조작, 개발자의 잘못된 코딩으로 인한 프로그램 오류를 말한다. 2.RuntimeException의 하위 예외는 컴파일러가 예외처리코드를 체크하지 않는다. 3.예외는 try-catch 블록을 사용해서 처리된다. ✔ 4.자바 표준 예외만 프로그램에서 처리할 수 있다. *사용자정의예의를 만들 수 있다. try-catch-finally 블록에 대한 설명중 틀린 것은 무엇입니까? 1.try{} 블록에는 예외가 발생할 수 있는 코드를 작성한다. 2.catch{} 블록은 try{} 블록에서 발생한 예외를 처리하는 블록이다. ✔ 3.try{} 블록에서 return 문을 사용하면 finally{} 블록은 실행되지 않는다 * try{ return; }..
객체의 해시코드 객체를 식별할 하나의 정수값을 말한다. Object의 hashCode()메소드는 객체의 메모리번지(주소)를 이용해서 해시코드(int)를 만들어 리턴 *따라서 개별객체는 해시코드가 모두다르다. 논리적동등비교시 hashCode() 오버라이딩의 필요성 컬렉션 프레임워크의 HashSet, HashMap, Hashtable과 같은 (컬렉션프레임워크) 클래스는 두객체가 동등한 객체인지 판단할 때 아래와 같은 과정을 거침 따라서 논리적 동등 객체는 hashCode()가 리턴하는 값도 같아야됨 (논리적으로 동등하다는것 = 같은객체이건 다른 객체이건 상관없이 객체가 저장하고 있는 데이터가 동일함을 뜻) equals()를 오버라이딩하면 hashCode()도 오버라이딩해야한다. equals()결과가 true..
중첩멤버클래스에 대한 설명으로 틀린 것은 무엇입니까? 1.인스턴스 멤버 클래스는 바깥 클래스의 객체가 있어야 사용 될 수 있다. 2.정적 멤버 클래스는 바깥 클래스의 객체가 없어도 사용 될 수 있다. 3.인스턴스 멤버 클래스 내부에는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다. ✔ 4.정적 멤버 클래스 내부에는 바깥 클래스의 인스턴스 필드를 사용할 수 있다. *정적멤버클래스는 바깥클래스의 객체가 없어도 사용을 할 수 있기 때문에, 객체가 반드시 있어야 사용할수있는 바깥클래스의 필드를 정적멤버클래스 내부에 둘수없다. 로컬클래스에 대한 설명으로 틀린 것은 무엇입니까? 1.로컬클래스는 메소드 내부에 선언된 클래스를 말한다. 2.로컬 클래스는 바깥 클래스의 모든 필드와 메소드를 사용할 수 있다. ✔ 3..
자바 API - 이미 제공되어있는 것들 . 자바에서 기본적으로 제공하는 라이브러리 예: sout ...equals...등등 https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com java.lang 패키지 - 자바 프로그램의 기본적인클래스를 담은 패키지 - import 없이 사용 Object 클래스 다른클래스를 상속하지 않으면 암시적으로 java.lang.Object클래스를 상속 Object의 메소드는 모든 클래스에서 사용할 수 있다. 이미지출처 : 이것이자바다
객체비교 equals() Object의 equals() 메소드 package sec03.exam01_equals; public class Member { public String id; //생성자 (클래스를 토대로 인스턴스를 처음 만들때 세팅하는 것) //String 매개변수 id를 받아서 필드값 id에 할당(전달, 대입) public Member(String id) { this.id = id; } /*메서드 : 이 인스턴스가 가지고있는 기능! 메서드 : Object에 있는 eauals 매서드를 재정의 오버라이딩은 상속을 받아서 재정의하는 것인데, Member은 상속 어디서? 모든클래스는 Object라는 클래스에서 시작되며, 상속을 받습니다. equals를 재정의해서 새로운 비교구문을 스스로 만들기 @ ..
인터페이스에 대한 설명으로 틀린 것은 무엇입니까? 1.인터페이스는 객체사용설명서 역할을한다 2.클래스가 인터페이스의 모든 메소드를 오버라이딩하지않으면 추상클래스가 된다 ✔ 3.인터페이스에는 인스턴스 필드를 가질 수 있다 인터페이스는 객체를 만들수 없다. 4.구현객체는 인터페이스 타입으로 자동변환된다 인터페이스 다형성에 대한 설명으로 틀린 것은 무엇입니까? 1.필드가 인터페이스 타입일 경우 다양한 구현 객체를 대입할 수 있다. 필드의 다형성 2.매개변수가 인터페이스 타입일 경우 다양한 구현 객체를 대입할 수 있다. 3.배열이 인터페이스 타입일 경우 다양한 구현 객체들을 저장할 수 있다. ✔ 4.구현객체를 인터페이스 타입으로 변환하려면 강제타입변환을 해야한다. 자동타입변환.,, 강제타입변환 할 필요가 없다...