Java

·Java/기타
일급 객체(first-class object)일급 객체의 정의다른 객체에 일반적으로 적용 가능한 연산을 모두 지원하는 객체일급 객체의 조건모든 일급 객체는 변수나 데이터에 담을 수 있어야함모든 일급 객체는 함수의 파라미터로 전달할 수 있어야함모든 일급 객체는 함수의 리턴값으로 사용할 수 있어야함// first-class object ex)public class Main { // 2.메서드 매개변수로 람다식 전달 public static void sqrt(Consumer c, int t) { c.accept(t); } // 3.람다식 자체를 리턴 public static Consumer sqrt() { return (t) -> { S..
·Java/기타
Abstract 추상 클래스 & 메서드abstract: 해당 클래스 / 메서드가 추상 클래스 / 메서드임을 명시하는 예약어추상 메서드(abstract method)선언부만 작성하고 구현부는 작성하지 않은 채 남겨둔 메서드접근제한자와 abstract 키워드의 순서는 상관없음오버라이딩 메서드에는 abstract를 사용하지 않음추상 클래스(abstract class)abstract class로 선언된 클래스추상 클래스는 추상 메서드를 선언해 놓고 자식 클래스에서 메서드를 재구현하도록 유도하는 클래스, 미완성 설계도 추상 클래스는 추상 메서드를 포함하지 않을 수 있음하지만 추상 메서드를 포함하는 클래스는 반드시 추상 클래스메서드와 내용이 추상적이기에 객체를 생성할 수 없음static final이 아닌 필드를 가..
·Java/기타
Call By Value기본 자료형 변수를 복사하는 경우 Call By Value에 의해 값이 복사되어 서로에게 영향을 주지 않음값 자체를 단순히 복사// Call By Value ex)public class CallByValue { public static void main(String [] args) { int a = 10; int b = a; // call by value b = 20; // 값을 변경해도 변수 a에 영향x } }Call By Reference(Address)Call By Value와 본질적인 차이는 없지만 저장하고 있는 값을 주소로 해석해서 주소를 복사주소값을 복사// Call By Reference ex)class Animal { public int age;}publi..
·Java/기타
형변환이란?형변환(타입변환): 데이터 타입을 다른 데이터 타입으로 변환하는 것자동(묵시적) 타입변환(promotion)과 강제(명시적) 타입변환(casting)이 있음자동(묵시적)타입변환 - promotionpromotion은 주로 메모리 크기가 작은 타입에서 큰 타입에 저장될 때 발생byte 자동 타입변환시 값이 변경되는 것이 아닌 값이 복사되므로 값의 손실이 발생하지 않음promotion ex)double a = 3.0F; // float형 => double형 (promotion)강제(명시적)타입변환 - castingcasting은 주로 메모리 크기가 큰 타입에서 작은 타입에 저장될 때 발생casting은 promotion과 달리 캐스팅 연산자를 사용작은 메모리 크기 타입 = (작은 메모리 크기 타입..
·Java/기타
가비지 컬렉션(GC)이란?가비지 컬렉션은 메모리 관리 방법 중 하나힙 영역에서 불필요한 메모리를 주기적으로 정리해주는 프로세스JVM의 가비지 컬렉터에 의해서 동작힙 영역에서 어디서도 참조하고 있지 않은 객체(가비지) 발생 시 가비지 컬렉터에 의해 제거장점동적으로 할당한 메모리 영역 전체를 완벽히 관리하지 않아도 됨이중 해제하는 오류 감소.메모리 누수 방지.단점개발자 입장에서 메모리가 언제 해제되는지 정확히 알 수 없다.작동하는 동안 애플리케이션을 멈추기 때문에 오버헤드 발생어떤 메모리를 해제할지 결정하는데 비용 발생Minor GC & Major GC(Full GC)JVM의 Heap영역은 처음 설계될 때 2가지를 전제로 설계됐다.대부분의 객체는 금방 접근 불가능한 상태가 된다.오래된 객체에서 새로운 객체로..
h2boom
'Java' 카테고리의 글 목록 (9 Page)