[혼공자] 1주차_자바를 java보자

경운·2025년 7월 1일
0

혼공자

목록 보기
1/7

👋 혼공단를 신청하게 된 계기

2023년부터 Java를 배우고 있었지만, 제대로 된 커리큘럼 없이 혼자서 진행하다 보니 학습 방향을 잡기 어려웠다
또한 정보처리기사 자격증을 취득하는 과정에서 Java 부분이 약하다는 것을 알고 극복해내기 위해 혼자 공부하는 자바(혼공자) 스터디를 알게 되어 체계적으로 학습하며 기록으로 남기기 위해 신청!
IDE는 Intellij IDEA를 사용할 것이다
앞으로 6주 동안 꼼꼼히 학습하고 꾸준히 정리하여 성장해 나가는 사람으로 발전해보자!

혼공자 학습일정표


📚 1주차 미션 정리

🔖 기본 미션 (필수)

  • JDK 설치 화면 인증하기

🔖 추가 미션 (선택)

  • p.110 (02-3) 확인 문제 9번에 들어갈 코드를 2가지 이상 작성해보기

예시1)

package chap02;

public class check_09 {
    public static void main(String[] args) {
        long var1 = 2L;
        float var2 = 1.8f;
        double var3 = 2.5;
        String var4 = "3.9";

        int result = (int) ((int) (var1 + var2 + var3) + Double.parseDouble(var4));

        System.out.println(result);
    }
}

→ (var1 + var2 + var3) 으로 자동 형변환 발생(작은 타입 -> 큰 타입)으로 변환 해서 2 + 1.8 + 2.5 = 6.3(double) 그 후 (int)(6.3) 강제 형변환 진행해서 6이 나오게 되고
Double.parseDouble(var4)를 사용해서 String -> double 로 강제 형변환 해주고 6 + 3.9 = 9.9(double)의 결과가 나오게 되고 마지막으로 (int)(9.9) 로 결과값이 9가 나온다

예시2)

package chap02;

public class check_09 {
    public static void main(String[] args) {
        long var1 = 2L;
        float var2 = 1.8f;
        double var3 = 2.5;
        String var4 = "3.9";
        
        int result = (int) ((var1 + var2) + (int) var3 + Double.parseDouble(var4));

        System.out.println(result);
    }
}

📌 Chap01 내용 정리 | 자바의 시작

✅ 자바의 특성

  • 플랫폼 독립성
    → 바이트코드(.class)를 JVM이 해석하기 때문에 운영체제에 상관없이 실행 가능

  • 객체 지향 언어
    → 클래스와 객체를 중심으로 코드를 구성한다

  • 자동 메모리 관리
    → JVM이 메모리를 자동으로 관리해줘서 개발자가 직접 메모리 해제를 안해도 된다

  • 동적 로딩
    → 필요한 클래스만 로드하기 떄문에 프로그램 시작 속도가 빠르다


🧭 자바의 개발 과정

  1. 소스 파일(~.java)을 작성
  2. javac 명령어로 컴파일
  3. java 명령어로 실행
  4. 실행결과를 확인

📌 Chap02 내용 정리 | 변수와 타입

🔤 변수 이름 규칙

규칙설명
영문자, 숫자, 언더바 사용 가능 (단, 숫자로 시작 불가)'ruddns', 'ruddns_2025'
대소문자 구분 필요'ruddns' ≠ 'Ruddns' ≠ 'RUDDNS'
자바의 예약어 사용 불가❌ 'int', 'private', 'true'
의미 있는 이름 사용 추천이름을 나타날 때 'userName'

변수 사용 범위

  • 지역변수
    → 메소드 블록 내부에서만 사용되고 메소드 실행이 끝나면 자동으로 사라짐

  • 전역변수
    → 클래스 전체에서 사용 가능


기본 타입

저장되는 값에 따른 분류타입의 종류
정수 타입byte, char, short, int, long
실수 타입float, double
논리 타입true, false

허용범위 크기 순으로 나타내면
→ byte < short < int < long < float < double


자동 타입 변환, 강제 타입 변환의 차이점

  • 자동 타입 변환
    → 값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장 될 때 발생

예시)

    byte byteValue = 10;
    int intValue = byteValue;

→ int 타입이 byte 타입 보다 허용 범위가 크기 때문에 자동 타입 변환


  • 강제 타입 변환
    → 큰 허용 범위 타입을 작은 허용 범위 타입으로 강제로 나눠서 저장
    → 캐스팅 연산자 괄호() 사용
    int intValue = 10;
    byte byteValue = (byte) intValue;

→ int 타입은 byte 타입보다 허용 범위가 크기 때문에 자동 변환이 불가


📌 Chap03 내용 정리 | 연산자

연산자와 피연산자의 차이

  • 연산자
    → 연산의 종류를 결정하는 기호

  • 피연산자
    → 연산식에서 연산되는 데이터(값)


연산자의 종류

증감 연산자설명
++@, --@다른 연산 수행 에 증감 연산자 수행
@++, @--다른 연산 수행 에 증감 연산자 수행

예시)

package chap03;

public class check_02 {
    public static void main(String[] args) {
        int x = 10;
        int y = 20;

        int z = (++x) + (y--);

        System.out.println(z);
    }
}

→ x가 10으로 초기화 되어 있고 (++x) 전위 증감 연산자 이기 때문에 x + 1을 한 값 11
y가 20으로 초기화 되어 있고 (y--) 후위 감소 연산자 이기 때문에 y값 20 그대로 출력
따라서 11 + 20 = 31 나오게 된다
💡다음에 x, y를 사용할 때는 x = 11, y = 19로 사용하게 된다

0개의 댓글