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.. HashMap 동작 방식에 대해 설명하세요. HashMap이란 객체를 Map에 넣는 것이다. key-value쌍 하나만 넣는 것이 가장 기본적이며, 배열의 한 요소를 bucket이라고 한다. (자바에서는, 키와 값의 타입은 클래스 및 인터페이스 타입만 가능하다. 기본 타입은 사용 할수 없음) 또한, HashMap에서의 key는 unique해야합니다. (key는 중복 불가, value는 중복 가능) key-value쌍이 들어가는 위치는, key의 Hash (HashCode) 이며, 이로 인해 데이터를 탐색하는데 O(1)로 가능하다. 이때, 동일하지 않은 두 객체가 같은 위치에 들어가려고 하는 경우를 Collision 이라고 하는데, Collision은 Map의 성능에 큰 영향을 미치므로, 어떤 Hash 함수를 사용하는 가에 따라서 더 나은 Map이 .. 연산자 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선순위 (optional) Java13. switch operator 산술 연산자 일반적으로 산술 연산은 덧셈, 뺄셈, 곰셈, 나눗셈의 사칙 연산을 뜻합니다. 자바에서 산술 연산은 사칙연산과 나머지 연산을 포함한 다섯 가지 연산을 뜻합니다. 덧셈과 뺄셈 그리고 곱셈은 일반적으로 알고 있는 수학에서 계산과 동일합니다. 나눗셈과 나머지 연산은 처음 프로그래밍을 접한다면 다소 생소할 수 있습니다. 산술 연산에 대한 예를 살펴보기 전에 2주차에 살펴봤던 타입 캐스팅과 타입 프로모션을 다시 한번 생각해볼 필요가 있습니다. 요약하자면, 타입 캐스팅은 원본 데이터 .. 자바 데이터 타입, 변수 그리고 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타임 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입. 영어로 primitive type 또는 원시 타입 또는 기본형 타입이라고 하기도 합니다. 우선 타입이란 데이터 타입을 줄인 말로 자료형이라고 하기도 합니다. 그럼 데이터 타입이란 무엇일까요? 컴퓨터 관점에서 타입은 데이터가 메모리에 어떻게 저장될 것이고 또 어떻게 다뤄져야 하는지에 대해 알려주는 것입니다. 즉, 데이터 타입을 보면 컴퓨터에서 어떤 형태를 가지며 어떻게 처리될 수 있는지 머리 속에 그릴 수 .. 이전 1 2 3 다음