-개요

JAVA의 타입은 크게 기본 타입(Primitive Type)과 참조 타입(Reference Type)으로 나눌 수 있다.

  • 기본 타입(Primitive Type)
    • 실제의 값을 변수 안에 저장한다. 
    • 정수 타입 : byte, char, short, int, long
    • 실수 타입 : float, double
    • 논리 타입 : boolean
  • 참조 타입(Reference Type)
    • 실제값이 변수 안에 저장되는 것이 아니라 변수 안에는 실제값이 있는 메모리의 주소를 저장한다. 
    • 기본 타입을 제외한 모든 타입을 참조 타입이라고 한다.
    • 배열, 열거, 클래스 등이 있다.

 

-메모리 사용 영역

JAVA에서는 메모리를 7개의 영역으로 나눈다. 그중 가장 많이 사용되는 메모리 영역이 3가지 있다.

런타임 환경에서 코드를 실행하면서 코드가 스택에 쌓이고 인스턴스 생성 시 힙 영역에 저장이 되며 인스턴스의 constructor, method 등을 사용할 때 메서드 영역의 클래스의 내용이 불러와진다.

  • 메서드(Method)
  • JVM이 시작할 때 생성되고 모든 스레드가 공유하는 영역
    • 클래스
      • 정적 필드
      • 상수
      • 생성자
      • 메서드
      • 코드 등을 분류해 클래스별로 저장
  • 힙(Heap)
    • 객체와 배열이 생성되는 영역 / new로 인스턴스 생성 시 힙 영역에 저장이 된다.
    • 기본자료형을 제외한 모든 자료형(Reference Type)이 이곳에 생성된다.
  • JVM 스택(Stack)
    • 메서드가 호출되면 프레임이 추가되고, 메서드가 종료되면 프레임이 제거된다
    • 자료구조의 스택과 동일하게 생각하면 된다.

 

-연산

참조변수의 연산 시 ==,!= 할 때 원하는 결괏값이 나오지 않을 것이다.

String str1 = "안녕";
String str2 = "안녕";

System.out.println(str1 == str2);

바로 뒤에 포스팅에 나오지만 true를 출력한다.

원하는 결괏값이지만 ==연산의 사용등은 아래와 뒤의 포스팅을 참고하자.

 

String은 기본 타입 변수가 아니기 때문에 변수에 저장되어 있는 값은 "안녕"이라는 글자 자체가 아닌 "안녕"이 저장되어 있는 주소의 주소 값이다.

 

그럼 str1과 str2의 보이는 값이 둘 다 "안녕"이므로 같은 주소에 저장이 되어있을까?

아니다 String자체는 다시 작성을 해보면

String str1 = new String("안녕");
String str2 = new String("안녕");

이렇게 작성이 된다. 위의 코드처럼 바로 선언을 하는 것과 new를 사용하는 것은 같은 코드이다.

그렇다면 조금 이해가 될 수도 있다.

str1과 str2는 new키워드가 붙어있다. 그러면 각각 새로 생긴 주소 값이 부여가 될 것이다.

그러면 == 혹은!= 연산자를 사용했을 때 생각한 것과 결과가 다를 것이다.

 

만약 같은 주소의 "안녕"을 str2에 넣어주고 싶다면

String str1 = "안녕";
String str2 = str1;

이렇게 작성을 해준다면 같은 주소의 값을 가진 str2를 생성할 수 있다. 하지만 이렇게 복사를 한다면 후에 문제가 생길 수도 있다. 나중에 얕은 복사 등을 알아볼 때 다시 보도록 하자

 

-Null, NullPointerException

Null : 값이 없음을 나타내 줌

NullPointerException : null값을 참조하고 있다는 Erorr

 

인스턴스 생성 시 new가 아닌 null값을 넣어주게 될 때 NullPointerException이 발생한다.

Random rnd = null;
rnd.nextLine();

널 포인터를 참조하고 있다는 뜻이고 위의 코드와 같이 참조할 객체(인스턴스)가 없는 상태에서 내부의 메서드를 사용하기 위해서 접근을 할 때 오류가 나타난다.

System.out.println("Hello!");
System.out.println("Hello!");
System.out.println("Hello!");
System.out.println("Hello!");
System.out.println("Hello!");
System.out.println("Hello!");
System.out.println("Hello!");
System.out.println("Hello!");
System.out.println("Hello!");
System.out.println("Hello!");
System.out.println("Hello!");

어떠한 코드를 반복적으로 실행을 해야 한다고 보자.

위의 코드와 같이 단순하게 반복을 하는 방법도 있다. 하지만 코드의 내용이 복잡해지고 양이 방대하게 많아진다면,

그리고 기본적으로 프로그래머는 반복, 막일을 싫어한다.

이런 여러 가지 이유에서 반복문이라는 것을 사용한다.

반복문에는 3가지의 종류가 있다.

  • for
    • for (1. 초기화식; 2. 조건식; 4. 증감식) {
      	//3. 반복될 코드
      }
    • for문은 위의 코드와 같이 작성할 수 있다
    • 보통 반복의 횟수를 알고 있을 때 사용한다
    • 조건식은 반복문이 얼마 동안 반복할 것인지를 설정해 줄 수 있다.
    • 중괄호 안의 코드는 조건이 true인 동안 반복될 코드를 작성할 수 있다.
    • for (int i = 0; i < 10; i++) {
      	System.out.println(i);
      }
    • 위의 코드는 0~9까지 출력을 해준다
    • 초기 화식과 증감식을 설명을 안 했는데 초기 화식은 반복문에 사용될 변수를 초기화해준다.
      • 이 변수의 개수는 상관없으며 변수는 for문 안에서만 사용이 가능하다.
      • 변수의 선언과 초기화는 변수 밖에서 하는 것과 마찬가지로 [type] [변수명] = [Value]; 작성한다.
    • 증감식은 조건식과 연관해서 보면 된다.
      • 조건식이 i가 10보다 작은동안, 즉 i가 9가 될 때까지 반복을 하며 10이 되면 반복을 종료하고 반복문을 빠져나간다.
      • 조건을 만족하기 위해서 1에서 설정해준 변수에 1씩 증가를 시켜준다.
        • 1씩이 아니여도 상관없다. i += 2;라고 한다면 2씩 증가될 것이다.
      • 조건식을 확인하고 내용을 실행하고 마지막으로 i에 1을 더해줄 것이다 이러한 순서로 2, 3, 4 이렇게 반복을 하면 i는 계속 증가될 것이고 결국엔 i의 값이 10이 되고 반복문을 종료할 것이다.
    • 시작 변수를 어떻게 설정하느냐, 조건식을 어떻게 하느냐에 따라서 출력 결과가 많이 달라지므로 연습을 많이 해봐야 한다.
      • 예를 들어 위의 코드에서 조건식의 부분만 i <= 10; 이렇게 만들어준다면 =하나 들어갔을 뿐인데 코드의 결과는 10이 추가로 출력이 된다.
      • 이처럼 많이 사용해보고 여러 문제들을 풀어보면서 사용법을 이해하고 이해되지 않으면 외워버리는 것도 방법이다.
    • continue
      • continue라는 코드를 중간에 넣어주면 '이번 실행은 건너 뛸꺼야 아무것도 하지 마'라는 말과 동일하다
      • for(int i = 1; i <= 10; i++) {
        	if(i % 2 == 0) {
            	continue;
                //2의 배수는 건너 뛰어라
                //i 나누기 2의 나머지가 0이면 2의 배수
            }
        	System.out.println(i);
        }
      • 코드 실행 결과를 보면 알 수 있듯이 if문의 조건이 만족하면 continue해라라고 했고 그 결과 홀수만 출력이 됐다.
      • 조건식에서 i를 2로 나눈 나머지가 0이면 continue를 하라고 했는데 결론적으로 2로 나누었을 때 나머지가 0이면 2의 배수이기 때문에 2의 배수(짝수)는 출력되지 않고 홀수만 출력된 것을 확인할 수 있다.
  • while
    • while(조건식) {
      	//반복될 코드
      }
    • 처음 보는 분들에게는 while이 더 쉬워 보일 수도 있겠다.
    • 일반적으로는 반복의 횟수를 모르는 경우 사용된다
    • 조건식 안에 Boolean으로 return 되는 값을 넣어주고 return값이 true인 경우 중괄호 안의 코드가 반복된다
    • while(true) {
      	System.out.println("Hello");
      }
    • 위와 같이 코드를 작성할 수 있는 데 따라 해보지 않기를 권장한다.
    • 앞서 말했듯이 반복의 횟수를 모르는 경우 사용하며 조건식이 true면 내용을 실행한다. 하지만 위의 코드 어디에도 while문을 빠져 날 수 있는 방법이 없다.
    • while문에서 위와 같이 코드를 작성할 경우 무한루프에 빠진다고 하고, while문을 빠져나오지 못하고 계속 while안에 영원히 머무른다는 소리다.
    • 코드가 짧고, 복잡하지 않다면 컴퓨터가 힘들어하지 않겠지만 내용이 복잡하고 실행할 내용이 많다면 얼마 가지 않아 다운될 것이다.
    • 정지 방법
      • Break
        • 중괄호 안에서 break를 입력해줄 경우 실행이 되다 break를 만났을 때 while문을 종료하고 빠져나간다
        • while (true) {
          	//Code 1
              //Code 2
              //Code 3
              //Code 4
              //Code 5
              break;
              //Code 6
              //Code 7
              //Code 8
          }
        • break를 만나면 빠져나간다. 그렇다면 break이후의 코드. 즉, code 6부터는 실행되지 않는다는 뜻이다.
        • 하지만 이렇게 아무런 조건 없이 break를 잡아준다면 한 번만 돌고 끝날 것이다 그렇게 때문에 조건문(if)을 사용해서 조건문의 return값으로 break를 넣어주는 게 좋다.
        • while(true) {
          	//Code 1
              //Code 2
              //Code 3
              //Code 4
              //Code 5
              if (/*빠져나갈 조건*/) {
              	break;
              }
              //Code 6
              //Code 7
              //Code 8
              
          }
        • 위와 같이 작성하면 if의 조건이 만족하기 전까지는 while문을 빠져나갈 일은 없을 것이다.
        • 반복문 혹은 switch가 중첩으로 들어가 있다면 label을 붙여서 지금의 위치를 빠져나갈 수 있다.
        • while(true) {
          	[Label Name]:for(int i = 0; i < 2; i++) {
              	if(i == 1) {
                  	break [Label Name];
                  }
              }
          }
        • 라벨의 이름을 정해서 나갈 위치를 잡아줄 수 있다.
        • continue도 동일하다.
      • 변수 사용
        • while문의 소괄호에는 Boolean값이 들어간다고 했는데 그렇다면 변수로도 컨트롤을 할 수 있다.
        • 사용방법은 break와 비슷하다
        • boolean flag = true;
          while(flag) {
          	//Code 1
              //Code 2
              //Code 3
              //Code 4
              //Code 5
              if (/*빠져나갈 조건*/) {
              	flag = false;
              }
              //Code 6
              //Code 7
              //Code 8
          }
        • 위와 같이 사용이 가능하지만, break는 만난 시점에 바로 빠져나가지만 변수를 저렇게 중간에 사용해줄 경우 변수가 false로 변해도 while의 조건을 인식하는 건 중괄호의 내용이 모두 끝나고 인식을 하기 때문에 flag가 중간에 false라고 바뀌어도 code6~8이 실행되고 flag가 true인지 false인지 확인하고 while문의 처리를 진행하게 될 것이므로 사용의 위치가 중요하다.
  • do-while
    • do {
      	//반복 내용
      } while (/*조건식*/)
       
    •  조건식이 true면 반복 내용을 실행하는 부분은 while문과 비슷하다.
    • 다른 점은 코드의 작성 순서를 보고 알 수도 있겠지만 먼저 수행하고 조건을 확인한다.
    • 조금 어려울 수도 있는데 그냥 위에서 코드가 쭉 내려오다가 조건에 상관없이 do를 먼저 실행을 해주고 조건식을 확인한다.
    • boolean flag = false;
      
      do {
      	System.out.println("true면 실행해");
      } while (flag);
      
      
    • 위의 코드 내용을 보면 알 수 있듯이 do는 조건과 상관없이 무조건 한 번을 실행한다.
    • 상황에 맞게 사용하면 된다.

'Back-end > JAVA' 카테고리의 다른 글

11. 참조 타입(Reference Type) - String  (0) 2021.06.17
10. 참조 타입(Reference Type) - 개념  (0) 2021.06.17
-컴파일러 에러  (0) 2021.06.15
8. 조건문(if, else, else if, switch)  (0) 2021.06.14
7. Operator  (0) 2021.06.11

-Change Project compliance and JRE to 1.7

아래와 같이 컴파일러의 버전이 낮아서 사용할수 없는 기술(?)들이 있다.

이런 경우 컴파일러의 버전을 바꿔줘야한다.

먼저 프로젝트에서 우클릭 후 제일 아래에 있는 Properties를 눌러준다.

나와있는 단축키처럼 Alt + Enter를 입력해도 작동하지만 단축키 사용 전 프로젝트가 클릭되어있어야 한다.

그 뒤에 열린 화면에서 Java Compiler탭에 들어가서 Enable project specific settings를 체크하면 아래의 비활성화 되있는 칸이 다 활성화가 된다.

그 뒤에 Compiler Compliance Level을 원하는버전 혹은 에러에 나온 버전 이상으로 올려준 뒤 하단에 Apply and Close를 눌러주면 에러가 해결된다!

'Back-end > JAVA' 카테고리의 다른 글

10. 참조 타입(Reference Type) - 개념  (0) 2021.06.17
9. 반복문(for, while, do-while)  (0) 2021.06.15
8. 조건문(if, else, else if, switch)  (0) 2021.06.14
7. Operator  (0) 2021.06.11
6. 입출력  (0) 2021.06.09

select는 SQL을 사용할 때 제일 중요한 명령어다.

테이블을 생성하고 데이터를 삽입한다고 해도 불러올 수 없다면 의미가 없다.

 

select [컬럼명] [as] ["][별칭]["][,]
	from [테이블명]
    where [조건]
    group by [컬럼명]
    having [조건]
    order by [컬럼명|컬럼인덱스 [asc]|[desc]];

select문은 총 6개의 절로 구성되어있다.

먼저 처리 순서는 아래와 같다.

from -> where -> group by -> having -> order by -> select

 

필수적인 요소로는 select * from dual 과 같이 select, from은 꼭 사용을 해야 한다.

그 뒤로 where, group by, having, order by를 사용하여 조건, 정렬 등을 사용할 수 있다.

  • select
    • 칼럼명 부분에 *를 사용하면 모든 칼럼을 불러온다
    • 단일 칼럼부터 테이블 안의 모든 칼럼, 다른 테이블의 칼럼까지도 가져올 수 있다.
    • as뒤에 별칭으로는 칼럼 명의 길이가 너무 긴 경우에 별칭으로 짧게 보여줄 수 있다.
      • 큰따옴표를 사용하지 않아도 되지만 공백, 특수문자가 들어가는 경우 반드시 사용해야 한다
      • 숫자를 별칭으로 사용할 수 있지만 숫자로 시작할 수는 없다.
  • from
    • 테이블 명 혹은 뷰만 올 수 있으며 서브 쿼리가 사용될 경우 서브 쿼리의 결괏값이 무조건 테이블 혹은 뷰가 돼야 한다
    • 테이블명 뒤에 별칭을 줄 수 있다.
  • where
    • 일반적으로 조건을 줄 때 사용되며 예를 들어 어떤 테이블의 모든 값을 불러오는데 age가 20 이상인 데이터만 불러와라 라고 할 때 밑줄 친 부분이  where절의 조건이 된다.
  • group by
  • having
    • where절과 같이 조건을 줄 때 사용되는 건 같지만 조건 안에 그룹 함수가 있다면 having절에 사용해주는 게 맞다
  • order by
    • 정렬을 해주는 절이다
    • 칼럼명 혹은 컬럼 인덱스를 넣어줄 수 있는데 칼럼이 id, name, age 이렇게 있다면 id를 넣어주면 id값을 기준으로 잡을 수 있고 2를 넣어주면 입력한 칼럼 중 두 번째인 name을 기준으로 잡아서 정렬을 한다
    • 뒤에 asc, desc은 오름차순, 내림차순 정렬을 의미하며 입력하지 않을 시에는 asc이 기본값으로 잡힌다.

'DataBase > Oracle' 카테고리의 다른 글

7. 연산자(Operator)  (0) 2021.06.18
7. 자료형(Data type)  (0) 2021.06.17
5. DDL(Data Definition Language) - Drop  (0) 2021.06.14
4. DML(Data Manipulation Language) - insert  (0) 2021.06.14
3. DDL(Data Definition Language) - Create  (0) 2021.06.10

Drop은 테이블을 삭제할 때 사용되는 명령어다

 

drop table [테이블명];

drop을 사용하면 되돌릴수 없으므로 신중하게 처리해야 한다.

또한 삭제 시에 연쇄 속성이 설정되어있을 경우 하위 테이블 혹은 상위 테이블의 연쇄 삭제가 발생할 수 있으므로 조심해야 한다.

 

연쇄 속성을 삭제하려면

alter table [테이블명]
	drop constraint [제약조건명];

이렇게 작성을 해주면 FK 잡힌 제약조건이 삭제된다.

이렇게 된다면 참조되는 부분이 사라지므로 다른 테이블과의 참조 관계와 상관없이 단독적인 테이블 삭제가 가능하다.

'DataBase > Oracle' 카테고리의 다른 글

7. 자료형(Data type)  (0) 2021.06.17
6. Selec  (0) 2021.06.14
4. DML(Data Manipulation Language) - insert  (0) 2021.06.14
3. DDL(Data Definition Language) - Create  (0) 2021.06.10
2. SQL  (0) 2021.06.08

DML 중 하나인 insert는 생성한 테이블에 자료를 삽입할 때 사용한다.

테이블의 컬럼에 맞게 데이터를 삽입해야 하며 삽입하고자 하는 데이터에 맞는 칼럼이 없을 경우 오류가 발생한다.

 

insert into [테이블명] [(컬럼명1[, 컬럼명2...])]
	values(data1[, data2...]);

위의 코드블럭과 같이 사용할 수 있다.

  1. insert into를 앞에 작성한 후 삽입을 하고자 하는 테이블 이름을 작성해 준다.
  2. 칼럼 명부분 작성 방법
    • 사용하지 않을 경우 : 선택한 테이블의 모든 칼럼에 데이터를 순서대로 넣겠다는 뜻이다.
    • 사용할 경우 : 1개에서 테이블의 컬럼 개수만큼 테이블 칼럼 이름을 사용할 수 있으며 NotNull값이 있으면 무조건 명시를 해줘야 한다.
  3. 칼럼명 작성 후 values를 붙여주고 소괄호를 열고 데이터를 입력해준다.
    • 데이터 입력 시에 앞에 작성한 칼럼과 순서에 맞게 데이터를 입력해줘야 원하는 대로 입력이 가능하다
    • 칼럼명과 데이터의 개수가 일치해야 한다
    • 널값을 주려면 NULL, '' 널을 직접 입력해주거나 화이트 스페이스를 넣어주면 된다.
    • 앞에 칼럼명을 작성하지 않은 경우에는 컬럼 순서에 맞게 데이터를 입력해주면 된다.
    • date타입은 insert시에 ''안에 20210614의 형식으로 넣어주면 auto casting 된다.

'DataBase > Oracle' 카테고리의 다른 글

6. Selec  (0) 2021.06.14
5. DDL(Data Definition Language) - Drop  (0) 2021.06.14
3. DDL(Data Definition Language) - Create  (0) 2021.06.10
2. SQL  (0) 2021.06.08
1. Key  (0) 2021.06.08

-종류

  • if
    • 가장 기본이 되는 조건문
    • if(/*조건식*/) {
      	//실행 내용
      }
    • if바로 뒤에 붙는 소괄호에 조건식이 들어가며, 조건식이 true일 경우 중괄호 안의 내용이 실행된다.
    • 조건식이 false일 경우 중괄호 안의 내용이 실행되지 않고 넘어간다
    • 조건식은 비교 연산자를 사용해서 true OR false를 반환하도록 한다
  • else
    • if문의 조건이 false일 경우 다른 내용을 실행해 주기 위해 사용한다
    • if(/*조건식*/) {
      	//실행내용
      } else {
      	//if의 조건이 false일때 실행되는 부분
      }
    • else문에는 조건이 붙지 않으며 if에서 조건식 부분이 false라면 무조건 else를 실행하고 다음으로 넘어간다.
    • else의 경우 항상 제일 마지막에 입력해줘야 한다
  • else if
    • if외의 조건을 여러 개 설정해주고 싶은 경우 사용할 수 있으며 if와 else사이에 사용된다
    • if(/*조건식*/) {
      	//실행 내용
      } else if(/*조건 2*/) {
      	//if문의 조건식이 false일 경우 실행 내용
      } else if(/*조건 3*/) {
      	//바로 위의 else if문의 조건식이 false일 경우 실행 내용
      } else {
      	//위의 모든 if, else if문의 조건식이 false일 경우 실행 내용
      }
    • else if에는 if와 다른 조건을 달아줄 수 있으며, 1개 이상 원하는 만큼 추가할 수 있다.
  • 예제 : 점수(score)를 입력받아 등급을 출력해주는 조건문을 작성해라
    • int score = 83;
      
      if(score >= 90) {
      	System.out.println("A");
      } else if (score >= 80) {
      	System.out.println("B");
      } else if (score >= 70) {
      	System.out.println("C");
      } else if (score >= 60) {
      	System.out.println("D");
      } else {
      	System.out.println("F");
      }
    • 조건문을 작성할때는 항상 좁은 조건에서 넓은 조건으로 작성을 해줘야 원하는 결괏값을 가질 수 있다.
    • 만약 위의 코드에서 처음 if문에 조건을 score >= 60 이렇게 입력을 한다면 첫번째 조건이 먼저 읽히므로 60 이상의 모든 score가 A가 된다. 90 이상만 A를 출력하려고 했지만 60 이상이 모두 A가 된다.
    • 이를 방지하기 위해 좁은 조건에서 넓은 조건으로 잡아주는 연습을 하자.
  • switch
    • if문과 같은 조건문입니다. 사용법이 조금 다른데 밑에 코드를 보며 확인해보겠습니다.
    • switch (/*변수*/) {
      	case /*값1*/:
          	//실행문
              break;
          case /*값2*/:
          	//실행문
              break;
          default:
          	//실행문
      }
    • switch옆의 소괄호에 들어가는 값이 변수입니다. if문의 조건식에서 변수 부분과 같다고 생각하면 되는데 위의 if문 예제에서 score >= 90 이 부분의 score가 switch의 소괄호 부분에 들어가 주면 됩니다.
    • case는 else if와 같이 생각하면 되는데 case옆에 들어오는 값이 변수와 같을 때 실행문을 실행해 줍니다.
    • default는 모든 case의 조건이 만족하지 않을때 실행이 되며 if문의 else와 같다고 생각하면 됩니다.
    • switch case문에서는 ==(양쪽의 값이 같은지) 만 나타낼 수 있으며 변수와 값이 동일하면 true로 실행문을 실행하고 false면 다음 실행문으로 넘어갑니다.
    • 각 case의 끝에는 break를 입력해줘야 합니다. 입력하지 않을시에 default까지 연속적으로 확인하며 체크를 해주기 때문에 case의 조건이 맞고 안의 실행문을 실행했으면 switch문을 나가는 break를 사용해줘야 합니다.
    • default는 마지막에 break를 사용하지 않아도 된다. default에 온 순간 안의 실행문을 수행하고  switch문을 빠져나가기 때문이다. (if문의 else와 같음)
    • 예제 : 현재 몇층에 있는지 확인하는 switch문을 만드시오
      • int nowFloor = 3;
        
        switch(nowFloor) {
        	case 1:
            	System.out.println("1층 입니다.");
                break;
            case 2:
            	System.out.println("2층 입니다.");
                break;
            case 3:
            	System.out.println("3층 입니다.");
                break;
            case 4:
            	System.out.println("4층 입니다.");
                break;
            case 5:
            	System.out.println("5층 입니다.");
                break;
            default:
            	System.out.println("어디서 온거에요????");
        }
      • 이렇게 작성을 해준다면 nowFloor는 3이기 때문에 첫 번째와 두 번째 case를 지나쳐 세 번째 case에서 프린트를 해주고 switch문을 빠져나간다.
      • 만약 break를 해주지 않았다면 다음 case의 모든 프린트문(4~default)을 출력해주고  switch 문을 빠져나간다.

'Back-end > JAVA' 카테고리의 다른 글

9. 반복문(for, while, do-while)  (0) 2021.06.15
-컴파일러 에러  (0) 2021.06.15
7. Operator  (0) 2021.06.11
6. 입출력  (0) 2021.06.09
5. 타입 변환  (0) 2021.06.09

-개요

프로그램에서 데이터를 처리하여 결과를 산출하는 것을 연산이라고 한다

 

-연산자 종류

  • 산술 : +, -, *, /, %
    • % : 나누기에서 나머지를 구하는 연산자
      • ex ) 10을 4로 나누게 된다면 몫은 2고 나머지는 2다. 여기서 나머지를 구할 때 %를 사용하는데 10 % 4를 하면 2가 출력되게 된다.
    • / : 나누기에서 몫을 구하는 연산자
    • * : 곱하기 연산자 (Asterisk라고 부름)
  • 부호 : +, -
  • 문자열 : +
    • 문자열끼리 더해줄때 사용한다.
  • 대입 : =, +=, -=, *=, /=, %=
    • 우선순위가 제일 낮다.
    • Equle Sign 앞에 +, -등의 부호를 붙일 경우
      • ex ) a += 1 이 코드는 a = a + 1과 같은 코드이다.
  • 증감(단항 연산자) : ++, -- 
    • 1씩 증가하거나 감소한다 
    • 단항 연산에서 사용되며 앞에 사용할 경우 연산이 먼저 진행되며 뒤에 사용할 경우 세미콜론 이후에 연산
      • ex ) ++a; 할 경우 1이 증가한 후 코드가 종료된다.
      • ex ) a++; 할경우 코드가 종료된 후 1이 증가한다. 즉 이 줄에서는 a의 상태가 그대로 있고 다음 줄에서부터 ++가 적용된다.
  • 비교 : ==,!=, <, >, <=, =>, instanceof
    • 결과 값은 Boolean형으로 출력
      • == : 각 항이 같은지를 확인 후 같으면 True, 다르면 False
      • != : 각 항이 다른지를 확인 후 다르면 True, 같으면 False
      • <, >, <=, => : 각 항의 대, 소를 비교해서 맞으면 True, 다르면 False
        • ex ) 10 > 5 => True / 10 < 5 => False
        • <, >는 초과, 미만
        • <=, =>는 이상, 이하
  • 논리 : !, &, |, &&, ||, ^
    • && and / || or / xor ^ / not!
    • 부정 연산 :!  boolean type의 값에만 사용 가능
    • and : 피연산자 모두가 True 일 경우 True
    • or : 피연산자 중 하나만 True면 True
    • xor : 피연산자 하나가 true 하나가 false면 true지만 모두 True  또는 False라면 False
  • 이항(항이 두 개) : x + y
  • 삼항 : (조건식)? (조건식이 True면 이곳 출력) : (조건식이 false면 이곳 출력)

'Back-end > JAVA' 카테고리의 다른 글

-컴파일러 에러  (0) 2021.06.15
8. 조건문(if, else, else if, switch)  (0) 2021.06.14
6. 입출력  (0) 2021.06.09
5. 타입 변환  (0) 2021.06.09
4. 변수의 타입  (0) 2021.06.09

+ Recent posts