Java 정리 - 1 (Java 개요, 주석, 변수, 상수, 기본형, 리터럴, 형변환, 연산자와 연산식)

Minseol·2022년 7월 13일
0

Java 공부

목록 보기
2/12

Java의 특징 (기억해두어야 하는 것)

  • 플랫폼에 독립적이다. (자바는 JVM만 있으면 윈도우, 리눅스, 맥 등 어떤 플랫폼에서도 실행이 가능)
  • 객체지향 언어이다. (재활용성과 직관성이 강하다.)
  • Garbage Collector로 사용되지 않는 메모리를 자동적으로 정리해준다.

객체 지향 프로그래밍이 무엇인가?
: 프로그램의 구현을 시간의 흐름순이 아닌 객체간의 관계와 협력을 기반으로 프로그램 하는 것

Java 개발 순서

  1. 코드 작성
  2. 코드 컴파일
  3. JVM으로 실행
  • 프로그래밍: 컴퓨터가 일을 수행하도록 프로그래밍 언어로 명령어 집합(프로그램)을 만드는 일

  • 컴파일 : 프로그래밍 언어를 컴퓨터가 실행 가능한 기계어로 만드는 일

  • 컴파일러 : 기계어로 바꾸어 주는 프로그램
    ( ex. 자바 컴파일러, gcc )

컴파일러는 작성한 코드(Language Code)를 실행 가능한 파일(Machine Code)로 변환한다.

  • JDK(Java Development Kit) : 자바에서 제공되는 개발용 라이브러리. 계속 버젼이 올라가고 있음
  • JRE(Java Runtime Environment) : 자바 프로그램이 실행되는 환경. 8.0까지 무료로 제공 됨
  • JVM(Java Virtual Machine) : 자바 가상 머신으로 프로그램이 실행되는 환경인 JRE가 설치되어 있어야 함

주석의 종류

  • 구현 주석
  1. 행 단위 주석 (//)
  2. 블럭 단위 주석 (/* */)
  • 문서화 주석
    (/** */)
    문서화 주석은 클래스, 인터페이스 그리고 멤버 당 하나씩 가질 수 있고, 선언 바로 전에 작성

Java의 변수

변수는 값(Data)을 저장할 수 있는 메모리 공간
값은 변할 수 있음

Java는 강형 언어 - 모든 변수의 타입이 컴파일 시에 결정되는 언어

식별자(identifier)는 클래스, 메소드, 변수 등 다양한 대상에 대해 이름이 붙여지는 경우. 그 이름을 뜻 함

java 식별자 명명 규칙

  • 하나 이상의 글자로 이루어져야 함

  • 첫번째 글자는 문자이거나 '$', '_'이어야 함

  • 두번째 이후의 글자는 숫자, 문자, '$', '_'이어야 함

  • '$', '_' 이외의 특수문자 사용 불가능

  • 길이 제한이 없음

  • 키워드는 식별자로 사용할 수 없음

  • 상수 값을 표현하는 단어 true, false, null은 식별자로 사용할 수 없음

Java의 상수

상수(常數)란 수식에서 변하지 않는 값을 의미한다.

상수의 선언은

final 상수타입 상수명;

으로 한다.

상수는 대문자로만 구성된 명사로 정하며, 여러 단어로 구성된 이름의 경우 단어 사이에 '_'을 써서 구분한다.

기본형

기본형 타입은 가장 기본이 되는 데이터 타입으로서 정수형, 실수형, 문자형, 논리형을 의미한다.

primitive_data_type
long 타입은 뒤에 알파벳 L을 붙여야 하며, float는 알파벳 F를 붙여야 한다.

character set: 문자를 숫자로 변환한 값의 세트

encoding: 문자가 숫자로 변환되는 것
decoding: 숫자에서 다시 문자로 변환되는 것

ASKII code: 알파벳과 숫자 특수 문자등을 1바이트에 표현하는데 사용하는 문자세트

UNICODE: 전 세계 표준으로 만든 문자 세트

UTF-8: 1바이트에서 4바이트까지 다양하게 문자를 표현할 수 있음

UTF-16: 2바이트로 문자를 표현

지역 변수 자료형 없이 사용하기 (자바 10 지원)

리터럴

컴퓨터 과학 분야에서 리터럴이란, 소스 코드의 고정된 값을 대표하는 용어다.

리터럴은 일종의 값이다. true, false, 10, 11.1, a 등 이런 값 자체를 리터럴이라고 한다. 즉, 프로그램에서 사용하는 숫자, 문자, 논리값을 뜻한다.

리터럴은 상수 풀(constant pool)에 있다.

정수 리터럴은 int 로 실수 리터럴은 double 로 저장된다.

  • 정수의 범위가 넘어가는 경우는 L,l
  • float로 사용하려는 경우는 F,f 식별자를 써줘야 함

형변환

형변환이란, 변수 또는 리터럴의 타입을 다른 타입으로 변환하는 것이다.

묵시적 형변환

크기가 작은 타입을 크기가 더 큰 타입으로 바꿀 때에는 묵시적으로 형을 바꾸어 준다.

int x = 50000;
long y = x;

이를 암묵적 형변환 이라고도 한다.

명시적 형변환

크기가 더 큰 타입을 작은 타입으로 바꿀 때에는 명시적으로 변환 해주어야 한다.

long x = 50000;
//int y = x;  (이렇게 묵시적으로 수행하면 컴파일러는 오류를 발생 시킨다.) 
int y = (int) x;  (반드시 (타입) 으로 명시적으로 형을 바꾸어 주어야 한다.) 

이를 강제 형변환 이라고도 한다.

연산자와 연산식

operations_expressions

  • 부호를 결정하는 부호 연산자

  • 산술 연산을 할 수 있는 산술 연산자

  • 1씩 증가하거나 감소 시키는 증감연산자

  • 피연산자가 1개인 연산자는 단항 연산자

  • 피연산자 하나로 연산할 수 없는 연산자는 이항 연산자

int x = 3;
int y = ++x; // 먼저 더하고 대입
// x는 4, y는 4
int z = x++; // 먼저 대입하고 더함
// x는 5, z는 4

비교연산자

== , != , < , > , <= , >=
비교 연산자의 결과는 boolean이다.

대입연산자

  • 단순 대입 연산자: 오른쪽에 있는 피연산자의 값을 왼쪽 피연산자의 변수에 저장
  • 복합 대입 연산자: 정해진 연산을 수행한 후에 결과를 대입
i += 10; // i = i + 10;

연산자 우선순위

  • 최우선연산자 ( ., [], () )

  • 단항연산자 ( ++,--,!,~,+/- )
    ( 부정,bit변환>부호>증감 )
    ( ++,--는 전위인지 후위인지가 중요! )

  • 산술연산자 ( *,/,%,+,-,shift)
    시프트연산자 ( >>,<<,>>> )

  • 비교연산자 ( >,<,>=,<=,==,!= )

  • 비트연산자 ( &,|,,~ )

  • 논리연산자 ( &&, ||, ! )
    ( AND가 OR보다 우선 )

  • 삼항연산자 (조건식) ? :

  • 대입연산자 ( =,*=,/=,%=,+=,-= )

profile
귀여운 설이에양

0개의 댓글