면접질문3 [java] Linkedlist와 Arraylist의 차이는 무엇일까? Linkedlist와 Arraylist는 둘 다 List인터페이스를 상속받아서 구현한 클래스이다. ArrayList원소들을 인덱스로 접근하여 배열과 사용법이 매우 유사합니다.배열은 초기에 생성할 때 크기를 정해줘야 하므로 유동적인 사이즈로 초기화할 수 없는 불편함이 있지만대안으로 쓰이는 ArrayList는 저장되는 데이터의 갯수에 따라 자동적으로 크기가 변경되어 배열대신 자주 사용합니다.배열은 크기를 변경할 수 없는 인스턴스이므로, 크기를 늘리기 위해서는 새로운 배열을 생성하고 기존의 요소들을 옮겨야 하는 복잡한 과정을 거쳐야 합니다.물론 이 과정은 자동으로 수행되지만, 요소의 추가 및 삭제 작업에 걸리는 시간이 매우 길어지는 단점을 가지게 됩니다.LinkedlistArrayList와 장단점이 비교되는 .. 2022. 1. 23. [java]자바 컴파일 과정 JVM은 어떤 방식으로 코드를 해석하고 실행시키는지 흐름에 맞게 설명해 주세요. (Java 실행 흐름)자바는 os에 독립적인 특징을 가지고 있다. 이게 가능한 이유는 JVM(java virtual machine)이 os와 프로그램의 사이에서 기계어로 해석해주는 역할을 하기 때문이다.자바 컴파일러에 의해 변환된 java 바이트 코드(.class)는 os에 의존하지 않고 JVM위에서 작동한다.jvm은 운영체제에 종속적이기 때문에 해당하는 os에 맞는 jvm설정을 해줘야 한다. 자바의 동작 방법hello.java -> javac.exe(자바 컴파일러) -> hello.class생성 -> java.exe(자바 인터프리터) -> "hello world"출력자바 컴파일 순서개발자가 자바 소스코드(.java)를 작성.. 2022. 1. 22. [java] 자바의 특징 OOP(객체 지향 언어 프로그래밍)oop는 코드의 재사용성을 증가하고 유지보수를 용이하게 만듭니다.객체 지향 프로그래밍의 대표적 특징상속 (Inheritance) : 부모 클래스의 변수와 메서드를 자식 클래스가 전부 물려받는 것입니다. 캡슐화 (Encapsulation, Information Hiding) : 객체의 변수 및 메서드를 외부 객체가 함부로 건드리지 못하게 감싸는 개념입니다 . 클래스의 getter/setter 등을 통해 은닉합니다. 다형성(Polymorphism)Poly(다양한) + morphism(변형,변신) 의 합성어입니다. 하나의 객체가 여러가지 타입을 가질 수 있는 것을 의미합니다.자바에서는 한 레퍼런스 변수가 다른 형태의 객체를 참조할 수 있음을 말합니다. 오버로딩, 오버라이딩, .. 2022. 1. 22. 이전 1 다음