본문 바로가기

전체 글

(68)
연산자 산술 연산자 비트 연산자 관계 연산자 논리 연산자 instanceof assignment(=) operator 화살표(->) 연산자 3항 연산자 연산자 우선순위 (optional) Java13. switch operator 산술 연산자 일반적으로 산술 연산은 덧셈, 뺄셈, 곰셈, 나눗셈의 사칙 연산을 뜻합니다. 자바에서 산술 연산은 사칙연산과 나머지 연산을 포함한 다섯 가지 연산을 뜻합니다. 덧셈과 뺄셈 그리고 곱셈은 일반적으로 알고 있는 수학에서 계산과 동일합니다. 나눗셈과 나머지 연산은 처음 프로그래밍을 접한다면 다소 생소할 수 있습니다. 산술 연산에 대한 예를 살펴보기 전에 2주차에 살펴봤던 타입 캐스팅과 타입 프로모션을 다시 한번 생각해볼 필요가 있습니다. 요약하자면, 타입 캐스팅은 원본 데이터 ..
자바 데이터 타입, 변수 그리고 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입과 레퍼런스 타입 리터럴 변수 선언 및 초기화하는 방법 변수의 스코프와 라이프타임 타임 변환, 캐스팅 그리고 타입 프로모션 1차 및 2차 배열 선언하기 타입 추론, var 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입. 영어로 primitive type 또는 원시 타입 또는 기본형 타입이라고 하기도 합니다. 우선 타입이란 데이터 타입을 줄인 말로 자료형이라고 하기도 합니다. 그럼 데이터 타입이란 무엇일까요? 컴퓨터 관점에서 타입은 데이터가 메모리에 어떻게 저장될 것이고 또 어떻게 다뤄져야 하는지에 대해 알려주는 것입니다. 즉, 데이터 타입을 보면 컴퓨터에서 어떤 형태를 가지며 어떻게 처리될 수 있는지 머리 속에 그릴 수 ..
JVM은 무엇이며 자바 코드는 어떻게 실행하는 것인가? JVM이란 무엇인가 컴파일 하는 방법 실행하는 방법 바이트코드란 무엇인가 JIT 컴파일러란 무엇이며 어떻게 동작하는가 JVM 구성요소 JDK와 JRE의 차이 JVM이란 무엇인가 JVM은 Java Virtual Machine '자바 가상 머신'을 뜻하는 말로 바이트코드를 실행하는 주체입니다. 자바가 처음 세상에 나왔을 때 WORA (Write Once Run Anywhere) 를 내세워 홍보하였습니다. 한번 작성해서 어디서든 실행할 수 있다는 말로, 자바 코드로 작성한 프로그램은 실행할 환경 (예를 들어 운영체제)에 독립적으로 실행할 수 있음을 뜻합니다. JVM과 같은 중간언어를 해석해주는 추상화된 장치가 없는 언어들은, 운영체제가 바뀔 때마다 그에 맞는 실행 가능한 프로그램을 만들어야 합니다. 이런 불편..
람다식 학습 람다식 사용법 함수형 인터페이스 Variable Capture 메소드, 생성자 레퍼런스 람다식을 사용하기에 앞서 익명 구현 객체라는 것에 대해 알면 좋습니다. 익명 구현 객체는 인터페이스나 클래스의 객체를 생성해서 사용할 때, 재사용하지 않는 경우 보통 사용합니다. 예를 들어 보겠습니다. 특정 인터페이스를 사용하기 위해 이 인터페이스를 상속 받은 클래스를 구현하는 방법이 있습니다. public class Exam_001 { public static void main(String[] args) { Exam_001_Sub exam_001_sub = new Exam_001_Sub(); exam_001_sub.doSomething(); } } interface AnoymousTest_001 { void d..
제네릭(Generic) 제네릭이란 제네릭 사용법 제네릭 메소드 만들기 제네릭 주요 개념(바운드 타입 와일드 카드) Erasure 제네릭이란? 제네릭은 '클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법' 입니다. 그러면 왜 클래스 내부에서 사용할 데이터 타입을 밖에서 지정해주자는 것인가? 아래 상황을 살펴봅시다. 자바를 좋아하는 촉이 좋은 '감자바'씬느 친구 '좀해조'씨로부터 두개의 숫자를 출력하는 프로그램을 만들어 달라는 요청을 받았습니다. 그래서 감자바씨는 흔쾌히 만들어주겠다고 하며 두팔을 걷어부치고 코딩을 했습니다. public class GenericExample { public static void main(String[] args) { cal cp = new calc(13, 17); cp.print(); ..
I/O (Input/Output) - 자바의 Input과 Output에 대한 학습 * 학습할 것 - 스트림(Stream) / 버퍼 (Buffer) / 채널(Channel) 기반의 I/O - InputStream과 OutputStream - Byte와 Character 스트림 - 표준 스트림(System.in, System.out, System.err) - 파일 읽고 쓰기 스트림(Stream) / 버퍼(Buffer) / 채널(Channel) I/O란? Input과 output의 약자로 입력과 출력을 나타냅니다. 죽, 컴퓨터 내부 똔느 외부와의 장치와 프로그램간 데이터를 주고 받는 것을 말합니다. input : 데이터를 입력 받는 것 output : 입력받은 데이터를 내보내는 것 스트림 실제의 입력이나 출력이 표현된 데이터의 이상화된 흐름을..
어노테이션 어노테이션이란? 1.1 어노테이션 어노테이션은 컴파일 과정에서 코드를 어떻게 컴파일할 것인지 실행 과정에서 코드를 어떻게 처리할 것인지를 알려주는 정보입니다. 즉 메타 데이터로써 역할을 합니다. 메타데이터는 데이터를 위한 설명을 의미하는 데이터가 담겨있습니다. 주로 컴파일러에게 코드 문법 에러를 검사하도록 정보를 제공하거나 코드를 자동으로 생성할 수 있도록 정보를 제공합니다. 런타임 시에는 특정 기능을 실행하도록 정보를 제공합니다. 사용방식은 @ + 어노테이션 명으로 특정 클래스나 메소드, 변수에 붙여 사용합니다. 1.2 Java에서 제공하는 어노테이션 @Override - 선언한 메소드가 오버라이드 되었다는 것을 나타냅니다. - 상위 클래스에서 해당 메소드를 찾을 수 없으면 컴파일 에러를 발생 시킵니다..
Enum Enum 정의하는 방법 Enum이란? enum(열거형)은 서로 관련된 상수를 편리하게 선언하기 위한 것으로 상수를 여러개 정의할 때 사용합니다. enum은 여러 상수를 정의한 후, 정의된 것 이외의 값은 허용하지 않습니다. 가장 간단하게 선언하는 방법은 다음과 같습니다. enum 열거형이름 {상수명1 상수명2, 상수명3} public class EnumDemo { enum Season {SPRING, SUMMER, FALL, WINTER} public static void printSeason(Season season) { switch (season) { case SPRING: System.out.println("봄입니다."); break; case SUMMER: System.out.println("봄입..