본문 바로가기
Web programming/JAVA

간략하게 자바 개념 정리 1

by Skilly 2020. 4. 2.

 

추후 업데이트 하겠지만, 잘못된 점이나 조언이 있으시다면 말씀 부탁드립니다. 감사합니다.

 

 

01. 자료형 Type

1. 기본 자료형

    [ int / float / long / double / boolean / char / string ]

    int a; -> 변수 a는 int 자료형 변수로서 정수값을 담을 수 있다

2. 사용자 정의 자료형

    클래스 Car를 만들었다면, Car 자료형 변수를 만들 수 있다

    benz라는 변수는 Car 자료형 변수로, banz에는 Car에 해당하는 값만 담을 수 있다
    class Car { }
    Car benz;

 

02. 데이터 타입의 메모리 크기

1. 기본형 변수

  stack에 저장되며, 데이터(변수값)를 저장 (연산 가능)

  • 정수형 : byte(8bit), short(2byte/16bit), int(4byte/32bit), long(8byte/64bit)
  • 실수형 : float(4byte/32bit), double(8byte/64bit)
  • 논리형 : boolean(8bit)
  • 문자형 : char(2byte/16bit)

2. 참조형 변수

  heap에 저장되며, 데이터가 저장된 주소(메모리의 위치)를 저장 (연산 불가)

  • 문자열 String(char형 배열)

     

03. 기본형 데이터 타입의 저장 가능 범위 구글 검색

 

 

04. 변수 variable (변하는 값을 의미)

다음의 a, b를 말함. 하나의 값을 저장할 수 있는 메모리의 공간

    String a;   
    int b = 1;

 

1. 변수명 

  • 자바 키워드와 같은 명으로 사용 불가하다
  • 숫자로 시작 불가
  • 특수 문자 사용 불가 (단, _(underscore), $ 사용 가능)  

2. 변수선언

   String a;   
   int b

3. 변수에 값 대입

   a = "Java"; 
   b = 1; 

4. 변수를 선언하면서 동시에 값을 대입 

   String a = "Java";    >> 해석 : String 자료형 변수 a에 "Java"라는 값을 대입한다 
   int b = 1; 

 

 

05. 상수 constant 의 데이터 타입

다음의 a, b를변수에 저장되는 상수에도 데이터 타입이 있다 
상수는 변하지 않는 값을 의미한다 

1. 실수의 표현 
   float는 대입되는 상수 뒤에 F 표기, double은 생략 
   float a = 2.5; (error)  →  double a = 2.5; / float a = 2.5F;  
   F는 이 기호 앞의 숫자가 float 데이터 타입이라는 것을 명시적으로 표현하는 방법이다 

2. 정수의 표현 
   int a = 2147483648; (error : Out of range) → long a = 2147483648L;  
   int의 최대 범위인 2147483647보다 크기 때문에 변수는 long타입이며,  
   대입대는 상수 역시 타입에 맞게 L을 표기한다 

 

06. 형 변환 type conversion (casting) 

타입을 다른 타입으로 바꾸는 것으로, 기본 타입 간에 자유롭게 변환을 수행할 수 있다  

다른 타입끼리 연산을 하고자 한다면 형 변환하여 같게 만든 후 실행한다 

메모리에 할당 받은 크기가 작은 타입에서 큰 타입으로는 형 변환은 생략할 수 있지만, 
반대로 큰 타입에서 작은 타입으로 형 변환시에는 데이터 손실이 발생하며 오류가 난다 

1. 자동 형 (묵시적 타입) 변환  
   크기가 작은 타입에서 큰 타입으로 변환할 때 자동 형변환 된다
    
   데이터 손실이 최소화되는 방향으로 이루어진다 
   byte형 → short형 → int형 → long형 → float형 → double형 
               char형 ↗    

   int a = 1; 
   byte b = (byte) a; 


2. 강제 형 (명시적 타입) 변환 
   사용자가 강제적으로 형 변환을 시키는 것으로 데이터 손실이 발생할 수 있다 
   - 변환 방법 : (변환할타입) 변환할데이터 
    
   int a = 1, b = 4; 
   double result1 = a / b; 
   double result2 = (double) a / b; 

 

 

07. 연산자 operator 

1. 산술 연산자 arithmetic operator 

   +  덧셈    
     뺄셈    
   *   곱셈    
   /   나눗셈    
   %  나눗셈 후, 그 나머지 값을 반환 

   int num1 = 8, num2 = 4; 
   System.out.println("/ 연산자 사용 결과 : " + (num1 / num2));   // 2 
   System.out.println"% 연산자 사용 결과 : " + (num1 % num2));   // 0 


2. 연산자 우선순위 operator precedence 
   연산자가 여러가지 있을 경우, 먼저 처리할 연산자를 결정한다 
   
   i = 2 + 8 * 2;  
   위 연산자들을 우선순위 순으로 배열하면, *, +, = 순이므로 결과 값은 8이다 
   i = (2 + 8) * 2; 
   괄호()를 사용하여 순서를 지정하면, 결과 값은 5이다 
    
3. 대입 연산자 assignment operator   
   = 오른쪽의 피연산자를 왼쪽의 피연산자에 대입한다 

   대입 연산자 = 는 산술, 비트 연산자와 함께 사용한다 

   int x = 1; 
   x += 5;

  오른쪽의 피연산자 5를 왼쪽의 피연산자 x와 더한 후, 그 결과 값 6을 대입한다 
   x += 5는 x = x + 5와 같다. x는 1에서 6이 됐다 
    
4. 증감 연산자 increment and decrement operators 
   피연산자를 1씩 증가 또는 감소 시킬 때 사용한다 

   ++x   1을 우선 증가 시킨 후에 해당 연산 실행 
   x++   해당 연산 실행 후에 1을 증가 시킴 
   --x     1을 우선 감소 시킨 후에 해당 연산 실행 
   x--    해당 연산 실행 후에 1을 감소 시킴 

5. 논리 연산자 logical operator 
   참(true)과 거짓(false)을 결정한다  
    
   && (AND 연산)  식이 모두 참이면 참을 반환 
   ||    (OR 연산)    식 중에서 하나라도 참이면 참을 반환 
      (NOT 연산)  식의 결과가 참이면 거짓, 거짓이면 참을 반환      

   A(true), B(false)일 때,  
   A && B  (false) 
   A || B     (true) 
   !A         (false)

   
6. 비트 연산자 
http://tcpschool.com/c/c_operator_bitwise

 

 

 

 

반응형