본문 바로가기

Dev-/Java

프로세스, 스레드 프로세스: 실행중인 하나의 어플리케이션스레드: 하나의 프로세스 내의 코드 실행 흐름(작업) 따라서,프로세스는 각자 할당받은 메모리를 가지고 있기 때문에, 서로 독립적이고,스레드는 다른 스레드에 영향을 미치게 됩니다.
Java equals(), hashCode()의 차이 자바를 처음 공부할 때 많이 헷갈렸던 내용입니다.재정의하지 않은 기존의 equals() 메서드는 비교 연산자인 ==와 동일한 검사를 합니다. 즉, 객체가 참조하고 있는 주소값을 비교하는 것이죠. 실제로 메서드를 사용할 때를 기준으로 기억하시는 것이 더 좋을 듯 합니다. equals(): 같은 객체이건, 다른 객체이건 객체가 저장하고 있는 데이터가 동일한지 검사hashCode(): 동일 객체인지 검사
인터페이스, 추상 클래스의 차이 클래스와 인터페이스의 차이, 즉, 상속과 구현의 차이는 비교적 명확하다고 생각합니다. 대략, 아래처럼 숙지하고 있었습니다. 상속: 기존의 것을 재사용하여 코드의 중복을 줄인다. 개발시간을 줄인다.구현: 설계 지침을 따른다. (인터페이스는 다중 상속이 가능하다.) --------------------------------------------------------------------------------------- 그러다 문득,추상 클래스와 인터페이스의 구별이 모호해 한번 알아보았습니다. 우선 정의만 본다면, 이 둘은 설계 지침서에 가깝습니다. 메서드를 명시만 하고, 실제 구현내용이 없으며그것을 상속, 구현하는 클래스에게 구현을 강제합니다. 여기서 중요한 점이 있는데,일반 클래스가 하나라도 추상 메서드..
Getter, Setter를 사용하는 이유 일반적으로 프로그래밍을 할 때,객체들의 데이터(필드)를 외부에서 직접적으로 접근하는 것을 막아놓습니다. 필드들을 private 접근 제한자로 막아두고,각 필드의 Getter, Setter로 접근하는 방식을 사용합니다. 이렇게 프로그래밍 하는 이유는 객체의 무결성을 보장하기 위함입니다. 예를들어 Man이라는 클래스에 weight(몸무게)라는 필드가 존재할 때weight는 0보다 작을 수 없으나, 외부에서 직접적으로 접근할 경우,weight에 -100이라는 값을 줌으로써 객체의 무결성이 깨지는 일이 발생합니다. 이를 방지하기 위해,필드를 private로 만들어 외부의 접근을 제한한 후,Setter를 사용해 전달받은 값을 내부에서 가공해 필드에 넣어주는 방식을 사용하고 마찬가지로 필드 값을 가져올 때도,Get..
Java 용어 정리 변수 (지역변수): 하나의 값을 저장할 수 있는 메모리 공간 필드 (전역변수): 객체의 상태정보를 저장하는 변수(객체와 함께 존재) - 인스턴스 필드: 객체마다 가지고 있어야 할 데이터 - 정적(static) 필드: 변하지 않는 공용적인 데이터 객체: 고유한 특성을 지닌, 다른 것과 식별 가능한 것(속성(field) + 동작(method)) 모델링: 현실세계의 객체를 소프트웨어 객체로 설계하는 것 메서드: 객체간 상호작용의 수단 오버로딩(Overloading): 클래스 내에 같은 이름의 메서드를 여러 개 선언하는 것 오버라이딩(Overriding): 자식 클래스에서 부모 클래스의 메서드를 재정의하는 것 싱글톤(Singleton): 전체 프로그램에서 단 하나만 존재하도록 만들어진 객체--> 메모리 낭비 방..
Java 작동 원리, 특징 1. 이식성이 높다.- 단 한번의 컴파일 -> 각 OS에 맞는 JVM으로 구동2. OOP- 캡슐화, 상속, 다형성3. 가비지 컬렉터- 자동 메모리 관리4. 동적 로딩 지원- 필요한 시점에 클래스 로딩 -> 객체 생성5. 다양한 오픈 소스 라이브러리 아래 참고 캡슐화: 실제 구현 내용을 감추고, 필요한 부분만 노출시키는 것--> 보안 향상, 응집도 향상, 결합도 저하, 유지보수 용이(수정 용이) ex) 접근 제한자로 필드를 숨기고, 필요한 메소드만 노출 상속: 상위 객체를 재사용하는 것--> 코드 중복 감소, 개발 시간 절약, 유지보수 시간 절약 다형성: 상속, 구현을 사용(자동 타입 변환)해 하나의 타입으로 다양한(더 우수한) 결과를 얻는 것--> 객체의 부품화 가능 접근 제한자- public: all ..