목록Language/JAVA (14)
영호
Java에서의 LinkedList List인터페이스를 구현한 collection클래스 중 하나로, Java에서는 doubly LinkedList를 제공해줍니다. ArrayList와 마찬가지로 List인터페이스를 구현했기 때문에 주요 메서드는 거의 비슷합니다. 각 노드들은 참조를 통해 연결되기 때문에 ArrayList보다 데이터 추가/삭제 측면에서 효율적인 수행이 가능합니다. 그러나, 특정 index의 원소에 접근하기 위해선 첫 노드부터 거쳐가야 하기 때문에 특정 원소 탐색에는 ArrayList보다 불리합니다. ArrayList에 대한 글 LinkedList원소 추가 add(element), push(element), addLast(element) : LinkedList뒤에 원소 추가 addFirst(e..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bIQ7zP/btrELjlm24P/rGahv8WIUWVLK2noxErAJ1/img.png)
ArrayList란 Java collection의 List인터페이스 구현체입니다. ArrayList는 배열을 이용하지만, 기존 배열은 용량이 다 차면 용량이 더 큰 배열을 만들어 기존 배열 요소들을 복사하는 작업이 필요했기 때문에, 이러한 단점을 극복하고 동적으로 용량이 늘어나는 Java Collection 클래스 중 하나입니다. List인터페이스의 특징 배열 원소들의 순서가 유지되기 때문에, 인덱스를 통한 접근이 가능합니다. 중복 데이터가 허용됩니다. ArrayList선언 ArrayList arrList = new ArrayList(); // Integer타입의 ArrayList ArrayList arrList1 = new ArrayList(20); // 초기용량 20 ArrayList arrList2..
Java String객체 생성 방법 Java에서 String객체를 만드는 방법은 2가지가 있습니다. String literal사용 -> String a = "test"; new 연산자 활용 -> String a = new String("test"); String Constant Pool이란 Java의 Heap메모리에서는 String Constant Pool영역이 있습니다. 이는 String literal로 생성된 값들을 가지고 있습니다. 추후, String literal로 String Constant Pool에 있는 동일한 값으로 String객체가 생성된다면 Heap메모리의 별도 영역을 따로 할당하지 않고 String Constant Pool에 이미 할당되어 있는 해당 값의 주소를 재활용해줍니다. pub..
==연산 Java에서 ==연산은 primitive type에 대해 실제 값을 비교해주는 연산입니다. public static void main(String[] args) { int a = 10; int b = 10; int c = 20; System.out.println(a == b); // 10 == 10 -> true System.out.println(b == c); // 10 == 20 -> false } 그리고 reference type에 대해서는 객체의 주소 값을 비교해주기 때문에, 내부 값이 같다고 하더라고 객체의 주소가 다르다면 false를 리턴해줍니다. public static void main(String[] args) { String a = "test"; String b = "test"..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bsXa9Q/btrDynREsDP/AVGav3fJPbIKOXmfimhFWk/img.png)
컬렉션 프레임워크(collection framework)란 여러 데이터를 쉽게 다룰 수 있도록 Java에서 제공해주는 클래스들의 인터페이스입니다. 즉, collection framework를 사용해 stack, queue, set 등 다양한 자료구조를 쉽게 사용할 수 있습니다. 컬렉션 프레임워크(collection framework) 상속 구조 위 사진에서 보면 List, Set은 Collection을 상속받지만 Map은 그렇지 않습니다. List와 Set은 공통된 메소드를 사용하지만 Map은 구조상 달라서 따로 나와있습니다. 사진출처 : https://gangnam-americano.tistory.com/41 Collection interface 메소드 add add()를 통해 객체를 추가할 수 있습니..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/z17na/btrBNl79Vx5/0NmGP3aUX6Pl53a2QE0UU0/img.png)
JVM이란? JVM은 Java Virtual Machine의 약자로 '자바 가상 머신'이라고 부릅니다. JVM으로 인해 운영체제에 구애받지 않고 JDK만 설치되어 있다면, 어느 환경에서든 동일한 Java파일을 실행할 수 있게 해 줍니다. JVM메모리 구조 JVM에 대해 크게 4가지로 나누어 보면 Class Loader, Excution Engine, Garbage Collector, Runtime Data Area가 있습니다. 지금부터 위 4가지를 하나씩 알아보겠습니다. Class Loader 자바 프로그램의 전체적인 실행 과정은 Java Compiler가 자바 소스코드인 .Java파일을 바이트코드 형태인 .class파일로 변환합니다. 이후 해당 바이트코드 파일들을 읽어 실행 시키는 것이 전체적인 실행 ..