java 5

it 기술면접 질문들(계속 업데이트)

JAVA String / StringBuffer / StringBuilder string 은 불변하고 Stringbuffer Stringbuilder 은 가변적이다. String은 문자열 연산이 적고 자주 참조하는 경우에 좋다. 특히 멀티쓰레드 환경에서는 신경쓸 필요가 없다. StringBuffer는 멀티쓰레드환경에서 동기화가 가능하다. StringBuilder 는 동기화를 지원하지 않기 떄문에 멀티쓰레드 환경에서는 적합하지 않다. JAVA String java에서 string 생성방식에는 두가지가 있습니다. new연산자를 이용한 방식 리터럴을 이용한 방식 두 가지 방식에는 큰 차이점이 있습니다. new를 사용해 String을 생성하면 Heap 영역에 존재하게 되고 리터럴을 이용할 경우 string co..

면접질문들 2020.03.01

람다식(Lamdba Expressions) 정리

람다식이란? 람다식은 수학자 알론조(Alonzo Church)가 발표한 람다 계산법에서 사용된 식으로, 이를 제자 존 매카시(John Macarthy)가 프로그래밍 언어에 도입했다.Java8 버전부터 이 람다식(Lamdaba Expressions)을 지원하게 되었다.람다식은 익명함수(anonymous function)을 생성하기 위한 식으로 객체 지향 언어보다 함수 지향 언어에 가깝다.람다 형태는 매개변수를 가진 코드 블록이지만, 런타임 시에는 익명 구현 객체(추상메소드를 한개 포함한)를 생성한다. 위 설명처럼 람다식이란 일종의 함수형 프로그래밍에 적합한 문법적 표현방식이다.함수형 프로그래밍은 병렬처리와 이벤트 지향 프로그래밍에 적합하며 딥러닝이나 빅데이터와 더불어 일종의 문법적 트렌드처럼 관심을 받고 ..

Language/Java 2019.03.25

예외 처리(Exception)

개발자가 되기위한 첫 걸음 예외 처리란? 에러를 잡아내는 데 가장 이상적인 시기는 컴파일을 할 때이다. 그러나 컴파일할 때 모든 에러를 검출할 수 없다.자바에서의 예외 처리 목표는 규모가 크고 신뢰성 있는 프로그램의 생성을 현재보다 적은 양의 코드를 사용해서 단순화하는 것이며, 또한 애플리케이션에는 미처리된 에러가 없다는 확신을 가지게 하는 것이다. 예외 잡아내기 자바에서 예외의 경우도 다른 자바 객체가 생성되는 것과 같은 방법으로 예외 객체가 생성된다. new를 사용하여 생성되며 힙(heap) 영역에 할당된다. 그 다음에 현재의 실행은 중지되며 예외 객체의 참조는 예외 처리 메커니즘으로 전달된다. 이러한 것을 가르켜 '예외를 던진다'라고 한다. 코드는 아래와 같다.1throw new NullPointe..

Language/Java 2019.03.21

JVM 구조

개발자가 되기위한 첫 걸음 JVM(Java Virtual Machine)이란? JVM은 물리적인 형태가 아닌 소프트웨어로서 하나의 개념으로 존재합니다. 이것은 "VIRTUAL"을 뜻하는 것입니다. 그리고 JVM은 독자적으로 작동할 수 있는 메커니즘과 구조를 가지고 있습니다. 이는 하나의 축약된 컴퓨터와 같은 의미에서 "MACHINE"이라는 단어가 조합된 것입니다. JVM은 JAVA 프로그램과 OS의 사이의 중간 다리 역활이며 JAVA 프로그램이 OS에 독립적으로 실행 될 수 있게 해줍니다.Java Compiler를 통해 Java Source File을 ByteCode로 변환하여 JVM에 넘겨주면 JVM은 OS가 ByteCode를 이해할 수 있도록 해석 해줍니다. JVM 구조 - Java Source : ..

Language/Java 2019.03.07

HashMap과 HashTable 차이

1) 개요 자바에서 제공하는 HashMap과 Hashtable은 Map인터페이스를 상속받아 구현되어 데이터를 키와 값으로 관리하는 자료구조이다. 큰 특징으로는 키(Key)가 데이터를 추출할 때 구분자로 활용하는 방식을 취하는데 이는 리스트 인터페이스와 같은 자료구조보다 탐색에 있어 더 높은 효율을 기대할 수 있다. 2) 차이점 2.1 - 동기화 이 둘의 차이점으로 동기화(Synchronization)를 들 수 있다. HashMap의 경우 동기화를 지원하지 않는다.반면 다중 스레드 환경에서 Hashtable은 동기화를 지원하기 때문에 실행 환경에 따라 구분하여 사용하면 된다. 하지만 한 자바 관련 서적에 의하면 Vector의 상위호환(?)개념인 ArrayList의 사용을 권장하듯 새로운 버전인 HashMa..

Language/Java 2018.12.14