4. 자바 - 데이터 / . / [ ]

2025. 3. 27. 21:071%/Java

.(점)의 의미와 프로그래밍 기초 정리

프로그래밍을 하다 보면 "."(점) 의 의미가 언어마다 다르게 사용됩니다. 오늘은 그 의미를 정리하면서, Java와 JavaScript의 차이도 함께 살펴보겠습니다! 🚀


1. .(점)의 의미

📌 C언어에서는?

  • 포인터 접근에 사용됨
     
     

📌 Java에서는?

  • 객체의 속성(변수)이나 메서드를 호출하는 데 사용됨
  •  

📌 JavaScript에서는?

  • 객체의 속성이나 메서드를 호출하는 데 사용됨

 

💡 공통점: .은 객체(혹은 구조체)의 내부 값을 접근할 때 사용됨!


2. 변수의 범위(Scope)와 {}

📌 Java에서 {} 만으로도 에러가 발생하지 않음!

public class Main {
    public static void main(String[] args) {
        {
            {
                {
                    int num = 1;
                    System.out.println(num);
                }
            }
        }
    }
}
 

 

 

.(점)의 의미를 파악해보자

C언어에서는?

C언어에서는 포인터와 관련이 있다.


 

호이스팅

C언어에서 많이 사용하는 방법으로, 변수를 먼저 선언하고 값을 초기화하는 방식이다.

public class Main {
    public static void main(String[] args) {
        int num1;
        int num2;

        num1 = 6;
        num2 = 3;
    }
}

 

브레이스 {}

📌 Java에서 {} 만으로도 에러가 발생하지 않음!

🚨 하지만 {} 범위를 벗어나 변수를 사용하면 문제가 발생한다.

이것이 바로 변수의 context 또는 scope!
✔ Java와 JavaScript의 차이점 중 하나!


 

프로그램을 실행한다면?

1️⃣ 바이트 코드 생성 → .class 파일
2️⃣ Class Loader(클래스 로더) 실행

  • 기본값은 URLClassLoader
  • Java 파일뿐만 아니라 네트워크 데이터도 로드 가능 → 분산 처리 가능!
    3️⃣ 클래스 로더가 메모리에 할당
  • 클래스가 올라가는 메모리 영역이 있음!

📌 즉, 메인이 실행되면 {}에 해당하는 영역이 잡히고, Stack에서 실행됨.
📌 스택이 쌓이면 Stack Overflow 발생⚡

 


그럼, 결론이 뭐야?

✔ 변수와 함수는 다르다고 생각하지만 함수도 변수처럼 영역이 있다!
✔ 변수 안에는 값이 아닌 '위치' 가 저장된다.

 


반환값이 필요 없을 때는 void() 사용!

✔ void는 메모리를 차지하지 않음

 


함수에 대한 고민

📌 함수 안에서 선언된 변수 = 지역 변수
📌 매개변수, 지역 변수는 반드시 값이 있어야 한다!

 


코드 관련

외부에서 접근하는 방법은 두 가지!
1️⃣ . (점)
2️⃣ [] (꺽쇠)

함수가 실행되면 메모리 영역에 새로운 공간이 생긴다!
입력해야 할 값들 또한 별도의 영역이 생긴다!

💡 JavaScript는 매개변수가 없어도 실행됨!

 


Strong Type?

✔ 내가 어떤 타입을 반환할지 명시하는 것 → 매니페스토(Manifest)

✔ return은 명령어! ByteCode에도 표시됨
✔ 즉, return이 나오면 함수 종료를 의미함.

 


API(Application Program Interface)?

✔ Java의 Math 메소드 예시를 보면, abs() 같은 기능이 API이다.

✔ JVM + API = JRE
✔ JRE + 개발 도구 = JDK

 


💡 한 줄 요약!
"변수와 함수 모두 특정 영역(scope)을 가진다. 그리고 .(점)과 [](꺽쇠)를 잘 활용하면 외부에서도 접근할 수 있다!" 🚀