☕JAVA 71

[JAVA][기초] String 클래스

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com 💡문자열 클래스 - String 클래스 자바의 문자열을 관리하기 위한 대표적인 클래스 String 클래스는 문자열 제어를 위한 다수의 메소드를 정의 문자열은 character 배열로 메모리에서 관리된다. 하나의 character가 메모리 내에서 어떤 구조를 ..

[JAVA][기초] 배열 Array

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com 배열 Array 배열은 동일한 타입의 값들을 저장할 수 있는 자료구조 배열에 담기는 각각의 값들은 인덱스 번호를 통해 접근 가능 배열의 선언 문법 : 배열 요소의 타입 [] 배열명; int [] a; 또는 int a[]; {1,2,3,6,8,10}; 다차원 ..

[JAVA] Heap 모니터링 & Heap Dump 분석하기

Heap Memory 모니터링 & Heap Dump Spring으로 개발한 웹어플리케이션을 운영하다보면, 어떠한 이유로 사용하지 않는 메모리가 쌓이면서 메모리 누수현상이발생할 수 있다. 이를 방치하면 GC(Garbage Collection)가 과도하게 일어나면서 어플리케이션의 성능이 저해되거나, 심한 경우에는 OOM(Out Of Memory)이 발생하여 결국 어플리케이션이 죽게 된다. 따라서 주기적으로 Heap 영역을 모니터링하고, 의심되는 상황이 있다면 Heap Dump를 떠서 어떤 객체가 원인이 분석해야 한다. 즉 장애가 났을 때의 Heap 상태를 기록으로 남겨 그 당시에 어떤 Java 객체들이 많이 만들어졌는지 분석해보아야 한다. Heap Dump 파일 추출하는 방법 Java Application ..

[JAVA] JVM의 구조 와 메모리 구조

JVM 구조 자바의 주요 장점 중 하나인 OS 플랫폼의 독립성이 있다. WORN (wtite once, run anywhere) 이를 가능하게 하는 것이 바로 JVM이다. 자바소스코드를 컴파일러가 컴파일하면 컴퓨터가 직접 해석 및 실행할 수 있는 바이트 코드가 되고 이를 JVM이 실행하여 Class Loader -> Bytecode verifier -> interpreter를 거쳐 자바 소스가 어느 환경에서든지 잘 구동 될 수 있도록 해준다. JVM 구성요소 ClassLoader 컴파일러가 만든 클래스 파일을 JVM 내의 메모리영역 (Runtime Data Area)에 올리는 역할 이 과정은 런타임시 실행되지만, 필요하다면 계속해서 동작함. Garbage Collector 메모리 관리 기능을 자동으로 수..

[JAVA][기초] 추상 클래스 abstract class 와 인터페이스 interface

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com 추상 클래스 abstract class 추상 클래스는 하나 이상의 추상 메소드 abstract method 를 갖는 클래스 상속 관계에서 부모 클래스의 역할을 갖기 위한 클래스이며 추상 메소드와 일반 메소드를 가질 수 있음. 추상 메소드는 메소드의 몸체가 없..

[JAVA][기초] Object 클래스와 메소드

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com Object 클래스 모든 자바 클래스가 상속하는 최상위 클래스 아무런 메소드를 가지지 않는 클래스를 생성한다면 자동으로 Object클래스를 상속 받음. 모두 11개의 메소드를 정의하고 있으며 이 메소드들은 자바의 모든 클래스가 갖는 기능임. 자바의 모든 클래..

[JAVA][기초] up-casting / down- casting 과 다형성 polymorphism

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com Strongly typed Language vs Loosely typed language Strongly typed Language 데이터의 타입을 미리 정의하고 사용하고, 한번 정의된 데이터 타입은 프로그램 종료까지 변하지 않는 것 프로그램 개발에 있어 명..

[JAVA][기초] 상속 과 오버라이딩 Overriding

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com 상속 연관 있는 클래스들에 대해 공통적인 구성요소를 정의하고, 이를 대표하는 클래스를 정의하는 것 상속 관계는 "is a" 관계를 의미하며 extends 키워드를 이용해 상속 관계를 정의 상속 관계에서 상속을 받는 클래스 - 자식클래스 sub class, d..

[JAVA][기초] 패키지 Package & 패키지 구성

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com 패키지란? 자바는 패키지를 통해 관련 있는 클래스들을 그룹화. 패키지를 사용하면 외부로부터 제공 받은 여러 클래스들과 현재 구현하는 클래스들을 구분하여 관리 가능 패키지를 사용하는 가장 중요한 이유는 클래스 이름에 대한 유일성을 보장할 수 있기 때문. 클래스..

[JAVA][기초] Static 과 final

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com Static와 final 클래스, 필드, 메소드에 모두 적용할 수 있는 키워드이며 각 위치에 따라 다른 의미를 가짐. static 정적 키워드로 정적 필드, 정적 메소드를 선언할 때 사용 final 필드에 정의할 경우 초기 한번의 초기화만 가능하여 이후에는 ..

[JAVA][기초] Java 메모리 모델

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com 역대급으로 어렵당...ㅎ Java의 JVM이 관리하는 메모리 공간 스택 Stack 지역변수 Local Variable, 매개변수 Parameter 가 할당되는 영역 초기화가 진행❌ 초기화가 되었을 때 해당 메소드가 끝나면 할당 해제 int n; // 자동초기..

[JAVA][기초] 생성자 Constructor

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com 생성자 클래스의 구성요소 중 하나로, 객체를 인스턴스화 할때 가장 먼저 호출되는 특수한 메소드 생성자의 역할은 객체가 갖는 필드의 초기화이며 다라서 모든 클래스는 하나 이상의 생성자를 가짐. 생성자는 여러개 정의 가능 (생성자 오버로딩) 생성자의 이름은 해당..

[JAVA][기초] 메소드 Method , 오버로딩 Overloading

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com 메소드 개요 메소드 클래스를 구성하는 구성요소에서 해당 클래스의 행위를 의미하는 것 메소드를 이해하기 위해서는 먼저 함수 function 가 무엇인지 이해해야 함. 함수 입력, 기능, 출력으로 구성되며 함수의 기능에 따라 입력과 출력은 없을 수 있음. 함수와..

[JAVA][기초] 연산자

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com 연산자의 이해 연산자 : 피연산자를 대상으로 특정 기능을 수행하고 결과를 반환하는 특수한 기호 연산자의 구분 피연산자의 수에 따라 단항, 이항, 삼항으로 구분 기능의 종류에 따라 산술, 관계, 비트, 논리, 대입, 기타 연산자로 구분 대입연산자 대입 연산자는..

[JAVA][기초] 클래스의 이해3 - 필드의 정의 (2) Data Type 의 이해

[기초] 시리즈는 본강의를 수강후 정리한 글들 입니다. Java for Beginner - YouTube Java for Beginner [교재 link] https://github.com/namoosori/java-for-beginner/tree/master/doc Java for Beginner 강의에서 다루는 내용은 다음과 같습니다. - Java 개요 : Java 언어가 어떤 언어이고 Java 언어를 이용해 프... www.youtube.com Data ? 데이터들을 잘 관리해서 원하는 로직을 통해서 특정한 정보를 만들어내는 것이 우리가 프로그램을 만들어 내야하는 중요한 이유 중 하나 프로그램을 작성할 때에는 데이터들을 어떻게 관리할 건지도 잘 알고 있어야함. 프로그램 언어 마다 데이터를 다루는 방..