Java(35)
-
클래스와 객체
1. 클래스와 객체 클래스클래스란 객체를 정의해 놓은 것, 객체의 설계도 또는 틀클래스는 사용자 정의 자료형 구성 멤버에는 필드, 생성자, 메서드가 있다. 객체실제로 존재하는 것, 클래스에 정의된 대로 메모리에 올라가 구체적인 값이 들어가 있는 상태클래스를 한번 잘 만들어 놓으면 객체를 생성할 때마다 고민할 필요없이 클래스로부터 객체를 생성하기만 하면 된다. 2. 객체와 인스턴스 클래스 ㅡ[인스턴스화]ㅡ> 인스턴스(객체) 클래스로부터 객체를 만드는 과정: '클래스의 인스턴스화'어떤 클래스로부터 만들어진 객체: '그 클래스의 인스턴스'객체와 인스턴스객체는 모든 인스턴스를 대표하는 포괄적인 의미인스턴스는 어떤 클래스로부터 만들어진 것인지를 강조하는 보다 구체적인 의미예: '책상은 객체다', '책상은 책..
2025.02.20 -
객체 지향 프로그래밍 (OOP)
1. 객체 지향 프로그래밍 (OOP: Object Oriented Programming)객체 지향 프로그래밍객체 지향 이론: 실제 세계는 사물(객체)로 이루어져 있으며, 발생하는 모든 사건들은 사물 간의 상호작용이다객체 지향 프로그래밍은 컴퓨터 프로그램을 '객체'들의 모임으로 파악하고자 하는 것이다. 객체 간 상호 작용: 각각의 객체는 메시지를 주고받고 데이터를 처리할 수 있다 (협력) 장점: 프로그램의 변경 및 유지 보수가 용이코드의 재사용성이 높다 (재사용성)신뢰성이 높은 프로그래밍이 가능하게 한다 (중복코드제거)코드의 관리가 용이하다 (유지보수)2. OOP의 4대 특징 캡슐화데이터를 외부에서 직접 접근하지 못하게 숨기고, 필요한 경우에만 접근할 수 있도록 하는 개념구현: private, protec..
2025.02.20 -
자바 변수가 메모리에 저장되는 방식
자바에서 변수를 선언하고 초기화할 때, 기본 자료형과 참조 자료형이 메모리에 저장되는 방식은 다르다. 이번 포스팅에서는 변수 선언과 할당이 이루어지는 과정을 메모리 관점에서 정리해본다. 1. 기본 자료형 (Primitive Type)기본 자료형기본 자료형: int, double, char, boolean 등값 자체가 메모리의 스택(Stack) 영역에 저장된다.메모리 할당 과정int a; // 변수 선언a = 10; // 값 할당int a; → 스택(Stack) 영역에 a라는 변수 공간이 생성되지만 아직 값이 없음. a = 10; → a의 메모리 공간에 10이 2진수로 저장됨. (00000000 00000000 00000000 00001010) 기본 자료형의 특징값 자체를 스택에 저장하며, 블록({})이..
2025.02.19 -
자바의 메모리 구조
자바의 메모리 구조 자바는 다양한 메모리 영역을 활용해 데이터를 관리하고,각 영역은 서로 다른 역할을 하면서 JVM의 효율적인 실행을 돕는다. 스택: 메서드 호출과 관련된 지역 변수와 메서드 정보.힙: 동적으로 생성된 객체들.메소드 영역: 클래스, 메서드, 정적 변수 등 클래스 관련 정보.PC 레지스터: 현재 스레드가 실행 중인 명령어 주소.네이티브 메모리: 네이티브 코드가 사용하는 메모리. 1. 스택 (Stack)역할: 메서드 호출 시 필요한 데이터(지역 변수, 메서드 인자 등)를 저장하는 메모리 영역.구성: 각 스레드마다 스택이 하나씩 생성되고, 각 스레드에서 실행되는 메서드의 지역 변수와 메서드 호출 정보가 저장된다. 특징지역 변수, 매개변수, 메서드 호출 정보 등은 스택 메모리에 저장되고, 메서드..
2025.02.19 -
자바 프로그램 실행 과정, JVM 동작 방식과 구조
자바 프로그램 실행 과정자바 소스 파일 (.java)사람이 이해할 수 있는 형태의 코드자바로 작성된 원시 코드자바 컴파일러 (javac.exe)자바 컴파일러는 .java 파일을 받아들여 바이트 코드인 .class 파일로 변환합니다.이때, 자바는 소스 코드를 바이트 코드로 변환하여 플랫폼에 독립적인 형태로 만듭니다.컴파일 단계에서는 소스 코드를 바이트 코드로 변환하는 작업만 이루어집니다.이때, 에러가 있으면 컴파일러가 오류 메시지를 출력합니다. (컴파일 오류)자바 바이트 코드 (.class).class 파일은 자바 바이트 코드가 저장된 파일입니다.자바 바이트 코드는 JVM(Java Virtual Machine)에서 실행될 수 있도록 변환된 코드입니다.이 바이트 코드는 운영 체제나 하드웨어에 의존하지 않기 ..
2025.02.19 -
자바 난수 발생
1. Math.random() Math.random(): 0~1 사이의 소수값 원하는 범위의 난수를 구하는 공식(int) (Math.random() * 구하려는 난수의 갯수) + 구하려는 난수의 최소값 public static void main(String[] args) { /* 0 ~ 9까지의 난수 발생 */ int random1 = (int) (Math.random() * 10); System.out.println("0 부터 9 사이의 난수 : " + random1); /* 1 ~ 10까지의 난수 발생 */ int random2 = (int) (Math.random() * 10) + 1; System.out.println("1 부터 10 사이의 난수 : " + random2); ..
2025.02.19