6일차 - Java강의(변수, 형변환)

2024. 7. 22. 19:26·Java & Spring/Java

◇ 개발 언어(Java)

  1. Java 탄생 배경
    공통실행환경, 클래스 객제
  2. Java를 왜 배워야 하는가?
    • 공통실행환경이 있어 여러 기기에서 실행 가능하다.
    • 세상과 닮아있는 객체지향 언어로 이해하기쉽고 유지보수가 쉽다.
    • 안정성이 높아 프로그래밍 오류를 방지하고 보안상 안전하다.
    • 대규모 앱 개발이 가능하다.
    • 다양한 개발도구와 라이브러리를 사용할 수 있다.
  3. JVM(JRE)란?
    • Java Virtual Machine의 약자로 "자바 가상 머신"이라는 뜻
    • Java프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는것을 의미
    • 어느장비에든 JVM을 깔아주면 Java가 놀 수 있는 놀이터가 된다고 생각하면됨
    • 바이트 코드 : 내가 작성한 코드가 운영체제가 읽을 수 있는 코드로 Java 컴파일러가 변환한 코드
    • 인터프리터 : 운영체제가 읽은 바이트 코드를 기계가 실행할 수 있는 기계어로 변역
    • JIT 컴파일러 : 인터프리터의 효율을 높여주는 서포터 해석기
    • 메모리 영역 : 운영체제로 부터 JVM이 할당받은 메모리 영역
    • 클래스 로더 : JVM으로 class(바이트 코드)를 불러와서 메모리에 저장함
    • 가비지 컬렉터 : 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기
    • JRE : 자바 실행 환경(Java Runtime Environment)
      JDK가 javac명령을 통해 .java파일을 .class파일로 변환
  4. 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

 

생활코딩 - Java(데이터타입, 형변환)

1. 정수형 데이터 타입 메모리의 크기 표현 가능 범위 byte 1 byte -128 ~ 127 short 2 byte -32,768 ~ 32,767 int 4 byte -2,147,483,648~2,147,483,647 long 8 byte -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 2. 실수형 float 4byte

djhelloworld.tistory.com

  1. 래퍼 클래스(Wrapper Class)변수
    기본 타입
    래퍼 클래스
    byte
    Byte
    short
    Short
    int
    Integer
    long
    Long
    float
    Float
    double
    Double
    char
    Character
    boolean
    Boolean
     - 박싱과 언박싱
    // 박싱
    // Integer 래퍼 클래스 num 에 21 의 값을 저장
    int number = 21;
    Integer num = new Integet(number);
    
    // 언박싱
    int n = num.intValue();
    // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줍니다.
     ☆ 래퍼 클래스 사용 이유 : 클래스는 객체지향 언어의 핵심 기능인데
                                               클래스로 변수를 관리하면 객체지향의 많은 기능을 사용 할 수 있기 때문이다.

  2. 문자(char)
    - 문자 뒤에 \0(널문자)가 없다(1byte 사용)
    - 문자열은 문장의 끝에 문장의 끝을 확인하기위한 \0(널문자)가 들어간다.
  3. 기본형 변수 : 원본 값이 Stack(정적으로 할당된 메모리) 영역에 있다.
  4. 참조형 변수 : 원본 값이 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()'  (2) 2024.07.22
문자열 값 비교 'str.compareTo()'  (1) 2024.07.19
'Java & Spring/Java' 카테고리의 다른 글
  • String, StringBuffer, StringBuilder의 차이점
  • Scanner클래스 next()메서드 개행문자 처리
  • Map 기본 문법 및 사용법
  • 배열 부분 복사 'Arrays.copyOfRange()'
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 이론공부
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • DB
      • AWS
      • CI-CD
      • 웹
      • git & github
      • 구인공고분석
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    프로그래머스 java 기초 트레이닝
    java super
    java two-pointer
    개발로드맵
    java arrays.copyofrnage()
    데이터 타입
    데이터 크기
    java 메서드
    java 제어자
    자료구조
    java 에라토스테네스의 체
    java 유클리드 호제법
    java 세수의합
    java
    java enhance switch
    프로그래머스 java 기초트레이닝
    java기초
    Java this
    Java 생성자
    java 멤버
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
6일차 - Java강의(변수, 형변환)
상단으로

티스토리툴바