본문 바로가기

JAVA

(18)
추상 클래스의 용도? 클래스라 함은 인스턴스를 생성해주는 템플릿 같은 개념이다. 그리고 이러한 인스턴스 객체 자료형을 사용하여 우리는 보다 구조적으로 프로그램을 설계할 수 있다. 이것이 객체 지향적 프로그래밍이라고 불리는 이유이다. 즉, 추상 클래스는 추상화를 접목 시켜 보다 구조적이게 객체를 설게하고, 프로그램의 유지보수성을 올려주며, 만일 프로그램에 어떠한 기능을 업그레이드한다고 하면 수정/ 추가에 대해 유연적이게 해주어, 퀄리티 높은 프로그램과 솔루션을 개발할 수 있게 해준다. 실제로 추상 클래스는 개별 프로젝트 보다는 범용 라이브러리나 프레임워크 시스템을 설계하는데 유용하게 사용된다. 추상 클래스는 많은 프레임워크에서 지금도 사용되고 있는 구현방식이다. 예를 들어 안드로이드 스튜디오 SDK에서 앱을 만들 때 안드로이드..
Arrays 클래스 Arrays 클래스는 프로그램을 개발하는데 사용할 수 있는 유용한 유틸리티 클래스가 다수 포함되어 있는 java.util 패키지에 속해 있으며, 배열을 다루기 위한 다양한 메소드가 포함되어 있다. Arrays 클래스의 모든 메소드는 static 메소드이므로 따로 객체를 생성하지 않고도 바로 사용할 수 있는 특징이 있다. 다만 Arrays 클래스의 메소드를 사용하고 싶다면 상단에 반드시 import 문으로 java.util 패키지를 불러와야 한다. import java.util.Arrays; // Arrays.toString()을 사용하기 위한 import class Test{ public static void main(String[] args) { int[] iArr = {100, 95, 80, 70, ..
힙과 스택 메모리의 차이점 1.힙 메모리는 애플리케이션의 모든 부분에서 사용되며, 반면에 스택 메모리는 하나의 스레드가 실행될 때 사용. 그래서 힙과 메서드 공간에 저장된 객체는 어디서든지 접근이 가능하지만, 스택 메모리는 다른 스레드가 접근할 수 없다. 2.언제든지 객체가 생성되면 항상 힙 공간에 저장되며, 스택 메모리는 힙 공간에 있는 객체를 참조만 한다. 즉, 스택 메모리는 primitive 타입의 지역변수와 힙 공간에 있는 객체 참조 변수만 갖고 있다. 3.스택메모리의 생명주기는 매우 짧으며, 힙 메모리는 애플리케이션의 시작부터 끝까지 살아남는다. 4.자바 코드를 실행할 때 따로 -Xms과 -Xms 옵션을 사용하면 힙 메모리의 초기 사이즈와 최대 사이즈를 조정할 수 있다. 5.스택 메모리가 가득차면 자바에서는 java.la..
스택 프레임(stack frame) 하나의 메서드에 필요한 메모리 덩어리를 묶어서 스택 프레임(Stack Frame)이라고 한다. 하나의 메서드당 하나의 스택 프레임이 필요하며, 메서드를 호출하기 직전 스택프레임을 자바 Stack에 생성한 후 메서드를 호출하게 된다. 스택 프레임에 쌓이는 데이터는 메서드의 매개변수, 지역변수, 리턴값 등이 있다. 만일 메서드 호출 범위가 종료되면 스택에서 제거된다.
HashMap에 대하여 개요 Java의 HashMap 에 대한 공부. 자주 쓰지만, 실제로 어떻게 동작하는지에 대한 이해각 필요하고 Java에서 뿐만 아니라 NoSQL등의 경우에도 사용되는 Hash의 개념과 Map의 개념에 대해 알아보자. Hash Hash는 특정 input 값이 주어졌을 때 항상 동일 값을 보장해주는 값이다. 주로 SHA256, MD5 등과 같은 해시 알고리즘에 의해 많이 알려져 있다. 차이점이라고 하면 Hash를 할 때 충돌(collision)이 발생하게 되는데, 그런 충돌을 얼마나 더 효율적으로 방지할 것인가에 대해 정도가 되겠다. Java에서 사용하는 String 클래스의 해시 함수를 살펴보자. Hash != HashCode Hash: 해시함수 HashCode: 해시 해서 나온 값을 정수화 시킨 것 pu..