반응형

Java 87

List와 Map의 차이

List와 map의 공통점은 데이터를 저장하는 자료구조인 점입니다. 하지만 똑같이 데이터를 저장하지만, 데이터를 저장하는 구조는 다릅니다. 1. LIST List는 Memory 안의 특정한 동일 공간에 뭉텅이로 저장됩니다. 내부구현은 배열로 되어있기 때문입니다. 때문에 알맞은 데이터 저장공간만 있다면 데이터 저장속도는 빠릅니다. 또한, 순차적으로 데이터를 저장하므로, 데이터 특징이 포지션별로 의미가 있을 때 사용하는 것이 좋습니다. 아래는 자바로 작성한 예시입니다. List와 Map의 프로그래밍적으로 개념은 같기 때문에 어떤 언어든간에 똑같이 이해하면 됩니다! foreach문을 썼지만, 일반 for문으로 arrayList.get(position);메서더를 써도 무방 합니다. package Ex01; im..

[JAVA] JVM의 메모리 구조

응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3가지 중요 영역(method area, call stack, heap)에 대해서 알아보자. 1) Method Area 2) Call Stack 3) Heap 1. 메서드 영역(Method area) 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 때, 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성된다. 2. 힙(heap) 인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스는 모두..

Java 2021.05.28

[JAVA] 구조체란?

구조체란 연관성이 있는 서로 다른 자료형을 하나의 집합으로 묶어 새롭게 정의한 사용자 정의 자료형이다. 변수 하나의 데이터를 저장할 수 있는 공간 배열 같은 종류의 여러 데이터를 하나의 집합으로 저장할 수 있는 공간 구조체 서로 관련된 여러 데이터를 종류에 관계없이 하나의 집합으로 저장할 수 있는 공간 클래스 데이터와 함수의 결합(구조체 + 함수)

Java 2021.05.28

[JAVA] BufferedReader, BufferedWriter

BufferedReader Scanner : 통해 입력을 받을경우 Space Enter를 모두 경계로 인식. BufferedReader : Enter만 경계로 인식, 받은 데이터가 String으로 고정. Scanner에 비해 다소 사용하기 불편하지만 많은 양의 데이터를 입력받을경우 BufferedReader로 입력받는 것이 효율적 1. 작업속도에 차이가 많이난다. ( 알고리즘의 효율성 검사에 유리1. readLine() 리턴값은 String으로 고정(다른타입으로 입력을 받을려면 형변환 필요) 2. 예외처리를 꼭 해주어야한다.(보편적으로 throws IOException을 통하여 예외처리) (try & catch를 활용하여 예외처리 또한 가능)) BufferedReader 사용 방법 BufferedRead..

Java 2021.05.28

[Java] StringTokenizer 사용법, 예제

String 클래스에서 split()함수가 문자열을 쪼개 배열에 저장해주는 함수였다면, StringTokenizer 클래스는 보다 간단하게 문자열을 토큰 단위로 나눠주는 함수이다. 구분자의 default 값은 공백으로, 구분자를 입력하지 않으면 공백에서 끊어준다. String phoneNum = "TEL 82-02-997-2059"; StringTokenizer str1 = new StringTokenizer(phoneNum); while(str1.hasMoreTokens()) System.out.println(str1.nextToken()); 공백과 구분자를 모두 토큰으로 사용할 수 있다. StringTokenizer str2 = new StringTokenizer(phoneNum, " -"); whi..

Java 2021.05.27

[JAVA] BufferedReader 와 BufferedWriter 사용법

Scanner 대신 BufferedReader System.out.println 대신 BufferedWriter 를 비슷하게 사용 가능하다. 둘은 모두 기존에 쓰던 scanner와 System.out.println()보다 속도 측면에서 훨씬 빠르기 때문에 (입력된 데이터가 바로 전달되지 않고 버퍼를 거쳐 전달되므로 데이터 처리 효율성을 높임) 많은 양의 데이터를 처리할 때 유리하다. ​ 하지만 그에 비해 BufferdReader은 Enter만 경계로 인식하고 받은 데이터가 String으로 고정되기 때문에 입력받은 데이터를 가공하는 작업이 필요한 경우가 많다.

Java 2021.05.27

[JAVA] nextLine()이 안 될 때

nextLine() 과 섞에 사용할 경우에는 주의가 필요합니다. import java.util.Scanner; public class JavaScanner{ public static void main(String[] args) { Scanner scan = new Scanner(System.in); String name; int age; System.out.println("나이를 입력하세요."); age = scan.nextInt(); System.out.println("이름을 입력하세요."); name = scan.nextLine(); System.out.printf("나이는 %d입니다.%n",age); System.out.printf("이름은 %s입니다.%n",name); scan.close(); }..

반응형