[JAVA] 변수, 연산자, 조건문

선뀰·2023년 12월 7일
0

JAVA

목록 보기
1/25

1. 자바란?

- 자바 표준 스펙

자바 컴파일러
자바 실행 라이브러리
자바 가상 머신(JVM)

- 구현(실체화)

오라클 Open JDK, Adoptium Eclipse Temurin, Amazon Corretto(AWS에 최적화)에서 자바 표준 스펙을 갖고 각 회사들의 스타일에 맞게 구현한다. 표준 스펙에 맞게 개발되어 있기 때문에 대부분 문제 없이 동작한다.

- 컴파일과 실행

Hello.java와 같은 자바 소스 코드를 개발자가 작성한다.

- 자바 구현

자바 언어는 대소문자를 구분한다.

public class HelloJ {
    public static void main(String[] args){
        System.out.println("hello java");
    }
}

- 컴파일과 실행

  • Hello.java와 같은 자바 소스 코드를 작성한다.

  • 자바 컴파일러를 사용하여 소스 코드를 컴파일 한다.
    자바가 제공하는 javac라는 프로그램을 사용한다.
    .java -> .class 파일이 생성된다.
    자바소스 코드를 바이트코드로 변환하며 자바 가상 머신에서 빠르게 실행될 수 있도록 최적화하고 문법 오류도 검출한다.

  • 자바 프로그램 실행
    자바 가상 머신(JVM)실행되면서 프로그램이 작동

  • IDE를 통해 자바 설치를 편리하게 할 수 있다.
    일반적인 프로그램은 다른 운영체제에서 실행할 수 없다.
    하지만 java는 다른 운영체제에서 실행이 가능하다.
    운영체제의 독립성에 의해 각각 환경에 맞춰 설치가 가능하다.

2. Java 사용하기

단축키

psvm -> main메서드 단축키
sout -> println 단축키
soutv -> 가까운 변수의 값을 출력해준다.
ctrl + r : 마지막에 실행했던 코드가 실행된다.
Complete current statement : ctrl+shift+enter : 문장을 완성시켜준다. 세미콜론을 사용해서

괄호

소괄호 : ()
중괄호 : {} block범위이다.
대괄호 : []

들여쓰기가 적용되는 것을 확인할 수 있다.

주석(comment)

한 줄 주석 : //
여러 줄 주석 : /* */

패키지(package)

패키지를 만든다.
자바 파일을 구분하기 위한 폴더이다.
variable라는 패키지를 만들었다면

package variable;

소속된 패키지를 선언해야 하고, 선언의 위치가 같아야 한다. 데이터를 담을 수 있는 그릇이 필요하다.

  • 변수 : 변할 수 있는 숫자. 데이터를 담는 그릇
    int a; 변수 선언
    a = 10; 변수 초기화
    int c, d;

int b = 2; 변수 선언과 초기화 한번에
int c = 3, d = 4; 이렇게 작성 하는것도 가능하다.

메모리는 여러 시스템이 함께 사용하는 공간이다.
java는 변수가 초기화되지 않았다는 오류이다.
초기화를 하지 않으면 이상한 값이 출력될 수도 있다. 변수를 초기화 하도록한다.

변수타입, 형식, 형

  • 정수 : int a = 100;
  • 실수 : double b = 10.5;
  • 불리언(boolean) : boolean c = true;
  • 문자 하나 char d = 'A';
  • 문자열 String e = "Hello";

ctrl + D : 바로 아랫줄에 코드를 붙여넣기 한다.

  • String 클래스의 특징
    1) 객체 안의 값을 변경하면 새로운 객체를 생성한다.
    2) 리터럴을 바로 입력한 데이터는 문자열이 같을 때 하나의 객체를 공유한다.

숫자 타입

- 정수

byte b = 127; // -128 ~ 127
short s = 32767; // -32,768 ~ 32,767
int i = 2147483647; // -2,147,483,648 ~ 2,147,483,647 (약 20억)
log l = 9223372036854775807L; => 반드시 L을 써줘야 한다.
// -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (20억 이상부터)

- 실수

float f = 10.0f;
double d = 10.0;

메모리를 작게 사용하면 작은 숫자 표현, 많이 사용하면 큰 숫자를 표현할 수 있다.

변수와 메모리 공간 크기

변수 명명 규칙

  • 숫자로 시작할 수 없다.
  • 공백이 들어갈 수 없다.
  • 예약어를 변수 이름으로 사용할 수 없다.
  • 영문, 숫자, 달러기호, 밑줄만 사용 가능하다.

3. 연산자

산술 연산자 : +, -, , /, %
증감 연산자 : ++, --
비교 연산자 : ==, !=, >, <, >=, <=
논리 연산자 : &&, ||, !
대입 연산자 : =, +=, -=,
=, /=, %=
삼항 연산자 : ? :

연산자 : 연산기호
피연산자 : 연산대상

  • 문자열 더하기
    String result1 = "hello " + "world";
    System.out.println(result1);

  • 문자열과 숫자 더하기
    (숫자를 문자열로 변경된다.)
    String result3 = "a + b = " + 10;
    System.out.println(result3);
    // a + b = 10이 출력된다.

연산자 우선순위

연산자 우선순위에 의해 곱셈이 먼저 계산되고, 우선순위를 변경하려면 ()괄호를 사용하면 된다.
1) 괄호 ()
2) 단항 연산자 ++, --, !, ~, new, (type)
3) 산술 연산자 , /, %, +, -
4) Shift연산자 <<, >>, >>>
5) 비교 연산자 <, <=, >, >=, instanceof
6) 등식 연산자 ==, !=
7) 비트 연산자 &, ^, |
8) 논리 연산자 &&, ||
9) 삼항 연산자 ? :
10) 대입 연산자 =, +=, -=,
=, /=, %= 등등

증감 연산자

++, --로 표현되며, 1만큼 증가시키거나 감소시킨다.

전위, 후위 증감연산자

연산자의 위치에 따라 연산이 수행되는 시점이 달라진다
++a : 전위 연산자는 증감 연산자를 피연산자 앞에 둘 수 있다.
증감 연산이 먼저 수행된 후 나머지 연산이 수행된다.
a++ : 후위 연산자는 증감 연산자를 피연산자 뒤에 둘 수 있다.
다른 연산이 먼저 수행된 후 증감 연산이 수행된다.

비교 연산자

비교 연산자를 사용하면 참 또는 거짓이라는 결과가 나온다. boolean형을 사용한다.
= : 대입 연산자이고, 변수에 값을 대입하는 것이다.
== : 동등한지 확인하는 비교 연산자이다.
instanceof 연산자 : 객체 타입을 확인한다.
그외 : new, [] 배열인덱스, .객체 멤버 접근, ()메소드 호출
삼항연산자 : String name = (num%2==0) ? "짝수" : "홀수";

문자열 비교

문자열이 같은지 비교할 때는 ==연산자가 아니라, .equals()메서드를 사용해야 한다.
String str1 = "문자열1";
String str2 = "문자열2";

boolean result2 = str1.equals("문자열1"); // 문자열 변수, 리터럴 비교
boolean result3 = str1.equals(str2); // 문자열 변수를 비교하는 것이다.

논리 연산자

boolean형인 true, false를 비교하는데 사용한다.
System.out.println(true || true);
System.out.println(!true)
System.out.println(!a); // false

boolean result = a > 10 && a < 20; // 변수의 위치를 변경해도 결과는 같다.

대입 연산자

int num1 = 10, num2 = 20, num3 = 30;

축약 대입 연산자

+=, -=, *=, /=, %=

비트 연산자

실무에서 거의 사용할 일이 없다.
&, |, ^, ~, <<, >>, >>>

profile
공부 기록

0개의 댓글