Language/Java
-
Java Collection - QueueLanguage/Java 2023. 2. 19. 14:45
자바 컬렉션 중 하나인 Queue(큐)에 대해서 정리를 하기 위한 포스팅이다. 상세한 정보는 java.util 패키지에 Queue 클래스에 나와 있다. 예외 발생 값 반환 Insert(추가) add(e) offer(e) remove(삭제) remove() poll() examine(검사) element() peek() queue에 값을 추가하는 함수는 표와 같이 add(e), offer(e) 2가지이다. 둘다 boolean을 반환하지만 add()의 경우 queue에 더 이상 추가할 수 없는 경우(queue의 용량이 꽉찬 경우) IllegalStateException 에러를 발생시키게 된다. offer의 경우 추가하지 못하는 경우 false를 반환한다. 그렇기 때문에 좀 더 안정적으로 사용할 수 있다. r..
-
JAVA JVM(자바 가상머신)에 관하여Language/Java 2023. 2. 18. 16:39
자바는 JVM(JAVA Virtual Machine) 위에서 동작한다. 이번 시간에는 JVM에 대한 정보를 공부해보도록 한다. JVM은 다음과 같은 특징을 가지고 있다. JAVA와 OS 사이에서 중개자 역할 메모리관리, Gabage Collection의 역할을 수행 ARM 아키텍쳐 같은 하드웨어는 레지스터 기반으로 동작하지만 JVM은 스택기반으로 동작 jvm은 이러한 역할을 하고 있는데 애플리케이션 개발자가 사용할 때 몰라도 된다고 생각할 수 있다. 하지만 다음과 같은 이유로, 최소한의 동작원리는 이해하고 아는 것이 중요하다고 본다. JVM을 알아야 하는 이유 한정된 메모리를 효율적으로 사용하여 최고의 성능을 내기 위하여 메모리를 효율적으로 사용하기 위해서(메모리 구조를 알아야 한다) JVM을 이해하기 ..
-
자바 진법 변환(2진법 10진법 등)Language/Java 2023. 2. 16. 23:05
자바에서 진수(진법) 변환하는 방식은 래퍼클래스의 함수를 통해서 이용하면 쉽게 변환이 가능하다. 특이사항은 다른 10진법에서 다른 진법으로 변환할 때 리턴값은 String이라는 점이다. 먼저 가장 흔한 2진법과 10진법 변환을 살펴보자. int i = 123; // 10진수 > 2진수 String binaryString = Integer.toBinaryString(i); // 출력 1111011 // 2진수 > 10진수 int binaryToDecimal = Integer.parseInt(binaryString, 2); // 출력 123 다른 진법은 많이 쓸 일은 없긴한데 간단하므로 쉽게 알아보도록 하자. // 10진수 > 8진수 String octalString = Integer.toOctalStrin..
-
[Java] 객체 복사에 대한 고찰Language/Java 2022. 4. 15. 00:01
제목은 거창하게 객체 복사에 대한 고찰이라고 적었지만 사실 개발자라면 흔히 들어본 shallow copy, deep copy 부분에 대한 포스팅이다. shallow copy는 얕은 복사라는 뜻으로 보통 주소값(참조값)을 복사한다는 뜻이고, deep copy는 깊는 복사라는 뜻으로 주소값이 아닌 값 자체를 복사한다는 뜻이다. 이러한 부분을 상세히 이해하려면 stack, heap에 대하여 좀 더 공부를 하여야한다. 또 이 부분을 자세히 공부하려면 메모리에 대하여 공부를 하여야 한다. (역시 공부는 끝이 없..) 그래도 이번 포스팅이 이러한 객체를 복사하는 것에 대한 고찰 글이므로 간략히라도 적어본다. 1번 예제) int a = 1; -> 이런식으로 코드를 작성하게 되는 경우 변수 a와 1은 각자 다른 곳에 ..