Java (47) 썸네일형 리스트형 [Java] 04.02 - 자바에서 제공하는 단항 연산자들 들어가며 단항 연산자는 피연산자가 하나인 연산자로, 이항 연산자에 비해 그 수가 적다. 그러나 이항 연산자와 마찬가지로 유용하게 사용되는 연산자들이다. 부호 연산자 '+'와 '-'는 이항 연산자로 덧셈과 뺄셈에 사용된다. 그런데 이 둘은 단항 연산자로도 의미를 갖는다. 물론 그 의미는 수학적 의미와 동일하며, 연산자의 경우 다음과 같이 사용할 수 있다. double e1 = 3.5; double e2 = -e1; // e2에 저장되는 값은 -3.5 이와 유사한 방법으로 '+' 연산자도 사용할 수 있다. 그러나 이는 큰 의미를 두지 않는 연산자이다. 그럼 두 연산자와 관련하여 다음 예제를 보자. public class temp { public static void main(String[] args){ sh.. [Java] 04.01 - 자바에서 제공하는 이항 연산자들 들어가며 피연산자가 둘인 연산자를 가리켜 '이항 연산자(binary operator)' 라고 한다. 따라서 '+'나 '='도 이항 연산자에 속한다. 자바의 연산자들 자바에서 제공하는 모든 연산자를 하나의 표로 정리하면 다음과 같다. 위의 표에서 연산자별 '결합 방향'과 '우선순위'를 볼 수 있는데, 이들은 하나의 식 안에 둘 이상의 연산자가 존재하는 경우의 연산 진행 순서를 결정하는 요소들이다. 이와 관련하여 다음 수식의 연산과정은 다음과 같다. 이렇듯 곱셈을 먼저 한 이유는 다음 수학적 배경을 기초로 한다. 덧셈과 뺄셈보다 곱셈과 나눗셈을 먼저 계산해야 한다. 그리고 이러한 내용을 반영한 것이 연산자의 '우선순위'이다. 그럼 곱셈 이후의 남은 연산을 보자. 뺄셈 연산만 둘이 있는 위의 경우에는 다음 수.. [Java] 03.02 - 형 변환 들어가며 우리의 관점에서 1.0과 1은 동일한 값이다. 그러나 자바의 관점에서는 1.0과 1은 전혀 다른 값이다. 이 두값을 표현하고 저장하는 방식이 전혀 다르기 때문이다. 자료형의 변환이 의미하는 것은? int형 정수의 덧셈 방법과 double형 실수의 덧셈 방법은 다르다. 데이터의 표현 방법에 따라서 덧셈 방법도 달라지기 때문이다. 때문에 다음과 같은 문장이 있다면, 컴파일러는 두 변수 num1과 num2의 자료형이 동일할 것을 기대한다. 자료형이 다른 두 값을 대상으로는 덧셈을 진행할 수 없다. System.out.println(num1 + num2); 그런데 예상과 달리 다음과 같이 선언되어 있다면, 이대로는 덧셈을 할 수 없어서 두 변수의 자료형을 하나로 일치시키는 과정을 거쳐야 한다. int .. [Java] 03.01 - 상수 들어가며 상수는 '값이 변하지 않는 수'를 의미한다. 하지만 자바에서는 한번 그 값이 정해지면 이후로는 변경이 불가능한 변수도 상수라고 한다. 자바의 일반적인 상수 변수를 선언할 때, 그 앞에 'final'이라는 선언을 추가하면 그 변수는 '상수'가 된다. 그리고 다음 두 가지 특징을 지니게 된다. 값을 딱 한 번만 할당할 수 있다. 한 번 할당된 값은 변경이 불가능하다. 그럼 다음 예제를 통해서 상수가 갖는 위의 2가지 특징을 확인하겠다. public class temp { public static void main(String[] args){ final int MAX_SIZE = 100; final char CONST_CHAR = '상'; final int CONST_ASSIGNED; CONST_AS.. [Java] 02.04 - 자바의 기본 자료형 들어가며 변수를 선언할 때는 반드시 '자료형'을 결정해 주어야 한다. 변수의 자료형을 결정한다는 것은 해당 변수에 값을 저장하고 참조하는 방식을 결정한다는 의미다. 즉, 변수의 자료형을 정수형으로 결정하면 앞서 설명한 정수의 표현 방식으로 값을 저장 및 참조하게 된다. 그리고 실수형으로 결정하면, 앞서 설명한 실수의 표현 방식으로 값을 저장 및 참조하게 된다. 정수 자료형 자바는 총 4개의 정수 자료형을 제공한다. 따라서 이들 자료형을 기반으로 변수를 선언하면, 이로 인해 할당된 메모리 공간에는 정수의 표현 방식을 기준으로 값을 저장 및 참조하게 된다. 따라서 정수 자료형으로 선언된 변수에는 소수점 이하의 값을 포함하는 실수를 저장할 수 없다. 그리고 자바에서 제공하는 4개의 정수 자료형이 갖는 차이점은.. [Java] 02.03 - 실수 표현 방식 이해하기 들어가며 실수의 표현 방식을 이해하면 실수를 보다 효율적으로 그리고 적절히 사용할 수 있다. 더불어 앞서 제시한 실수의 덧셈에서 오차가 발생한 이유도 알 수 있다. 실수의 표현 방식 - 비하인드 다음 질문에는 어렵지 않게 대답할 수 있다. "1과 5사이에 존재하는 정수의 개수는?" 그러나 다음 질문에는 답하기가 쉽지 않다. "1과 2사이에 존재하는 실수의 개수는?" 1과 2 사이에는 무한개의 실수가 존재한다. 따라서 소수점 이하 자릿수까지 표현해야 하는 실수를 컴퓨터로 표현하는 데는 한계가 존재한다. 근데 이게 생각보다 존재감이 엄청나다. 실수의 표현 방식 - 타협과 절충 정수는 오차 없이 표현이 가능하다. 오차 없이 완벽히 양의 정수와 음의 정수를 표현할 수 있다. 그러나 오차를 허용하지 않으면서 그 .. [Java] 02.02 - 정수의 표현 방식 이해하기 들어가며 앞서 double형 변수 둘을 대상으로 한 덧셈의 결과에 오차가 있는 것을 확인하였다. 이러한 오차의 발생 이유를 알기 위해서는 컴퓨터의 정수, 실수 표현법을 이해해야 한다. 따라서 이에 대하여 간단히 설명하고자 한다. 참고로 본문에서는 2진수와 8,16진수에 대한 기본적인 이해를 갖추었다고 가정하고 진행한다. 컴퓨터가 정수를 이해하는 방식 정수의 표현에 있어 제일 먼저 결정할 사항은 '몇 바이트 정수로 표현할 것인가.'이다. 정수는 1, 2, 8바이트로도 표현할 수 있다. 물론 표현하는 바이트 크기가 클수록 표현할 수 있는 정수의 범위는 넓어진다. 그러나 값을 표현하는 기본 원리는 동일하므로 설명의 편의를 위해서 1바이트 기준으로 정수의 표현 방식을 설명하겠다. 다음의 그림은 정수 표현의 기본.. [Java] 02.01 - 변수의 이해와 활용 들어가며 살면서 본인은 모기 때문에 잠을 설쳐본 적이 없다. 하지만 이제 있게 되어 버렸다. 모기는 제발 멸종했으면 좋겠다. 느그들이 있을 곳은 박물관과 실험실 뿐이다. 솔직히 변수에 대해 모르는 것은 아니지만, 복습의 차원으로 간단하게 다뤄보도록 하겠다. 메모리 공간의 활용을 위해 필요한 변수 변수를 한 문장으로 정리하면 다음과 같다. 데이터의 저장과 참조를 위해 할당된 메모리 공간'에 붙인 이름을 '변수'라고 한다. 다음 그림은 메모리 공간의 일부를 표현한 것이다. 그리고 이 메모리 공간에는 두 개의 메모리 블록이 프로그래머가 사용할 수 있도록 할당되어 있다. 그렇다면 메모리 공간을 어떻게 할당받는 것인지, 그리고 메모리 공간에 어떻게 접근할 수 있는지는 여전히 의문으로 남는다. 변수는 메모리 공간에.. [Java] 01.03 - 들여쓰기와 주석 들어가며 본인은 여름이 싫다. 여름의 3대 죄악. 모기, 습기, 열기. 그래서 인간이 반성해야 한다. 근데 모기는 예외다. 제발 멸종했으면 좋겠다. 블록 단위 주석 다음 내용을 소스파일 앞 부분에 기록해 둔다고 가정하자. 파일 이름: Practice.java 작성자: 심플심플심플심플 작성일: 2020년 7월 17일 목적: System.out.println 메소드의 기능 테스트 이렇듯 주석으로 처리해야 할 내용이 여러 줄에 걸쳐서 존재하는 경우, 생각해 볼 수 있는 것이 '블록 단위 주석'이다. 이는 주석의 시작을 '/*'으로, 그리고 끝을 '*/'으로 표시한다. 그러면 그 사이의 모든 내용은 주석으로 인식된다. 그럼 위의 내용을 주석으로 넣으면 다음과 같다. /* 파일 이름: Practice.java 작.. [Java] 01.02 - 자바 프로그램의 관찰과 응용 들어가기 그림 한 장으로 요약하겠다. 프로그램의 골격과 구성 간단한 자바 예제를 하나 보도록 하겠다. public class class_name { public static void main(String[] args){ System.out.print("Hello World."); } } 맥락상 모두가 눈치챘을 테지만, 간단한 출력문이다. 이 명령문은 다음과 같이 이루어져 있다. 위 그림에서 보여주듯이, 자바는 중괄호를 이용해서 영역, 또는 경계를 형성한다. 즉 클래스의 이름에 이어서 다음 행에 등장하는 중괄호와 이에 쌍을 이루어 마지막에 등장하는 중괄호는 클래스의 영역을 구분하는 용도로 사용되었다. 즉, 자바는 중괄호를 이용해서 클래스와 매소드의 영역을 구분한다. 앞서 보인 간단한 예제의 실행결과에서 알.. [Java] 01.01 - 자바 프로그램과 실행의 원리에 대한 이해 들어가며 어찌저지 대학교 1학년의 1학기를 마치게 되었다. 성적도 매우 만족스럽게 나왔다. 2학기 과목 중 Java를 이용한 객체 지향 프로그래밍 과목이 있어, 미리미리 준비하고 학점에 대비할 생각이다. 근데 나 기획 지망인데? 어······? 자바 프로그램의 실행 구조 일반적인 프로그램은 윈도우 또는 리눅스와 같은 운영체제 위에서 실행이 된다. 즉, 다음의 구조로 실행된다는 의미다. 위 그림에서 보여주듯이, 하드웨어를 기반으로 운영체제가 동작하고, 그 위에서 프로그램이 실행되는 구조다. 다시 말하자면, 하드웨어 위에서 실행되는 운영체제가 프로그램을 실행시키는 구조다. 그러나 자바 프로그램은 다음의 구조로 실행이 된다. 이렇듯 운영체제는 자바 가상 머신을 먼저 실행시키고, 자바 가상 머신이 자바 프로그램.. 이전 1 2 3 4 다음