본문 바로가기

Java22

Java - 컴파일 과정 Java가 인기 있었던 이유 중 하나는 OS에 구애받지 않고 사용할 수 있었던 것이다. JVM을 사용하면 윈도우에서 작성했건 리눅스에서 했건 맥에서 했건 간에 모두 사용할 수 있다. JVM은 Java Virtual Machine으로 다양한 역할을 하지만 자바 바이트 코드를 운영체제가 이해할 수 있도록 바꿔주는 역할도 한다. Java가 운영체제마다 명령어 체계가 다르기 때문에 발생했던 문제점을 해결한 것이다. 물론 운영체제에 맞는 JVM을 설치해야한다는 점이 있긴 한데, 개발자들 입장에서는 같은 코드로 다양한 운영체제에서 사용할 수 있다는 것은 엄청난 메리트가 아닐 수 없었다. 그렇다면 Java가 컴파일 되는 과정을 좀 더 자세히 알아보도록하겠다. 1. 먼저 개발자가 *.java 파일인 실제 소스코드를 작.. 2022. 8. 1.
Java - HashSet, LinkedHashSet, TreeSet 차이 Set 이번 시간에는 Java Collection 중에서 Set에 대해서 알아보도록하겠다. Set은 Array와 비슷하게 배열이지만 중복을 허락하지 않는다는 특징이 있다. Set은 사실 Map을 사용해서 구현된 자료구조이다. Map은 Key 값을 중복되지 않게 관리하는 특징이 있다. Set은 이러한 Map의 특징을 사용해서 값을 넣을 때는 Map에 집어 넣고 Map의 Key 값만 사용함으로써 중복되지 않는 배열을 제공하는 것이다. Map의 Value 값에는 미리 지정된 하나의 객체를 저장한다. Set이 Map이나 Array처럼 새로운 구조가 아니라 Map을 사용한 파생된 자료구조라는 것이다. 그렇기 때문에 Java에서는 Set이라는 자료구조를 기본적으로 제공하지만 GoLang 같은 경우에는 Map을 사.. 2022. 7. 31.
Java - HashTable이란? Java의 데이터구조에서는 이름에 Hash가 붙은 클래스들이 있다. 예를 들면 HashMap, HashSet 등이 있다. Hash가 들어간 클래스들은 모두 HashCode를 사용해서 구현한 데이터구조이다. HashMap, HashSet을 사용하는 방법은 잘 알고 있는데 어떻게 작동하는지에 대해서도 알아보자. Java에서 Hash를 사용한 자료구조들을 이해하기 위해서는 HashTable에 대해서 알아야하는데 HashTable에 대해서 간략하게 알아보도록하자. HashTable HashTable은 위의 사진과 같이 도식화할 수 있다. 그림을 보면 key를 Hash함수에 넣는 것을 확인할 수 있는데, Hash라는 것은 어떤 입력을 넣으면 암호화해서 어떠한 값으로 바꿔주는 기능이다. A라는 키를 Hash 함수에.. 2022. 7. 30.
Java - HashMap, LinkedHashMap, TreeMap 차이 Map이란? 지난 시간에는 List들에 대해서 알아보았다. 오늘은 Collection 중에 Map에 대해서 알아보도록하겠다. Map은 Key: Value 쌍으로 정의되는 자료구조이다. 예를 들면 { a: 1, b: 2 } 와 같은 형식으로 만들어진다. key는 보통 string이 사용되고 value에는 어떤 값이든 상관없이 사용할 수 있다. Java에서는 Map에 추가, 수정은 put() 함수, 읽기는 get() 함수를 사용한다. Map에 들어있는 원소들은 Entry라고 불리는데 EntrySet()이라는 함수를 사용하면 원소들의 Set을 얻어서 loop를 돌릴 수도 있다. Map은 키값이 유니크한 특징을 가지고 있어서 중복되지 않게 값을 덮어씌우거나 컨트롤 할 수 있다. Java에서는 3가지의 Map .. 2022. 7. 29.