◇ 개발 언어(Java)
- Java 탄생 배경
공통실행환경, 클래스 객제
- Java를 왜 배워야 하는가?
- 공통실행환경이 있어 여러 기기에서 실행 가능하다.
- 세상과 닮아있는 객체지향 언어로 이해하기쉽고 유지보수가 쉽다.
- 안정성이 높아 프로그래밍 오류를 방지하고 보안상 안전하다.
- 대규모 앱 개발이 가능하다.
- 다양한 개발도구와 라이브러리를 사용할 수 있다.
- JVM(JRE)란?
- Java Virtual Machine의 약자로 "자바 가상 머신"이라는 뜻
- Java프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는것을 의미
- 어느장비에든 JVM을 깔아주면 Java가 놀 수 있는 놀이터가 된다고 생각하면됨
- 바이트 코드 : 내가 작성한 코드가 운영체제가 읽을 수 있는 코드로 Java 컴파일러가 변환한 코드
- 인터프리터 : 운영체제가 읽은 바이트 코드를 기계가 실행할 수 있는 기계어로 변역
- JIT 컴파일러 : 인터프리터의 효율을 높여주는 서포터 해석기
- 메모리 영역 : 운영체제로 부터 JVM이 할당받은 메모리 영역
- 클래스 로더 : JVM으로 class(바이트 코드)를 불러와서 메모리에 저장함
- 가비지 컬렉터 : 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기
- JRE : 자바 실행 환경(Java Runtime Environment)
JDK가 javac명령을 통해 .java파일을 .class파일로 변환
- JDK란?
- 자바 개발 키트(Java Development Kit)
- JRE(JVM)기능 포함
- .java파일들을 .class파일들로 변환해 주는 Java Compiler(javac)기능이 있다.
- 코드를 디버깅하는 jdb 기능이 있다.
◇ main 메서드에 대한 이해
- Java 프로그램(앱)의 시작점
public class Main { public static void main(String[] args) { } }
□ class 부
- public : 클래스 경로 외부에서 실행시킬 수 있다고 표시해주는 '접근 제어자'
- class : 객체를 만드는 클래스라고 선언
- Main : 클래스 명, 파일명과 일치 시켜야 컴파일러가 변환 시 파일 확장명.class와 일치됨
□ 메서드 부
- static : 프로그램이 실행이 될 때 무조건 실행된다(추후 추가학습 예정)
- void : 반환 타입
- main : 메서드명
- (Strings[] args) : 매개변수(Strings[] 타입)
◇ 변수
https://djhelloworld.tistory.com/23
- 래퍼 클래스(Wrapper Class)변수
기본 타입래퍼 클래스byteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacterbooleanBoolean
☆ 래퍼 클래스 사용 이유 : 클래스는 객체지향 언어의 핵심 기능인데// 박싱 // Integer 래퍼 클래스 num 에 21 의 값을 저장 int number = 21; Integer num = new Integet(number); // 언박싱 int n = num.intValue(); // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줍니다.
클래스로 변수를 관리하면 객체지향의 많은 기능을 사용 할 수 있기 때문이다. - 문자(char)
- 문자 뒤에 \0(널문자)가 없다(1byte 사용)
- 문자열은 문장의 끝에 문장의 끝을 확인하기위한 \0(널문자)가 들어간다.
- 기본형 변수 : 원본 값이 Stack(정적으로 할당된 메모리) 영역에 있다.
- 참조형 변수 : 원본 값이 Heap(동적으로 할다당된 메모리) 영역에 있다.
◇ 형변환
자동 형 변환의 원칙은 표현범위가 좁은 데이터 타입에서 넓은 데이터 타입으로의 변환만 허용된다는 것이다.
화살표의 역순으로는 암시적형변환 불가
□ 명시적 형변환
자동 형 변환이 적용되지 않는 경우에는 수동으로 형 변환을 해야 한다.
이를 명시적(Explicit Conversion)이라고 한다.
위 코드에서
100.0은 double type
100.0F는 float type인데
(float)100.0 을 작성하게되면 명시적 형변환을 통해 float로 변환시킨다.
아래 int의 경우에도 (int)100.0F를 작성하게되면 명시적으로 int로 변환되게되며, 소수점 아래자리는 버려진다.
위와같이 상수 앞에 (type)을 작성하여 명시적으로 형변환을 진행한다.
'Java & Spring > Java' 카테고리의 다른 글
String, StringBuffer, StringBuilder의 차이점 (0) | 2024.07.23 |
---|---|
Scanner클래스 next()메서드 개행문자 처리 (0) | 2024.07.22 |
Map 기본 문법 및 사용법 (0) | 2024.07.22 |
배열 부분 복사 'Arrays.copyOfRange()' (0) | 2024.07.22 |
문자열 값 비교 'str.compareTo()' (0) | 2024.07.19 |