[Java] chapter1

Ryong·2023년 11월 21일
0

Java

목록 보기
2/12
post-thumbnail

변수

데이터를 저장하고 참조하기 위한 메모리 공간.
변수는 데이터의 값을 변경하거나 읽는 데 사용.

데이터 타입(Data Type) : Java 변수는 데이터 타입을 가지며, 이는 변수가 어떤 종류의 데이터를 저장하는지를 나타냅니다.

기본형 타입

타입할당되는 메모리 크기기본값데이터의 표현 범위
논리형boolean1 bytefalsetrue, false
정수형byte1 byte0-128 ~ 127
정수형short2 byte0-32,768 ~ 32,767
정수형int(기본)4 byte0-2,147,483,648 ~ 2,147,483,647
정수형long8 byte0-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
실수형float4 byte0.0F(3.4 X 10-38) ~ (3.4 X 1038) 의 근사값
실수형double(기본)8 byte0.0(1.7 X 10-308) ~ (1.7 X 10308) 의 근사값
문자형char2 byte (유니코드)'\u0000'0 ~ 65,535

참조형 타입

타입예시기본값할당되는 메모리 크기
배열(Array)int[] arr = new int[5];null4 byte (객체의 주소값)
열거public enum Day { SUNDAY, MONDAY, }null4 byte (객체의 주소값)
클래스String str = "test"; Student sujin = new Student();null4 byte (객체의 주소값)
인터페이스List list = new ArrayList<>();null4 byte (객체의 주소값)

진수

2진수(Binary)

  • 2진수는 0,1로 숫자를 표현
  • 10진수 숫자 10을 2진수로 표현하여 출력하기 위해선 2진수 숫자 앞에 0B를 붙여줘야 한다.
    int bNum = 0B1010; -- 10출력
    8진수(Octal)
  • 8진수는 0부터 7까지 숫자를 표현
  • 10진수 숫자 10을 8진수로 표현하여 출력하기 위해선 8진수 숫자 앞에 0을 붙여줘야 한다.
     int oNum = 012;  -- 10출력
    16진수(Hexadecimal)
  • 16진수는 0 부터 9 이후에 알파벳 A~F가 존재
  • 10진수 숫자 10을 16진수로 표현하여 출력하기 위해선 16진수 숫자 앞에 0x 또는 0X를 붙여줘야 한다.
    int hNum = 0xA; -- 10출력

print(출력)

System.out.println() : 텍스트를 출력하고 개행(줄바꿈) 문자를 추가
System.out.print() : 텍스트를 출력하지만 개행(줄바꿈) 문자를 추가하지 않고 출력
System.out.printf() : 형식화된 문자열을 출력

String name = "John";
int age = 25;
System.out.printf("이름: %s, 나이: %d%n", name, age);

System.out.format() : 형식화된 문자열을 출력

String name = "John";
int age = 25;
System.out.format("이름: %s, 나이: %d%n", name, age);

출력서식

%[-][0][n][.m]지시자
  • 출력 서식의 지시자를 제외한 나머지는 생략 가능하다. 예) %d 식으로 사용 가능.
  • n : 출력할 전체 자리수 지정(오른쪽 정렬). 예) %3d, 전체자리수가 3인 정수
  • 0 : 전체 자리수가 지정된 경우 왼쪽의 남는 자리에 0을 출력. 예) %03d
  • - : 전체 자리수가 지정된 경우 왼쪽 정렬하고 빈칸에 공백 출력.
  • .m : 소수점 아래 자리수 지정. 잘리는 소수점 자리수는 반올림 시켜서 표시. 예)3.2f

지시자

지시자설명
%bboolean 형식으로 출력
%d정수 형식으로 출력
%o8진수 정수의 형식으로 출력
%x 또는 %X16진수 정수의 형식으로 출력
%f소수점 형식으로 출력
%c문자형식으로 출력
%s문자열 형식으로 출력
%n줄바꿈 기능
%e 또는 %E지수 표현식의 형식으로 출력
[예시]
int age = 10;        
String addr = "경기도";
System.out.printf("나이는 %d살, %s에 살고 있습니다.%n",age,addr); 
-- 나이는 10살, 경기도에 살고 있습니다.
System.out.printf("소수점 자리수 미지정 : %f%n",f); // 1.234500
System.out.printf("소수점 자리수 지정 : %.3f%n",f); // 1.235

연산자

  1. 최우선 연산자(Primary)
    - 괄호 (): 연산자 우선순위를 결정하거나, 표현식의 일부를 그룹화

    int result = (5 + 3) * 2; // 16
    
  2. 단항 연산자(Unary)

    +, -, ++, --, ~ : 피연산자를 하나만 갖는 연산자
    
    y = x++ 
    int x= 10,y;
    y=~x; // 비트부정 -(원래값 +1) ==> 결과  // -11
    
  3. 산술 연산자(Arithmetic)

    +, -, *, /, % : 기본적인 사칙 연산을 수행
    
    int a = 7, b = 3;
    int sum = a + b;     //  10
    int product = a * b; //  21
    int nam = a % b; // 1
  4. 쉬프트 연산자(Shift)

    << , >> , >>>: 이진수를 좌우로 비트 이동
    
    int x = 8, result, result1;
          result = x <<2; //left shift
          // 8비트자리에 8을 표시하면 00001000 인데 2비트를 왼쪽으로 밀어서 00100000 32로 바뀜
          result1 = x >> 3; // right shift
          // 8비트자리에 8을 표시하면 00001000 인데 3비트를 오른쪽으로 밀어서 00000001 1로 바뀜
  5. 관계 연산자(Relational)

    ==, < , >, >=, <= , != : 두 피연산자 간의 관계를 평가 >
    0, 0.0, null 를 제외한 모든 값은 '참'
    int x = 5, y = 10;
    boolean isEqual = (x == y); // 결과: false
    boolean isNotEqual = (x != y); // 결과: true
  6. 논리 연산자(Logical)

    &&, ||, !: 논리 AND, OR, NOT 연산을 수행
    
    int x=4,y=7; //논리연산자 : &(and), |(or), ^(xor) 2진 논리 ==> 결과 : 값
    System.out.println(x&y);  // 4는 0100 이고  7은 0111 이기에 and 연산자하면 0100이기에 4출력
    System.out.println(x|y); //  4는 0100 이고  7은 0111 이기에 or 연산자하면 0111이기에 7출력
    System.out.println(x^y); //  4는 0100 이고  7은 0111 이기에 xor 연산자하면 0011이기에 3출력
    
    boolean co1 = true, co2 = false; //논리연산자 : &&(and), ||(or), ! (not) 10진 논리 ==> 결과 : 참or거짓
    boolean resultAND = co1 && co2; // 결과: false
    boolean resultOR = co1 || co2;  // 결과: true
    boolean resultNOT = !co1;  // 결과: false    
    
  7. 삼항 연산자(Ternary)

    (조건) ? 참 : 거짓; : 조건 연산자로, 조건에 따라 다른 값을 반환
    
    int x = 20, y = 10;
    String msg = null; //msg = ""
    msg = (x != y) ? "not same" : "same";
    System.out.println(msg);  // not same 
    
    int a = 10, b = 20, c=30, result;
    result = (a > b)? a: (b>c) ? b: c;
    System.out.println(result); // 30
    
  8. 대입 연산자(Assignment)

    =, +=, -=, *=, /=, >>=, <<=, %=....
    
    x = x*y;  // x+=y 로 치환가능
    x = x*y; // x*=y
    x = x+1;  //  x +=1; ,   x ++; 셋 다 같은말.
    
  9. 콤마(순차) 연산자

    콤마 연산자는 여러 문장을 순차적으로 실행할 때 사용
    
    int a = 5, b = 10, c = 15; // 콤마로 변수를 선언 및 초기화
    int sum = a + b, diff = a - b, product = a * b; // 콤마로 여러 문장을 한 줄에 작성
    
profile
새로운 시작. 그리고 도약

0개의 댓글

Powered by GraphCDN, the GraphQL CDN