[JAVA] 문법 정리 - 상속과 다형성, 추상화, 인터페이스
·
Java/Syntax
[JAVA] 문법 정리 - 상속과 다형성, 추상화, 인터페이스상속상속은 객체 지향 프로그래밍의 핵심 요소입니다.현실에서 공통점이 있는 요소를 분류하는 개념을 코드로 구현할 수 있습니다. 상속은 기존 클래스의 필드, 메서드를 재사용하여 객체의 기능을 물려주는 역할을 합니다.extends 키워드를 사용하여 선언할 수 있습니다. 공통 기능을 제공하는 것을 부모 클래스, 제공받는 것을 자식 클래스로 정의합니다.자식 클래스는 하나의 부모 클래스만 상속할 수 있습니다.// 슈퍼 클래스(부모 클래스)public class Animal { void eat(){ System.out.println("동물이 밥을 먹습니다."); } void move(){ System.out.prin..
[JAVA] 문법 정리 - static, final
·
Java/Syntax
[JAVA] 문법 정리 - static, finalstatic메서드 영역에서 필드, 메서드를 선언할 경우 static 키워드를 사용합니다.클래스에서 static 필드를 클래스 변수라고 합니다. 메서드 영역 관련한 내용은 다음 링크에 정리했습니다. [JVM] 데이터 영역[JVM] 데이터 영역 Chapter 2. The Structure of the Java Virtual MachineConditional branch: ifeq, ifne, iflt, ifle, ifgt, ifge, ifnull, ifnonnull, if_icmpeq, if_icmpne, if_icmplt, if_icmple, if_icmpgt if_icmpge, if_acmpeq, if_acmpne.docs.oracle.comJVkarin..
[JVM] Frame
·
Java/JVM
[JVM] Frame Chapter 2. The Structure of the Java Virtual MachineConditional branch: ifeq, ifne, iflt, ifle, ifgt, ifge, ifnull, ifnonnull, if_icmpeq, if_icmpne, if_icmplt, if_icmple, if_icmpgt if_icmpge, if_acmpeq, if_acmpne.docs.oracle.comFrameJAVA에서 메서드가 호출될 때마다 Frame이 생성됩니다.내부적으로 데이터의 연산결과를 저장하고, 리턴 값 처리, 예외 전파[Dispatch], 동적 연결 등을 수행합니다.메서드가 종료될 때 현재 Frame은 이전 Frame으로 리턴 값을 전달하며 [없으면 생략] 파괴됩니..
[JVM] 데이터 영역
·
Java/JVM
[JVM] 데이터 영역 Chapter 2. The Structure of the Java Virtual MachineConditional branch: ifeq, ifne, iflt, ifle, ifgt, ifge, ifnull, ifnonnull, if_icmpeq, if_icmpne, if_icmplt, if_icmple, if_icmpgt if_icmpge, if_acmpeq, if_acmpne.docs.oracle.comJVM 데이터 영역JVM은 데이터 영역을 논리적으로 다음과 같이 구분합니다.PC RegisterJVM StacksMethod AreaRuntime Constant PoolNative Method StacksPC Register자바는 멀티스레드를 지원하며 각 스레드는 고유의 PC[P..
[Typescript] Type
·
Javascript/Typescript
[Typescript] Type Documentation - Everyday TypesThe language primitives.www.typescriptlang.org 타입스크립트 타입에 대해 알아보겠습니다.Type타입스크립트는 자바스크립트의 기본 타입을 확장하여 더 많은 타입을 제공합니다.기본 타입 string, number, boolean, undefined, null, symbol, object 이외에 다음과 같은 타입을 제공합니다.anyany는 모든 타입을 할당할 수 있는 타입입니다.타입스크립트에서 타입 검사를 하지 않길 원할 때 사용합니다.따라서 기본 자바스크립트처럼 동작합니다. tsc 컴파일 시 noImplicitAny 를 사용하면 any로 간주할 때 에러를 발생시킵니다.let a : any..
[Typescript] Typescript
·
Javascript/Typescript
[Typescript] Typescript Documentation - The BasicsTypeScript를 배우는 첫 걸음: 기본 타입.www.typescriptlang.org 타입스크립트에 대해서 알아보겠습니다.Typescript?타입스크립트는 자바스크립트의 타입 검사를 수행하기 위한 언어입니다.기본 자바스크립트는 변수의 값이 어떤 타입인지 알지 못하는 문제가 있습니다.let iAmNumber = 1;iAmNumber = '사실 문자열임';// number만 사용할 수 있는 함수를 String에서 사용하여 에러 발생// TypeError: iAmNumber.toExponential is not a functioniAmNumber.toExponential(2);코드가 실행되기 전까지 해당 변수가 어떤..
[JAVA] 문법 정리 - 접근 제어자
·
Java/Syntax
[JAVA] 문법 정리 - 접근 제어자접근제어자접근 제어자[Access Modifiers] 는 클래스의 특정 필드나 메서드에 접근하는 것을 제한하는 키워드입니다. JAVA는 private, default, protected, public 4가지 제어자를 제공합니다.private > default > protected > public 순으로 엄격한 제한을 줄 수 있습니다.Privateprivate는 해당 클래스를 제외한 모든 외부 클래스의 접근을 제한합니다.package pack.user;public class User { // private 주민번호 private String residentNumber; // default 몸무게 double weight; // protecte..
[JAVA] 문법 정리 - package
·
Java/Syntax
[JAVA] 문법 정리 - packagePackagepackage는 서로 연관된 클래스를 분류하여 관리하기 위해 JAVA에서 제공하는 기능입니다.한 디렉터리 내부에서 각 클래스는 연관되어 있으며 별도의 제한 없이 접근할 수 있습니다. 선언패키지는 항상 코드 최상단에 선언되어야 하며 디렉터리 네임과 일치해야 합니다.다른 패키지의 클래스를 가져올 경우 import 키워드를 사용하여 가져 올 수 있습니다. 패키지는 계층적 구조가 아니므로 하위 디렉터리를 포함하지 않습니다. 자바 컴파일러는 편의상 현재 패키지와 java.lang 을 자동으로 불러옵니다.package user;// 외부 패키지 불러오기import product.Product;// 계층적이지 않으므로 하위 패키지를 불러올 때 import 사용//..
[JAVA] 문법 정리 - class
·
Java/Syntax
[JAVA] 문법 정리 - class객체 지향 프로그래밍변수만 사용하여 프로그램의 코드를 작성할 경우, 각 변수 간의 연관성을 이해하기 어렵다는 단점이 존재합니다.또한 반복적인 코드에 대한 대처가 불가능합니다.// 예시) 학생의 이름, 나이, 성적을 출력하는 프로그램// 변수명으로 각 변수가 무엇을 하는지 파악해야 함String student1Name = "학생1";int student1Age = 15;int student1Grade = 90;// 똑같은 속성을 가진 데이터가 올 경우 반복이 불가능 함String student2Name = "학생2";int student2Age = 16;int student2Grade = 80;System.out.println("이름 : " + student1Name +..
[Spring Boot] IntelliJ CE Spring Boot Devtools Dependency 추가하기
·
Java/Spring Boot
[Spring Boot] IntelliJ CE Spring Boot Devtools Dependency 추가하기Spring Boot Devtools는 변경사항이 발생하면 자동으로 서버를 재시작하여 개발 경험에 도움을 주는 패키지입니다.IntelliJ CE에서 해당 패키지를 설치하는 법을 알아보겠습니다.1. Dependency 추가하기build.gradle 파일을 클릭하여 dependencies에 다음을 추가합니다.developmentOnly ('org.springframework.boot:spring-boot-devtools')2. Dependency 설치하기IntelliJ 우측 코끼리 모양 버튼 클릭한 뒤 나타나는 Gradle 창에서 상단 다운로드 버튼을 클릭합니다.하단 runtimeClasspath에..
[JAVA] 문법 정리 - 제어 흐름
·
Java/Syntax
[JAVA] 문법 정리 - 제어 흐름 Control Flow Statements - Dev.javaThis section describes the decision-making statements, the looping statements, and the branching statements supported by the Java programming language.dev.javaIf-Then-Else표현식에 따라 코드의 분기를 결정하는 제어문입니다.class IfElseDemo { public static void main(String[] args) { int testscore = 76; char grade; // if 내부 표현식이 true 일 때 해당 블록..
[JAVA] 문법 정리 - 연산자
·
Java/Syntax
JAVA 문법 정리 - 변수 Using Operators in Your Programs - Dev.javaComputing things with operators.dev.java유형구분연산자설명할당 연산자=왼쪽 변수에 오른쪽 값을 할당단항 연산자+덧셈, 양수 값 표시 [ 기본 값 양수 ]-빼기, 음수 값 표시++값 1 증가--값 1 감소!논리적 보수 연산[ boolean 값 반전 ]관계, 비교 연산자==같다!=같지 않다>보다 크다>=보다 크거나 같다보다 작다보다 작거나 같다조건 연산자&&AND||OR? :if-then-else비트 연산자~비트 반전왼쪽 Shift>>오른쪽 Shift>>>부호 없는 오른쪽 Shift&비트 단위 AND^비트 단위 XOR|비트 단위 OR타입 비교 연산자instanceof객체 단..