Java/자바 48

StringTokenizer vs String.split()

https://blog.naver.com/PostView.nhn?blogId=makga87&logNo=221949199317&parentCategoryNo=&categoryNo=17&viewDate=&isShowPopularPosts=true&from=search [StringTokenizer VS String.split] 누가 더 빠른가 백엔드 개발자로써 개발 시, 유의 해야할 사항 중 하나, 바로 성능이다. JAVA 라이브러리를 쓰든, 오픈... blog.naver.com https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=chogahui05&logNo=221474002967&categoryNo=12&parentCategoryNo=0&vi..

Java/자바 2021.08.26

String vs StringBuffer vs StringBuilder

String String은 절대 변경이 불가능한 데이터 타입이기 때문에 연산을 할 때 새로운 문자열을 만든다. String의 내부 구조는 final char[] 변경되지 않는 문자 배열이기 때문 새로 만들어진 문자열은 참조형이기 때문에 주소 값은 stack에 객체는 호출 되기 전까지 heap 영역에 쌓이게 된다. 다량의 문자열이 만들어진다면 heap 영역에 string 객체가 계속 쌓이게 되기 때문에 이는 메모리 관리에 좋지 않다. https://novemberde.github.io/2017/04/15/String_0.html Khbyun's blog Novemberde's dev novemberde.github.io 정리가 무지 잘되어 있어서 방문해보시길 위 블로그 개발자님이 좋은 글을 써주셔서 직접 ..

Java/자바 2021.08.26

캐릭터 인코딩

Character set 정보를 표현하기 위한 문자들의 집합 Character Encoding 문자들의 집합을 컴퓨터가 이해할 수 있도록 바꾸는 작업 한글 인코딩 방식 - 완성형 (단어 하나) EUC-KR, CP949 (MS949) 각가갂갃.... 이렇게 쭉 조합할 수 있는 단어가 등록되어 있고 그 중 하나를 선택하는 방식 영어는 1바이트, 한글은 2바이트 취급한다. Window는 이 방식을 채택하고 있고 서버는 주로 UTF-8 방식이기 때문에 이 둘의 차이로 한글 깨짐이 발생할 수 있다. - 조합형 (초, 중, 종성) 유니코드 인코딩 방식 (대표적으로 UTF-8) ㅇ+ㅏ+ㄴ = 안 초성, 중성, 종성 각각 하나당 1바이트이기 때문에 한글은 3바이트 취급한다. 여러 언어를 표현하는데 장점이 있음 * 아래..

Java/자바 2021.08.08

오류, Exception

try catch문 try 안에서 exception이 발견되면 catch문으로 가서 exception에 대한 대응 코드를 찾는다 AristmaticException(데이터타입) a(참조변수) -> exception 개체와 데이터타입을 확인하고 일치하면 참조변수에 exception의 메모리 주소를 대입한다 이걸 사용하면 exception이 발생한 코드는 실행되지 않지만 그 다음부터 실행이 되어 프로그램 비상 종료를 막는다 자바에서 오류는 크게 컴파일 에러, 런타임 에러, 논리적 에러로 나눌 수 있다 컴파일 에러는 컴파일 시 생기는 에러인데 요새는 IDE가 많이 발전해서 에러가 생기기전에 알려준다 *이클립스가 하는 일 : 구문(문법) 확인, 번역, 간단한 산술 계산 논리적 오류는 실행은 되는데 의도와 다르게..

Java/자바 2021.02.15

버블 정렬

버블정렬? 버블정렬은 앞 뒤 값을 비교해 더 큰 숫자를 뒤로 보냄으로서 작은 것부터 큰 것 순서대로 정렬하는 알고리즘이다 int[] list = new int[] {2, 4, 5, 1, 3} 이런 배열이 있다고 생각해보자 2와 4는 다음 수 보다 작기 때문에 움직이지 않는다 5는 1과 3보다 크기 때문에 서로 자리를 옮긴다 {2, 4, 1, 5, 3} -> {2, 4, 1, 3, 5} 버블 정렬은 결국 한바퀴 돌 때 마다 회차별로 가장 큰 수를 맨 뒤로 보내는 것이기 때문에 2회차에는 5까지 비교하지 않고 3까지 비교한다 이를 반복하면 결과는 {1, 2, 3, 4, 5}가 나온다

Java/자바 2021.02.14

정적 바인딩 vs 동적 바인딩

부모 클래스의 메소드와 자식 클래스의 오버라이드 메소드가 있을 때 정적 바인딩은 컴파일러가 형식에 따라 무엇을 호출할 지 결정이 되서 바뀌지 않는다 동적 바인딩은 호출할 주소는 비워져있고 객체에서 데이터를 전달 받을 때 결정된다 자바의 객체들은 각각 자신의 메소드 주소를 관리하는 메모리가 추가적으로 4바이트 있어서 이곳에서 유동적으로 뭐가 호출될지 결정하게 된다 즉 원 메소드가 오버라이드 되는 순간 오버라이드 메소드가 전달되기로 결정된다 youtu.be/jlA2aYDktiQ

Java/자바 2021.02.11