연산자
연산자와 연산식
연산 (operations) : 프로그램에서 데이터를 처리하여 결과를 산출하는 것
연산자 (operator): 연산에 사용되는 표시나 기호
피연산자 (operand): 연산되는 데이터
연산식 (expressions): 연산자와 피연산자를 이용하여 연산의 과정을 기술한 것
java에서 제공하는 연산자
- 산술( +, -, *, /, %), 부호(+, -), 문자열연결(+), 대입(=, +=, -=, *=, /=, %=, &=, ^=, |=, <<=, >>=, >>>=), 증감(++, --)
- 비교, 논리, 조건, 비트, 쉬프트
다항 연산자(피연산자가 여러개), 단항 연산자 (피연산자가 1개)
단항 연산자
- 정수타입의 피연산자에만 사용되고, 산출 타입은 int 타입이 됨!
- 비트 반전 연산자(~) : 2진수 표기 숫자를 1은 0으로 0은 1로 반전시켜 변경시켜준다.
(비트반전 연산을 확인하려면 2의 보수를 진행)
2의 보수는 1) 1의 보수 (0과 1을 바꿔줌), 2) 더하기 1을 한다. 로 진행함
문자열 연결 연산자 (+)
String 은 클래스이다. String 에서 + 는 문자를 연결해주는 연산자로 사용됨.
덧셈은 왼쪽에서부터 진행된다. 뒤에 int타입이나 double타입이 더해져도 문자열로 인식하여 더해줌
비교연산자
비교 연산자는 결과로 boolean을 return한다. 즉, True나 False로 값을 리턴한다.
(종류: ==, !=, >, <=, <, >=)
연산자 우선순위
연산자에는 우선순위가 존재한다.
보통 대입연산자가 제일 낮고, 증감 연산자가 제일 높다.
증감 연산자에서 (++A 와 A++은 차이가 있다! 주의!)
** eclipse에서 작업한 자료를 백업하여 옮기는 방법 팁! **
eclipse workspace에 src폴더에는 .java파일이, bin폴더에는 .class파일이 저장된다.
따라서 옮길 시에는 .java 파일만 압축하여 옮겨가는 것이 현명! (자료의 양이 많아질 경우 .class파일까지 굳이 가져갈 필요X)
**workspace 관련 **
한 pc를 공유해서 여러 개발자가 사용할 경우 workspace를 각자 나눠서 사용하면 프로젝트관리가 유용하다.
데이터 타입
- 정수형 데이터 타입
- byte (1 byte)
- char (2 byte)
- short (2 byte)
- int (4 byte) : 기본 10진수, 0으로 시작-8진수, 0x로 시작-16진수
- long (8 byte) : 숫자 뒤에 L 붙어줘야 long타입으로 인식
그냥 숫자만 들어가면 java에서는 integer 타입으로 인식한다.
int타입을 long에 넣을 수 있지만 반대의 경우는 컴파일 오류 발생함 (작은 메모리에 큰 메모리를 넣으려고 하니, overflow)
short 타입에 마이너스가 붙으면 integer 타입으로 바뀐다 (자바의 특성임, 그냥 알아두기)
char type 은 문자 저장 (2byte)
- 문자열이 아닌 문자 1개를 저장함
char c1 = 'A';
char c2 = 65;
System.out.println(c1);
System.out.println(c2);
//출력결과는 둘 다 A 나옴
출력이 같은 이유는 문자는 아스키코드표를 보면 A가 65을 의미함.
(아스키 코드는 검색하면 나옴)
아스키코드를 다 외울 수는 없으니, "대문자A가 65다 소문자a는 97이다." 정도만 외워두기
형변환은 값 앞에 ()로 바꿔준다.
ex) (double) 5 / 2; - 명시적 형변환 (5가 int 에서 double로 변경된다)
- 실수형 데이터 타입
- float (4 byte), double (8 byte)
printf 를 통하여 출력할 때 실수형 데이터타입의 정수 부분 혹은 소수점의 자릿수를 정할 수 있다
%는 서식지 정의 , d는 10진수를 뜻하고 3d는 최소 3자리로 인식하는 숫자
%d는 10진수 숫자
%4.3f 는 정수는 4자리, 소수점은 3자리 실수형 숫자를 받음.
%s는 문자를 받음
format관련은 뒤에 더 나올 때 다시 봐야할 것 같다!
- 논리 데이터 타입
- boolean (1 byte) : true, false
명명 표기법 종류
프로그래밍하면서 명명하는 표기법들이 몇 가지 있다.
역시 구글링하면 나오지만 몇 번씩 봐왔던 것들 정리.
헝가리안 표기법
프로그래밍에서 변수나 함수 등을 명시하는 표기법
ex) int iAge = 34; / / . chName = 'B''
앞에 데이터 타입을 적고 변수명을 적어주어서 코드가 길어질 때 변수의 타입을 한번에 확인할 수 있다.
카멜 표기법
단어가 여러개일 때 맨앞자를 제외하고 다음 시작 단어의 앞자를 대문자로 작성
파스칼표기법
모든 단어의 앞자리를 대문자로 작성
(클래스 네임 등)
c나 c++에서는 _를 이어서 작성
(자바 교재 1017 page)
Scanner 클래스 : 사용자 입력을 받는 방법
Scanner scanner = new Scanner(System.in);
보통 위 형태로 쓰여짐, 그러나 오류가 뜨는경우, import작업을 해줘야 함. (Scanner Class를 사용할 수 있도록 가져오는 작업)
class 위쪽에 import java.utill.Scanner; 형태로 선언되어야 함.
(import utill.java.*) *의 의미는 모든 클래스를 가져오겠다는 의미
그리고 항상 사용 후 scanner.close(); 로 닫아줘야함.
교재에 있는 예제! (nextInt, Line, double)
<강사님께서 자바 관련 추천해준 서적>
1. 자바의 정석
2. 이것이 자바다 (학원 교재)
3. Head first 시리즈 (초심자에게 좋은 책)
NaN, Infinity 타입
5/0 -> ArithmeticExcemtion 예외 발생
5%0 -> 위와 동일한 예외 발생
결론적으로 우리는 예외가 나오지 않도록 개발해야함.
NaN 의미는 (Not a Number)
<각종 알아둬야할 것들>
** Mac에서 터미널에서의 명령어
ls : 내부 디렉토리 파일을 알려줌 (윈도우 dir와 동일)
** 자바의 실수 계산은 정확하지 않을 수 있다.
(0.3 을 소수점 자리를 여러자리로 보면 0.222222222229 일 경우가 있음)
** 이클립스에서 refactor 누르면 파일 명을 변경해준다!
** overflow
작은 메모리 저장 가능 타입에 큰 메모리 저장 가능 타입을 넣을 때 나타나는 에러 현상
** 디버그 하는 중에 expressions를 켜서 변수를 추가할 수 있고, 변수를 계산할 수 있다. 단 선언되고 난 뒤의 변수만 활용 가능함
** diff tool
실무에서 편하게 자주 사용함.
양쪽 코드를 비교하면서 다른 부분을 표시해주는 툴
beyond compare (유료 툴)
acro diff (네이버 검색) - 무료 툴
'Java' 카테고리의 다른 글
Java 개발 공부 5일차 (21.08.23) (0) | 2021.08.28 |
---|---|
Java 개발 공부 4일차 (21.08.20) (0) | 2021.08.22 |
Java 개발 공부 3일차 (21.08.19) (0) | 2021.08.22 |
Java 개발 공부 1일차 (21.08.17) (0) | 2021.08.17 |
Java 기초 공부 (변수) (0) | 2021.08.09 |