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

  • 최근 글

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

티스토리툴바