개발언어
-
예외 처리개발언어/Java 2020. 3. 15. 20:57
1. 예외(Exception)처리 방법 try { // 예외가 발생할 여지가 있는 코드영역 } catch (예외종류 참조변수) { // 예외가 발생하면 처리할 내용 } finally { // try-catch 블록이 끝나면 무조건 실행되는 영역 } 앞서 말했듯이, 예외는 예상 가능한 문제를 말한다. 그리고 우리는 위의 코드를 사용하여 예상 가능한 문제에 대한 대응을 할 수 있다. 위 코드에서 기억해야 할 점은, try 블록에서 예외가 발생하지 않으면 finally 블록만을 실행하고, try 블록에서 예외가 발생하면 catch 실행 후 finally 블록을 실행한다는 점이다. 아래의 예시를 보자. 위의 내용은 try-catch를 사용하지 않고 NullPointerException이 발생하는 코드인데, ar..
-
[Java 기초] Stream - 1개발언어/Java 2019. 5. 26. 22:04
0. 들어가기 전에. Java뿐만 아니라 C언어로 개발하면서, 그리고 OS 수업 등을 들을 때, Stream이라는 용어를 꽤나 접했던 것 같다. 그런데 지금껏 stream에 왜 stream이라는 단어가 쓰였는지 생각도 안해봤다. 그냥 외웠지.. 그런데 지금 생각해보니 stream은 영어 뜻 자체가 '흐름'이라는 말이고, 이것을 개발쪽으로 가져와서 생각해보면 '데이터가 흐르는 통로?'같은거라고 생각해볼 수 있을거같다. 그리고 이것을 염두해두고 Stream을 공부하면 좀 더 이해하기 쉬운거같다. 1. Stream? "컬렉션(배열 포함)에 저장된 데이터들을 하나씩 참조해서 람다로 처리할 수 있도록 해주는 반복자" (즉, 스트림은 컬렉션을 통로로 해서 데이터를 흘려보내고, 이것을 하나하나 처리하는 것을 의미한다..
-
[Java 기초] 멀티 스레드 - 1개발언어/Java 2019. 5. 13. 20:44
1. 멀티스레드란? 스레드(thread)는 본래 '실 가닥'을 뜻하는 용어이다. Java에서는 이것을 '한 가지 작업을 실행하기 위해 순차적으로 실행할 코드를 실처럼 이어놓은 것'을 말한다. 즉, 스레드를 사용하면 여러개의 작업에 스레드를 줘서 스레드를 가진 작업들은 동시에 일을 처리할 수 있게 해주는 기법을 의미한다. 2. 작업스레드의 생성/실행 작업스레드는 Thread 클래스로부터 직접 생성하는 방법과 Thread 하위 클래스로부터 생성하는 두 가지 방법이 존재한다. 1) 직접생성 Thread는 java.lang.Thread 클래스를 통해 생성할 수 있는데, 작업 스레드 객체를 만들기 위해서는 아래 코드처럼 Runnable을 매개변수로 받는 생성자를 호출해야한다. Thread t1 = new Thre..
-
[번역] Java 8의 동시성(Concurrency)개발언어/Java 2019. 5. 1. 23:35
부제 : Java8의 lambda에서 가장 중요한 원자적 변수와 동시성Map 이 튜토리얼은 동시성 API의 핵심 개념인 Atomic Variables and Concurrent Maps 에 대해서 이야기하고자 합니다. 두 개념 모두 Java 8에서 람다를 설명하는데 있어서 정말 중요한 개념입니다. 1. AtomicInteger 패키지 java.concurrent.atomic은 원자적 연산을 수행하기 위해 여러 유용한 연산들을 포함하고 있습니다. 연산이 원자적이라는 것은 `synchronized` 키워드나 lock을 사용하지 않고도 멀티스레드로 병렬 연산을 안전하게 실행할 수 있을 때를 말합니다. 내부적으로, 원자적인 클래스들은 comapre of swap(CAS)라는 원자적 명령어를 빈번하게 사용합니다...