변수
·
JAVA
변수?내가 기존에 알고있는 변수는, 변할 수 있는 수를 의미했다. 그런데 과연, 프로그래밍에서도 이 뜻은 동일할까? 변수!많은 문서들은, 컴퓨터 프로그래밍에서의 변수를 다음과 같이 설명하고 있다.변수란, 이름을 가지고 있는 메모리 공간이다. 우리는 변수의 이름을 통하여 해당 메모리 공간에 저장되어 있는 값에 접근할 수 있다. 다만, 값을 저장할 메모리 공간을 할당받기 위해서는 변수가 저장할 값의 크기를 알아야 할 것이다. int age = 23;따라서 변수의 선언과 할당은 위와 같은 방식으로 이루어진다. 4바이트의 메모리 공간에 23에 해당하는 이진수가 저장될 것이고, 해당 메모리 공간은 age라는 이름을 통해서 접근할 수 있게 될 것이다. 변수를 생성하는 것은 추상화의 한 사례이다. 23이라는 데이터에..
오버라이딩
·
JAVA
자식(서브) 클래스는 부모(슈퍼) 클래스의 메서드를 재정의 할 수 있다. 이를 오버라이딩(Overriding)이라고 한다. 이러한 오버라이딩에는 제한 조건이 붙는다. 1. 메소드 이름이 같아야 한다.2. 자식 클래스의 접근 제어자는 부모 클래스 메서드의 접근제어자의 범위와 같거나 넓어야 한다.예시) A 클래스의 exam 메소드 접근 제어자가 protected라면 이를 오버라이딩하는 B 클래스의 exam 메소드는 protected, public만 가능하다. private, defalut는 불가능하다.3. 반환타입이 같아야 한다.4. 메소드 파라미터(매개변수)의 개수, 타입, 순서가 같아야 한다. 매개변수명은 달라도 괜찮다.5. 예외(설명 추가 예정) 오버라이딩 규약 조건을 지키지 않은 경우 컴파일 오류를 ..
JVM
·
JAVA
*intellij 단축키  ctrl+Alt+F7 :  해당 class or method or variable이 전체 프로젝트의 어느 곳에서 사용되고 있는 지 보여준다. *콘솔, 쉘, 터미널 JVM컴파일러를 이용하여 .java 파일을 컴파일하면 .class 파일이 생긴다. 이렇게 되면 우리가 작성한 자바 코드(.java)는 바이트 코드, 즉 이진수로 이루어진 파일(.class)로 바뀐다.우리가 사용하는 자바는 정의 되어있는 표준 스펙을 토대로 오라클, 아마존 등의 여러 회사에서 이를 구현하여 만들어진다. Intellij, eclipse와 같은 통합개발환경(IDE)를 사용하면 컴파일, 실행과 같은 과정을 사용자가 직접 수행할 필요 없이 실행버튼만 누르면 자동으로 이루어지기 때문에 편리하다. 🤔  JVM, ..
Optional
·
JAVA
optional이란_ null이 올수 있는 값을 감싸는 Wrapper클래스이다. 옵셔널로 받는 이유는 상황에 따라서 조회를 하면 무조건 리턴되는 데이터가 있는 것이 아니기 때문이다. 리턴된 데이터가 없으면 에러를 내줘야 하는 경우도 있고, 리턴된 데이터가 없으면 임의의 데이터를 추가해주아야 하는 경우도 있다. 따라Optional이 필요한 것이다.  @Service@RequiredArgsConstructor@Transactional(readOnly = true) // no flushpublic class MemberService {private final MemberRepository memberRepository; @Transactional public Long saveMember(Member membe..
abstract class
·
JAVA
A 클래스, B클래스는 공통되는 메서드를 가지고 있다. 즉 공통적인 기능을 가지고 있다. 예를 들어, 각 클래스에 해당 클래스의 인스턴스가 생성되는 시각을 기록하는 setCreateDate() 메서드가 있다고 해보자. 프로젝트 내에 있는 모든 클래스의 인스턴스가 생성될 때의 시각을 기록하도록 하고 싶다면, 나는 모든 클래스에 해당 메서드를 작성해주어야한다. 이러한 반복은 추상 클래스로 해결할 수 있다. 추상 클래스란 무엇일까?abstract class: 일반 메서드와 추상 메서드를 가진다. 일반적인 클래스와 다르게 인스턴스를 생성할 수 없다.public abstract class BaseTimeEntity { private LocalDateTime createDate; public Ba..