728x90

자료구조 13

+) JAVA BufferedReader & Scanner 차이, 버퍼란?

가장 큰 차이 = 속도 차이 싱글 스레드를 사용하는 Scanner보다 동기화를 사용하는 BufferedReader가 조금은 느리다. 그!러!나 Scanner는 정규식을 사용하여 값을 받기에, 결론적으로는 BufferedReader가 사용자의 입력을 더 빠르게 읽어들일 수 있다. BufferedReader 문자열(String)밖에 읽지 못함.(∴ readLine()함수만 사용) 버퍼의 크기: 8kb ( ∴ 긴 문자열 유리 ) 동기화 사용 Scanner 정수값(int,short,long), 소수값(float,double), 문자열(String)읽기 가능. ( ∴ nextInt(),nextShort()...등등 사용 ) 버퍼의 크기: 1kb 입력을 읽는 과정에서 내부에서 정규식 사용한 파싱, 입력값 분할. 싱..

자료구조 2023.02.21

+) JAVA 문자열 비교하기 ==, equals()

String 변수 생성의 두가지 방법 리터럴 new연산자 이용 1. 리터럴 방식 리터럴 방식으로 선언된 문자열들은 string constant pool이라는 영역에 존재하게 된다. 과정 String 내부의 intern() 메서드 호출. intern() 메서드는 주어진 문자열이 string constant pool에 존재하는지 검색. 있다면: 주어진 문자열의 주소값을 반환. 없다면: string constant pool에 주어진 문자열을 새로 저장하고, 그 주소값을 반환. 2. new 연산자 이용 new연산자를 이용하여 생성된 문자열들은 Heap 영역에 존재하게 된다. 같은 값을 저장한다고 하더라도 다른 주소에 저장됨. 3. 위 두 방식의 차이 ==연산자: 비교하고자 하는 두 대상의 주소값을 비교. equ..

자료구조 2023.02.21
728x90