본문 바로가기

Java

(15)
[Java] JVM 메모리 Java의 메모리 구조는 크게 3가지로 Method / Stack / Heap Area가 있다. Method Area프로그램 실행 시 작성했던 모든 파일(.java)이 Method 영역에 한번 저장된다.클래스 정보(.class 파일의 정보)가 저장된다.클래스의 static 변수, 메서드 정보, 상수, 인터페이스 정보 등이 여기에 해당된다.모든 객체가 공유하는 공간이다. (프로그램 전체에서 공용으로 사용됨) Stack Area메서드가 호출될 때마다 Stack 영역에 메모리가 할당된다.지역 변수, 매개변수가 저장되고, 메서드가 끝나면 해당 프레임은 사라진다.LIFO (Last In First Out) 구조 → 가장 나중에 호출된 메서드가 가장 먼저 끝난다. Heap Areanew 키워드로 생성된 객체가 저장..
[Java] 객체지향 - 캡슐화 / 상속 / 추상화 / 다형성 [[ 캡슐화 ]]캡슐화란?캡슐화는 객체의 정보를 외부에서 직접 접근하지 못하게 보호하는 개념을 뜻한다. 캡슐화를 통해 중요한 정보를 보호하고 필요한 경우에만 안전하게 접근하게 할 수 있으며, 이는 접근제어자를 통해 구현할 수 있다. 접근제어자(Access Modifier)그렇다면 접근제어자란 무엇일까? 이는 클래스, 변수, 메서드, 생성자의 접근 범위를 제한하는 키워드를 말한다.접근제어자클래스 내부패키지 내부상속한 클래스전체 공개publicOOOOprotectedOOOXdefaultOOXXprivateOXXX 데이터 접근 - 게터(Getter)와 세터(Setter)캡슐화가 잘 적용된 클래스는 내부 데이터를 private으로 보호하고 있다. 이때 데이터 조회나 변경이 필요한 경우 안전한 접근법이 필요하며..
[Java] 인터페이스 인터페이스인터페이스는 설계 표준으로 클래가 따라가야 할 최소한의 공통 규을 정하는 역할을 한다.interface Car { void drive();}class LuxuryCar implements Car { @Override void drive() { // 인터페이스 규칙 준수 System.out.println("drive"); } void charge() { // 기능을 확장 가능 System.out.println("charge"); }} 인터페이스 다중구현(multi-implementation)implements 키워드로 다수의 인터페이스를 구현할 수 있습니다. 이 처럼 한 개의 클래스가 여러 인터페이스를 구현한 경우 다중구현이라고 합니다.// "동물의 기본 기능" 인터페이스i..
[Java] 클래스 / 래퍼클래스 / staic / final [[ 클래스 ]]객체 VS 클래스객체지향 프로그래밍 언어인 Java의 핵심 개념 중 하나는 바로 클래스와 객체이다. 두 용어는 혼용해서 많이 사용되지만 정확하게는 아래와 같은 차이가 있다. 비유설명객체(object)설계도를 기반으로 만들어진 존재클래스에서 만들어진 존재클래스(class)설계도객체를 만들기 위한 정의 객체 구조객체를 만들 때에는 new라는 키워드를 사용하며, 객체를 만드는 과정을 인스턴스화라고 표현한다.클래스명 변수명 = new 클래스명(); 클래스 구조class 클래스명 { // 1. 속성 int value; // 2. 생성자 // 기본 생성자(클래스명() {})가 자동으로 들어있음 public 클래스명(int value) { this.value = value; } //..
[Java] 조건문 / 반복문 / 배열 / 메서드 [[ 조건문 ]]if문 구조if (조건수식1) { // 조건수식1이 참일 때 실행}else if (조건수식2) { // 조건수식2이 참일 때 실행}else { // 그 외에 일 때 실행} switch문 구조switch (단일값) { case 값1: // 값1일 때 실행 break; case 값2: // 값2일 때 실행 break; default: // 그 외에 일 때 실행} ※ fall-through 현상 break문을 스위치에서 사용하지 않으면 다음 case 가 실행됩니다.int number = 1;switch (number) { case 1: System.out.print(" 1 "); case 2: Syste..
[Java] 변수 / 입출력 / 연산 [[ 변수 ]]변수란?변수란 컴퓨터에 데이터를 저장하기 위한 공간을 뜻한다. 변수 문법자료형 변수명; 변수 이름자료형에 들어가기에 앞서, 변수명은 프로그램의 가독성과 유지보수에 큰 영향을 주므로 규칙을 잘 지켜주는 것이 중요하다.카멜케이스 사용 권장 (myCar, totalPrice 등)명사 형태로 작성특수문자는 ( _, $ ) 사용가능숫자로 시작할 수 없음 (X 1st Car)공백 사용 불가 (X my car)예약어 사용 불가 (X int, X class, X ture) 자료형자료형은 저장되는 데이터의 종류와 형태를 뜻한다.자료형종류범바이트boolean논리형true/false1char문자형0 ~ 65535 유니코드 값2byte정수형-128 ~ 1271short정수형-32,768 ~ 32,7672int정..
[Java] Java에 대하여 Java의 탄생인터넷 발전과 함께 다양한 기기나 운영체제들이 등장하지만, 당시 C, C++와 같은 언어는 운영체제마다 코드가 다르게 동작하는 문제를 안고 있었다. 그 결과 개발자들은 각 운영체제에 맞는 별도의 코드를 작성해야 했고, 이는 개발 시간과 비용을 증가시키는 원인이 된다. Write once, run anywhere (한 번 쓰면, 어디서든 실행된다.) 이 문제를 해결하기 위해 자바는 한 번 작성된 코드가 어떤 플랫폼에서도 실행될 수 있도록 설계된 객체지향 프로그래밍 언어이다. Java의 특징 1. 플랫폼 독립성Java의 플랫폼 독립성을 이해하기 위해서는 JDK를 알아야 한다. JDK는 Java 프로그램을 개발할 때 필요한 개발 도구 모음이며 여러 가지 구성 요소들 아래의 2개가 대표적이다...