오늘의 학습 키워드

  • Java 기본 코드해석
  • Java 변수와 상수
  • 변수 타입
  • 변수 타입간 변환(형변환)

Java 기본 코드해석

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		System.out.println("Hello world!");
	}
}

자바 프로젝트(앱)는, 제일 먼저 클래스의 main 메소드를 실행 시킨다!

  • public : (접근)제어자

  • static : 이 프로그램이 시작될 때 무조건 실행되는 녀석임을 표현

  • output
    void : 메서드의 출력값의 데이터 타입
    void : "아무것도 없다." -> 출력은 없다.

  • input
    String[] args : 매개변수 자리
    args -> 변수명은 아무거나 써도 상관없다!

!!!제일 중요!!!

  • 객체 : 특징(속성,변수), 행동(메소드)

  • .(온점) -> 하위요소를 표현할때 사용
    ex) System.out.println

  • // -> description(주석) 협업할때 중요함

  • import : im(in) + port(항구)
    -> main.java 코드 안쪽으로 외부에서 정보를 가져와서 쓰는 것이다.

Java 변수와 상수

값의 타입 : 저장공간(그릇)의 종류
값의 이름 : 저장공간(그릇)의 이름

선언과 할당 순으로 진행한다.

  • 변수 : 변하는 저장공간
int number = 10; //초기화 후 할당
number = 11; //선언과 함께 할당 후 이후에 덮어쓰기 
  • 상수 : 항상 유지되는 지속되는 값 변하지 않는 공간
final int number = 10; //final 상수로 선언 
number = 11; // 에러 발생

변수타입

  • 기본형 : 숫자형, 문자형, Boolean(참거짓등)

    -정수형 변수 : byte, short, int, long
    -실수형 변수 : float, double
    표현범위가 매우 넓다 -> 자동 형 변환 불가
    -문자형 변수 : char
    'A','1' 문자 하나만 저장 ''로 사용해야 문자형으로 인식
    -Boolean 논리형 변수 - true 1 / false 0

  • 참조형(주소형 변수) : 실제값이 아닌 원본값의 주소값은 저장한다 (별도저장)

    -메모리 저장 영역

    • stack 영역 참조형변수 (주소값)
      정적 할당 된 메모리 영역 - 크기가 정해져 있음
    • heap 영역 - 참조형변수 (원본값)
      동적 할당 된 메모리 영역 - 알수 없을 때(길이를 모름)

    -문자열 변수 : String / "apple","텍스트"와 같은 문장을 저장합니다. ""로 사용해야 문자열로 인식
    -그 외 : Object, Array, List ... 객체, 배열, 리스트와 같은 단일 저장공간에 담을수 없는 값을 저장

  • 래퍼 클래스
    변수명은 Wrapper
    기본형 변수를 클래스로 한번 랩핑(감싸는)변수 이다
// 박싱
int number = 21;
Integer num = new Integet(number); // Integer 래퍼 클래스 num 에 21 의 값을 저장

// 언박싱
int n = num.intValue(); // 래퍼 클래스들은 inValue() 같은 언박싱 메서드들을 제공해줍니다
  • 기본형 변수 vs 참조형 변수
  1. 기본형 변수는 '소문자로 시작함', 참조형 변수는 '대문자로 시작함'
    -Wrapper class에서 기본형 변수를 감싸줄 때(boxing), int -> Integer

  2. 기본형 변수는 값 자체를 저장, 참조형 변수는 별도의 공간에 값을 저장 후 그 주소를 저장함 (= 주소형 변수)

  • 문자와 문자열 선언과 저장의 차이점

-char
문자 뒤에 \0(널문자)가 없다
1byte 만 쓰기 때문에 끝을 알 수 있음
' ' 사용 ex) 'a','1'
기본형 타입

-string
문장 끝에 \0(널문자)가 함꼐 저장 됨
몇개의 byte를 쓸지 모르기 때문에 표시함
" " 사용 ex) "Hello world!"
참조형 타입

변수 타입간 변환(형변환)

  • 형 변환 : 변수의 타입을 바꾸는 방법 숫자 일 경우
    -정수 ↔ 실수 ↔ 문자 사이에 발생함.
double doubleNumber = 10.101010;
float floatNumber = 10.1010
int intNumber;
intNumber = (int)doubleNumber; // double -> int 형변환 
System.out.println(intNumber); // 출력결과 10

intNumber = (int)floatNumber; // float -> int 형변환 
System.out.println(intNumber); // 출력결과 10
  • 자동 형변환

byte(1) -> short(2) -> int(4) -> long(8) -> float(4) -> double(8)

byte byteNumber = 10;
int intNumber = byteNumber; // byte -> int 형변환
System.out.println(intNumber); // 출력결과 10

char charAlphabet = 'A';
intNumber = charAlphabet; // char -> int 형변환
System.out.println(intNumber); // 출력결과 A의 유니코드 : 65

intNumber = 100;
long longNumber = intNumber; // int -> number 형변환
System.out.println(longNumber); // 출력결과 100

intNumber = 200;
double doubleNumber = intNumber; // int -> double 형변환
System.out.println(doubleNumber); // 출력결과 200.0

-자동 형변환 : 작은 타입에 크기에서 큰 크기의 타입 저장 될때
-강제 형변환 : 큰 타입에 크기에서 작은 타입의 크기로 형변화시 값의 손실이 생김

📝오늘의 회고

Java 1주차 기초 및 코드 읽는 법을 배웠고 아직 배워야 할 것이 많이 남았다! 기본기부터 탄탄히 다지고 가야 한다.
쳐지지 말고 포기하지말고 힘내서 가보자고~~~

profile
조급해하지 말고, 흐름을 만들고, 기록하면서 쌓아가자.

0개의 댓글