[혼공자바] 1주차 공부 기록

Say·2025년 7월 6일
0
post-thumbnail

❣️잡담

약 1년만에 돌아온...
혼공 시리즈..!

1년동안 참 많은 일이 있었는데 (졸프 + 전공 폭탄 이슈.)
죽지 않고 잘 살아돌아왔다🐥

작년 이맘때쯤 네트워크를 공부했는데 이번 학기 전공시험에서 도움을 많이 얻어서 이번 혼공자바도 참여하게 되었다.

봐도봐도 어렵고 나중에 까먹는게 문법이라

포트폴리오 만들고
코테 준비하고
진행했던 프로젝트 코드 리팩토링 할 겸

문법을 호딱 복습해보자! 라는 생각에 이번 기수를 신청했다.
(혼자서는 지지리도 안해요. )

이번 주차에서는 간단하게 프로그램 설치하고 변수, 연산자에 대해 복습했다.

(필수 숙제 부분인디) 진작에 설치를 해두었다는 사실!


자바 프로그램 개발 과정

자바 프로그램 개발하기

  1. 파일 확장명: .java 텍스트 파일 생성 후 자바 언어로 코드 작성하기
  2. 자바 소스 파일 생성
  3. javac 명령어로 컴파일 -(성공)→ .class 바이트 코드 파일 생성
  • 바이트 코드 파일 → 완전한 기계어 ❌ ⇒ 바로 실행할 수 없음.
  • java 명령어 사용 → JVM이 기계어로 번역 후 실행

바이트 코드 파일과 자바 가상 기계

  • 자바 프로그램 → 바이트 코드 파일 구성(.class)
    • 운영체제에서 바로 실행할 수 없음
    • 자바 가상 기계 (JVM) 번역기 필요

프로그램 소스 분석

public class Main {

    public static void main(String[] args) {
        System.out.println("Hello world!");
    }
}
  • 선언부: public static void main(String[] args)
  • 메소드 이름: main
  • 클래스 이름: Main

변수

  • 변수: 값을 지정할 수 있는 메모리의 특정 번지에 붙이는 이름
  • 하나의 타입에 하나의 값만 저장

🤔 어떻게 메모리의 어디에 저장하고 어떤 방식으로 저장하죠?

→ JVM이 하는 일!

변수 선언

  • 어떤 타입의 데이터를 저장할 것인가?
  • 변수 이름이 무엇인가?

를 결정

  • 예약어: 이미 해당 프로그래밍 언어에서 의미를 갖고 사용되는 단어

값 저장

  • 값 저장 → 대입 연산자 사용
  • 변수 초기화: 변수에 최초로 값이 저장 → 값: 초기값

변수 사용

  • 변수는 또 다른 변수에 대입하여 값 복사 가능.

변수 사용 범위

  • 자신이 선언된 위치로부터 자신이 속한 블록 내부에서만 사용가능

정수 타입

  • 기본 타입 → 8개
    • 정수: byte, int, long, char, short
    • 실수: float. double
    • 논리값: boolean

✅ char 타입

  • 문자 리터럴: 하나의 문자를 작은 따옴표로 감싼 것 → 유니코드로 변환되어 저장
     char var1 = 'a';

✅ String 타입

  • 큰 따옴표로 감싼 문자 또는 여러 개의 문자들 → 유니코드 변환❌

실수 타입

  • float
    • 메모리 사용 크기: 4byte
  • double(실수 리터럴이 기본적으로 해석하는 타입)
    • 메모리 사용 크기: 8byte
    • float 타입보다 2배 정도 정밀도가 높음 → 좀 더 정확한 데이터 저장 가능
float var1 = 3.14; // 컴파일 에러 발생
double var2 = 3.14; // 🙆‍♀️

논리 타입

  • 참과 거짓을 의미하는 논리 리터럴
    • true, false 사용

연산자

산술 연산자의 특징

📌 피연산자들의 타입이 동일하지 않을 경우, 다음과 같은 규칙을 사용!

  • 피연산자 → byte, short, char 일 경우
    • 모두 int 타입으로 변환된 후에 연산 수행
    • ex) byte + byte → int + int
  • 피연산자 → 모두 정수 타입, long 타입 포함O
    • 모두 long 타입으로 변환된 후 연산 수행
  • 피연산자 → float, double이 있을 경우
    • 허용 범위가 큰 실수 타입으로 변환된 후 연산 수행
    • ex) int + double → double + double

비교 연산자

1) String 문자열을 비교할 때에는 대소 비교 연산자를 사용할 수 없고

2) 동등 비교 연산자는 사용할 수 있으나

같은지, 다른지를 비교하는 용도로는 사용되지 않는다.

	String str1 = "Say";
	String str2 = "Say";
	
	System.out.println(str1.equals(str2)); // true

코테 풀 때 equals를 사용해서 풀어야하는 문제가 많은데 오랜만에 접하면 까먹기 쉬워서 꼭.. 기억해두기.. (나만 많이 까먹나🤔)


profile
Say Hi!

0개의 댓글