본문 바로가기

JAVA5

오버로딩과 오버라이딩은 왜 어떤 바인딩인가? 바인딩이란 프로그램에서 사용된 구성요소의 실제값 또는 프로퍼티를 결정짓는 행위를 의미한다. 바인딩 시점에 따라 정적바인딩,동적 바인딩으로 구분한다. - 정적바인딩 컴파일 시점에 결정 오버로딩 private final static붙은 키워드 - 동적바인딩 런타임 시점에 결정 오버라이딩 다형성 및 상속이 가능한 이유 오버로딩 오버로딩은 동일한 메서드명을 가지지만 매개변수 타입,개수가 다른 메소드를 정의하는 것 class Test{ void hello(String a){ System.out.println("String : " +a); } void hello(int a){ System.out.println("int: "+ a); } void hello(String a,int b){ System.out.print.. 2023. 5. 16.
클래스는 언제 로딩될까 클래스 로딩? 클래스 로더가 .class파일을 찾아 JVM의 메모리에 올려놓는 과정을 의미한다. 로딩 종류 1. 로드타임 동적 로딩 2. 런타임 동적 로딩 두 로딩에 대한 설명은 JVM 동적 클래스 로딩 (tistory.com) 블로그를 참고 바랍니다. 클래스 로딩 시점 클래스의 인스턴스 생성 클래스의 정적 메소드 호출 클래스의 정적 변수 사용 (final x) ---> ? 타입에 따라 달랐다. String, 정의한 클래스 두개로 테스트 진행! 데이터타입이 클래스 타입인 경우로 정적 변수 사용(final 유무 관계없이) 클래스 로딩 확인 방식( 나는 CMD창에서 진행함 ) 1. java파일 컴파일 2. java -vervbose:class class파일명 javac Main.java java -vervb.. 2023. 4. 10.
싱글톤 지연로딩 싱글톤 지연로딩을 이해하면서 공부한 내용들이다. 싱글톤이란? 생성 패턴 중 하나로 인스턴스가 하나만 생성됨을 보장하는 패턴이다. 다시 말하면 인스턴스가 필요할 때, 똑같은 인스턴스를 만들지 않고 기존 인스턴스를 공유하는 것이다. 인스턴스가 하나됨을 보장은 어떻게 해야할까? 클래스 로딩 시 클래스 초기화는 최초 1회만 실행된다 라는 특성을 활용할 수 있다. 말로 먼저 설명한다면, 클래스의 초기화는 1번 뿐이기에 이 때 인스턴스를 생성을 하며, 인스턴스 필요 시 클래스 변수에 생성한 인스턴스를 할당한다면 인스턴스는 동일한 클래스변수를 바라볼 것이다. =>유일성 보장 클래스 초기화가 뭔데? 클래스, 인스턴스, 객체 간단한 정의 - 클래스 객체를 생성하기 위한 설계도, 틀 - 인스턴스 클래스를 바탕으로 실체 구.. 2023. 4. 7.
String 리터럴 방식, new연산자 방식 / 문자열 비교 equals == person.getName() == NAME.SEONGHYUN 비교 시 true로 생각 했으나 false반환 -> 좀더 확인 및 상세히 기재 필요 자바에선 String을 선언하는 방식이 두 가지 존재한다. new 연산자방식 리터럴 방식 둘의 차이를 알아본다. 더보기 String s1 = new String("seonghyun"); //new연산자 방식 String s2 = "seonghyun"; //리터럴 형식 String s3 = "gildong"; //리터럴 형식 1. 메모리 할당 영역 - 리터럴 방식 : heap영역 안 String constant pool - new연산자 방식 : heap영역 2. 선언 시 할당 및 참조 방식 -리터럴 방식 내부적으로 String의 intern()메서드 호출되어, .. 2023. 2. 8.