Java Object

Jiyeong·2022년 1월 19일
0

JAVA

목록 보기
3/31

Interface
: 공통적으로 사용되는 속성을 정의하고자 하는 경우 사용

내부 클래스 사용 목적 :
클래스 선언 배누에 다른 클래스 선언
클래스를 그룹화하여 하나의 클래스에 둘 수 있어 편리
다른 클래스에 의해 공유되지 않는 구현부를 가질 수 있음

Inner Class : INNER -> OUTER 참조시 outerclass.this 해줘야 함!
outer 클래스의 객체가 생성되었을 때만 inner 클래스를 참조할 수 있음.

static을 inner 클래스를 정의하면 이 클래스 밖에서 정의하는 것과 같은 상태.

instanceof : 타입에 대해 찾아보는 키워드
들어 오는 타입 super에 있어야만 함. super에 해당하지 않으면 에러가 남.

Type Casting :
객체의 타입을 알아보기 위해선 instanceof를 사용.
객체를 캐스팅함으로써 그 객체의 모든 멤버에 접근 가능.

Object Class : 모든 클래스의 최상위 클래스.
extends를 쓰지 않은 클래스를 선언해도 extends Object한 거랑 같음.

equals

== 연산자는 두 개의 레퍼런스가 같은 지를 판단.
Object 클래스의 equals()는 ==과 같은 의미로 구현.
equals()를 오버라이딩 할 때 hashCode()를 오버라이딩 해야 함.

String 연산시 무조건 eqauls() 함수 이용하기!

toString 메소드 : 객체를 String으로 바꿈.
String 연결시 사용. toString() 오버라이드시 객체의 정보를 가독성 있는 형식으로 제공.

Wrapper Class:

Object Runtime 구조:

자바 VM에 관한 내용

Stack > local variable
Heap > new로 생성자를 만들면 여기 드감
Class Area > 클래스 만들면 여기여기여기 여기~

JVM 명세의 이해

Java virtual machine
명령어들의 집합과 각 명령어의 의미 정의 : 바이트 코드
바이트 코드는 플랫폼이 독립적으로 동작해야 함.
바이트 코드는 보안에 문제 없는 지 확인하는 알고리즘
*verification algorithm
바이트 코드

  • Stack 기반의 명령어 + 객체 지향 명령어로 구성
profile
깃스타가 되고 싶은 벨플루언서

0개의 댓글