Java 14

[Backend][Basic] 자바 메모리 구조와 가비지 컬렉션 완벽 정리

자바(Java)는 메모리 관리를 자동으로 처리하는 언어입니다. 이 말은, 개발자가 직접 메모리를 할당하거나 해제할 필요 없이 JVM(Java Virtual Machine)이 알아서 관리해준다는 뜻이죠. 그렇다면 메모리가 어떻게 나뉘고, 어디에 어떤 값이 저장되는지, 또 언제 어떻게 메모리가 정리되는지를 아는 것은 자바 개발자에게 꼭 필요한 지식입니다.오늘은 자바의 핵심 메모리 구조인 스택(Stack), 힙(Heap), 그리고 **가비지 컬렉션(Garbage Collection)**에 대해 초보자도 쉽게 이해할 수 있도록 설명해드리겠습니다.1. 자바 메모리 구조: 스택과 힙스택(Stack) 메모리란?스택은 메서드 호출 시 사용되는 메모리 공간입니다. 함수 내부에서 선언된 지역 변수(local variabl..

Basic 2025.03.24

165. [AI][Android Studio] 로직개발하기 : 고양이 수명계산하기

1. 새 프로젝트 생성Name: catPackage name: com.mybea1109.catLanguage: JavaMinimum SDK: API 24 (Nougat, Android 7.0)빌드 언어: Kotlin DSL (권장값)새로운 Empty Activity로 프로젝트를 시작합니다.2. 앱 UI 구성하기 (activity_main.xml)🔸 핵심 UI 구성요소요소 설명ImageView귀여운 고양이 사진을 표시합니다.EditText고양이의 출생 연도를 입력받습니다.Button생일 계산하기 기능을 실행합니다.TextView계산된 고양이의 나이를 출력합니다.  1)ImageView 설정하기  ImageView 추가 방법Palette의 ImageView를 화면으로 드래그합니다.이미지 리소스 설정오른쪽 ..

Frontend/실습 2025.03.04

62. [ JAVA ] Spring Boot를 이용한 API 통신 : 유튜브 API 세팅

유튜브 API 세팅 1.  새 프로젝트 생성 Youtube API키를 발급받기 위해서는 먼저 Google Cloud에서 새 프로젝트를 생성해야합니다.  Google Cloud 플랫폼 바로가기 Google 클라우드 플랫폼로그인 Google 클라우드 플랫폼으로 이동accounts.google.com 프로젝트 이름 설정 후 만들기를 클릭하여 프로젝트를 생성한다.2 . API 키 발급해당 프로젝트선택 > 사용자 인증 정보 클릭 > + 사용자 인증 정보 만들기 클릭 > API 키 만들기    위와 같이 API 키가 생성된것을 확인할 수 있습니다.  3 . Youtube DATA API V3 활성화해당 프로젝트선택 > 사용 설정된 API 및 서비스 클릭 > API 및 서비스 사용 설정 클릭  해당 프로젝트선택 > ..

Install/API Install 2025.01.12

36. [ JAVA ] 배열 : HashMap

1. HashMap  HashMap은 Java에서 데이터를 키-값(key-value) 쌍으로 저장하는 데이터 구조입니다. java.util.HashMap 클래스는 Map 인터페이스를 구현하며, 내부적으로 **해시 테이블(Hash Table)**을 사용하여 데이터를 저장합니다. 키는 고유해야 하며, 값은 중복될 수 있습니다.        // 학생 이름과 점수를 저장하려 한다.         // 이순신,95         // 홍길동,80         // 김나나,70         //즉, 이름과 점수의 쌍(pair)으로 저장하고 싶다.         // 이 쌍(pair)를 Key와 Value라고 합니다.     // 변수 이름 하나로, 여러 데이터를 저장할 수 있습니다.   HashMap sco..

JAVA/이론 2024.12.17

34. [ JAVA ] 문자열 생성하는 방법

Java에서 문자열을 찾고 변경하는 데는 여러 메서드가 있습니다  1)   문자열 리터럴 사용     String str1 = "Hello";  2) new 키워드로 String 객체 생성    String str2   = new String ( "Hello" );  3) 문자 배열로 생성    char[] charArray = {'H', 'e', 'l', 'l', 'o'};     String str3 = new String(charArray);   4) StringBuffer() 나StringBuilder() 로 생성    String str4 = new StringBuilder().append("Hello").append(", World!").toString();     String str5 = n..

JAVA/이론 2024.12.17

33. [ JAVA ] 상속 : interface

인터페이스는 클래스 키워드를 사용하지 않습니다. 인터페이스도 필드를 선언할 수 있지만 변수가 아닌 상수(final)로서만 정의할 수 있습니다. 상수(final) : 한번 결정되면 값을 바꾸지 못하고, static으로 되어있는 변수 static이 있으면, 메모리의 date 영역에 저장된다.(heap에 저장하지 않는다.) 예 )    String name;       int age; 위와 같은 변수의 경우 오류 발생합니다. public static final 과 public abstract 제어자는 생략이 가능합니다.인터페이스에 정의된 모든 멤버에 적용되는 사항이기 때문에 편의상 생략 가능하게 지원하는 것입니다. 생략된 제어자는 컴파일 시에 컴파일러가 자동으로 추가해 줍니다.  예) package entet..

JAVA/이론 2024.12.16

31. [ JAVA ] 상속 : 추상클래스(abstract class)

1. 추상 클래스(abstract class)는 Java에서 다음과 같은 특징을 가진 클래스입니다. 1) abstract 키워드를 사용하여 선언합니다. 2) 하나 이상의 추상 메소드를 포함할 수 있습니다. 추상 메소드는 선언만 있고 구현은 없는 메소드입니다.  3) 인스턴스화할 수 없습니다. 즉, new 키워드로 객체를 직접 생성할 수 없습니다. 4) 일반 메소드, 생성자, 필드(멤버 변수)도 포함할 수 있습니다. 5) 상속을 통해 사용되며, 상속 키워드로 extends를 사용합니다. 6) 추상 클래스를 상속받는 자식 클래스는 모든 추상 메소드를 반드시 구현(오버라이딩) 해야 합니다.7) 다중 상속은 불가능합니다. 2. 추상 클래스의 주요 용도1) 관련된 클래스들 간의 공통 인터페이스나 동작을 정의합니다..

JAVA/이론 2024.12.16

29. [ JAVA ] 상속 : extends

상속(inheritance)은 객체 지향 프로그래밍의 핵심 개념 중 하나로, 기존 클래스의 특성을 새로운 클래스가 물려받아 사용하는 메커니즘입니다.상속은 코드의 재사용성을 높이고 프로그램의 구조를 체계화하는 데 중요한 역할을 합니다. 1. 상속의 개념 기존 클래스(부모 클래스)의 필드와 메소드를 새로운 클래스(자식 클래스)가 물려받아 사용합니다. 부모 클래스는 상위 클래스, 기초 클래스로도 불립니다. 자식 클래스는 하위 클래스, 파생 클래스로도 불립니다. 2. 상속의 장점 코드 재사용성 향상: 기존 클래스의 기능을 재활용할 수 있습니다. 중복 코드 감소: 공통 특성을 부모 클래스에 작성하여 자식 클래스에서 중복을 피할 수 있습니다. 계층적 구조 형성: 클래스 간의 관계를 체계적으로 구성할 수 있습니다1...

JAVA/이론 2024.12.16

25. [ JAVA ] Gette/ Setter 의미와 사용 이유

Getter와 Setter는 객체 지향 프로그래밍에서 중요한 역할을 하는 메서드입니다.  1. Getter와 Setter의 의미 1) Getter: 객체의 private 속성 값을 외부로 반환하는 메서드입니다. 주로 get이라는 접두사를 사용하여 정의됩니다. 2) Setter: 객체의 private 속성 값을 설정하거나 수정하는 메서드입니다. 일반적으로 set이라는 접두사를 사용하여 정의됩니다.   2. 사용 이유 1) 정보 은닉과 캡슐화객체의 내부 구현을 숨기고 인터페이스를 통해 접근하도록 함객체의 무결성을 보장하고 데이터를 안전하게 관리2) 데이터 검증 및 제어Setter를 통해 속성에 할당되는 값의 유효성을 검사 가능잘못된 값 할당을 방지하여 객체의 일관성 유지3) 유연성 및 확장성내부 구현 변경 ..

JAVA/이론 2024.12.12

21. [ JAVA ] 함수 (fanction)

1. 자바 함수(fanction) 의 기본 구성 1) 함수(fanction) 정의함수(fanction) 를 정의할 때는 접근 제어자, 반환 타입, 함수 이름, 매개변수 목록을 포함합니다. 예를 들어, 두 수를 더하는 함수를 정의하려면 다음과 같이 작성할 수 있습니다. add( int num1, int num2 ) { int total = num1 + num2; return total; // 결과를 반환 ( 리턴 타입 ) } 여기서 int는 반환값의 타입을 의미하며, add는 함수의 이름입니다. num1과 num 2는 매개변수입니다. (1) 접근 제어자( 접근범위 ) - public :..

JAVA/이론 2024.12.10
home top bottom
}