본문 바로가기

Programming/Java83

[Java] - Collection Framework :: List - LinkedList ① 출처 : 자바의 정석 LinkedList LinkedList는 배열의 단점을 보완하기 위해 생겨났다. 그렇다면 배열의 단점부터 보자. 배열의 단점은 데이터의 연속된 구조에서 기인한다. 1. 크기 변경 불가 - 크기 변경을 위해서는 새로운 배열을 생성해서 데이터를 복사해야 한다. - 실행속도를 향상시키기 위해서는 충분히 큰 크기의 배열을 생성해야 하므로 메모리가 낭비된다. 2. 배열의 마지막이 아닌 위치에 데이터 추가, 삭제에 시간이 많이 걸린다. - 배열의 중간에 데이터를 추가하려면, 빈자리를 만들기 위해 다른 데이터를 모두 복사, 이동해야 한다. LinkedList의 구조 링크드 리스트는 불연속적으로 존재하는 데이터를 서로 연결한 형태로 구성되어 있다. 링스드 리스트의 각 요소들은 자신과 자신과 연결된.. 2021. 2. 24.
[Java] - 컬렉션 프레임워크 공부 방법! 다루고자 하는 컬렉션의 특징을 파악하고 있어야 한다. 상황에 맞는 컬렉션을 적절하게 선택하기 위해서는 컬렉션의 특징과 차이를 정확하게 알고 있어야 가능하기 때문이다. 프로그래밍 언어도 언어를 학습할 때랑 똑같은 것 같다. 영어 단어를 보아도 표면적 의미는 같아도 문맥, 상황에 따라서 쓰이는 단어는 제각각 다르다. 단어의 쓰임새를 정확히 알고 있어야 적재적소에 단어를 사용하거나 해석할 수 있듯이 말이다. 자바에서 Collection은 데이터 그룹이다. Collection Framework란 데이터 group을 다루고 표현하기 위한 단일화된 구조. Collection Framework의 핵심 인터페이스에는 1. List 2. Set 3. Map 이 있다. List, Set, Map은 데이터 그룹을 다루기 위.. 2021. 2. 24.
[Java] - 아스키코드 :: 문자 - 숫자 변환하기 아스키코드란? 아스키 코드는 미국 ANSI 에서 표준화한 정보교환용 7비트 부호체계이다. 000(0x00)부터 127(0x7F)까지 총 128개의 부호가 사용된다. 이는 영문 키보드로 입력할 수 있는 모든 기호들이 할당되어 있는 부호 체계이며, 매우 단순하고 간단하기 때문에 어느 시스템에서도 적용가능하다는 장점이 있으나, 2바이트 이상의 코드를 표현할 수 없기 때문에 국제표준의 위상은 유니코드에게 넘어갔다. 문자, 숫자 변환하기 import java.util.Scanner; public class AsciiCode { public static void main(String[] args) { Scanner scan = new Scanner(System.in); char ch = scan.nextLine().. 2021. 2. 24.
[Java] - JVM의 메모리 구조 2021/02/23 - [Programming/Java] - [Java] - 매개변수의 유효성 검사 출처 : 자바의 정석 JVM의 메모리 구조 1. Method area JVM이 클래스 파일(*.class)을 분석하여 클래스에 대한 정보를 이곳에 저장한다. 이 때, 클래스변수도 이 영역에 함께 생성된다. 2. heap 인스턴스가 생성되는 공간. 3. call stack or execution stack 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 작업을 수행하는 동안 지역변수들과 연산의 중간결과 등을 저장하는데 사용된다. 2021. 2. 23.
[Java] - 매개변수의 유효성 검사 2021/02/22 - [Programming/Java] - [Java] - 선언위치에 따른 변수의 종류 출처 : 자바의 정석 매개변수의 유효성 검사 메서드의 구현부{}를 작성할 때, 제일 먼저 해야 하는 일이 매개변수의 값이 적절한 것인지 확인하는 일. 매개변수를 통해 넘어오는 값을 가능한 모든 경우의 수에 대해 고민하고 그에 대비한 코드를 작성해야 한다. float divide(int x, int y){ if(y==0){ System.out.println("0으로 나눌 수 없습니다."); return 0; } return x / (float)y; } 적절하지 않은 값이 매개변수를 통해 넘어온다면? 매개변수의 값을 보정하던가, 보정하는 것이 불가능하다면 return문을 사용해서 작업을 중단하고 호출한 .. 2021. 2. 23.
[Java] - 선언위치에 따른 변수의 종류 2021/02/19 - [Programming/Java] - [Java] - 프로그래밍 관점에서의 클래스 정의 출처 : 자바의정석 선언위치에 따른 변수의 종류 변수의 종류는 1. 클래스 변수 2. 인스턴스 변수 3. 지역 변수 세 종류가 있다. 변수의 종류를 결정짓는 요소 변수가 선언된 위치. 클래스 영역에서 선언 - 클래스 변수, 인스턴스 변수 메서드, 생성자, 초기화 블럭 내부 - 지역 변수 클래스 변수와 인스턴스 변수의 차이 한 클래스의 모든 인스턴스들이 공통적인 값을 유지해야하는 속성의 경우, 클래스 변수로 선언해야 한다. 생성시기 클래스 변수 : 클래스가 메모리에 올라갈 때 인스턴스 변수 : 인스턴스가 생성되었을 때 class Card{ //인스턴스 변수 String king; int numbe.. 2021. 2. 22.