| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 |
- jenkins
- Spring API
- Docker
- static
- 예외
- html
- 백엔드 로드맵
- 엔티티 매니저
- 인스턴스
- button
- 카카오인증토큰받기
- 어떤 개발자?
- 제로베이스
- feignClient
- ci/cd
- spring
- 카카오인가코드받기
- 엔티티 생명주기
- 백엔드스쿨
- Java
- 카카오사용자정보가져오기
- form
- tag
- Interface
- MIND 2023 #후기
- 상속
- GitHub_Actions
- oAuth2
- input
- 백엔드공부
- Today
- Total
목록2022/02 (7)
HiDevelop
Clone 메소드 protected object clone() throws CloneNotSuppertedException 해당 메소드는 Object의 클래스에 정의되어 있는 메소드로, 호출된 인스턴스의 복사본이 생성되고, 복사본의 참조 값(주소값)을 반환한다. 다음의 코드를 보자 class Cat implements Cloneable{ String name; int age; public Cat(String name, int age) { this.age = age; this.name = name; } public void show() { System.out.printf("[%s, %d]",name, age); System.out.println(""); } public Object clone() throw..
JVM은 OS가 할당해 주는 메모리 공간을 기반으로 자기자신과 자바응용프로그램의 실행을 돕습니다. JVM은 메모리 공간을 효율적으로 사용하기 위해 데이터 특성에 따라 분류해서 저장합니다. JVM은 메소드, 스택, 힙 영역으로 메모리를 나눕니다. 메소드 : 메소드의 바이트코드, static 변수 스택 : 지역변수, 매개변수 힙 : 인스턴스 * 자바 바이트 코드 : 소스파일을 컴파일 할 때 생성되는, JVM에의해 실행이 가능한 코드 메소드 영역 메소드 영역에 저장되는 데이터는 클래스를 처음 메모리 공간에 올릴 때 초기화 되는 대상을 저장하기 위한 공간입니다. 주로 메소드의 바이트 코드와 static 변수가 저장됩니다. 그럼 static 메소드는?, 다른 바이트 코드들은 저장되지 않는 걸까요? 프로그램의 대부..
예외 : 프로그램의 논리에 맞지 않는 상황 예외처리의 방식 (try~catch) - if문을 통해 예외를 처리할 수 있지만, if문은 예외 처리만을 위해 사용되지 않기 때문에, 코드의 가독성이 떨어질 수 있다. 따라서 예외처리문인 try~catch문을 통해 예외를 처리하게 되면 어느 부분이 예외가 발생하는지 예외처리를 어떻게 하는지에 대해 쉽게 파악할 수 있다. try~catch문 구조는 대략 다음과 같다. try { if(choice INIT_SELECT.EXIT) { throw new MenuChoiceException(choice); //예외 발생구간!!! } switch(choice) { case INIT_SELECT.INPUT: phone..
Local 클래스 메소드 내에서만 정의가 가능한 클래스 정으된 메소드 내에서만 인스턴스 생성과 참조변수 선언이 가능 Local, Anonymous 클래스 공부해도, 당분간은 쓸 일이 없어 까먹을 것 같다. 기억나지 않을 때마다 들어와서 찾아보자! Local 클래스를 메소드의 반한형으로 사용하고 싶다면? 인터페이스를 활용하면 됩니다. 인터페이스를 선언하고 이를 메소드의 반환형으로 만듭니다. Local 클래스가 해당 인터페이스를 구현하고 return new Local클래스명() 을 통해 반환하면 Local 클래스의 인스턴스를 메소드의 반환값으로 사용할 수 있습니다. Local 클래스가 접근 가능한 변수는 무엇이 일까요? Local 클래스는 메소드 내에 존재하기 때문에 매개변수와 지역변수에 접근이 가능합니다...
class OuterClass{ private String myName; private int num; OuterClass(String name){ myName = name; num = 0; } public void whoAreYou() { num++; System.out.println(myName + "OUterclass" + num ); } static class NestedClass{ NestedClass(){ System.out.println("Hi"); } } class InnerClass{ InnerClass(){ whoAreYou(); } } } public class InnerClass { public static void main(String[] args) { // TODO Auto-ge..
특성 하나의 클래스가 여러 개의 인터페이스를 구현할 수 있다. 타 언어의 다중상속과 같은 형식으로 사용할 수 있다. interface LCD{} interface TV extends LED {...} interface Computer{...} /* * 하나의 클래스가 여러 개의 인터페이스를 구현할 수 있다. */ class IPTV implements TV, Computer ,LCD{...} 하나의 클래스 당 한 개 클래스만 상속해야하는 것과는 다르게, 인터페이스는 하나의 클래스가 여러개의 인터페이스를 구현할 수 있다. Java는 다중상속을 지원하지 않기 때문에 이러한 특성을 타 언어의 다중상속과 같은 형식으로도 사용할 수 있다. Java가 다중상속을 지원하지 않는 이유 Son은 간접적으로 GrandFa..
abstract class 완전하지 않은 클래스를 의미 인스턴스 생성이 불가능한 클래스 왜 필요할까? 코드를 작성하다 보면 상속의 관계를 형성하기 위해서만 존재하는 상위 클래스가 존재 인스턴스화 시키기 위해서 정의한 클래스가 아닌 클래스 존재 위 클래스를 개발자가 실수로 인스턴화 시켰다면, 코드 상에 오류 발생 가능성 증가 abstract 클래스를 사용함으로써 코드의 안정성 상승 사용법 abstract class BookStorage{ public abstract void addBookInfo(String name, int booknum); //몸체는 정의 x public abstract void searchBook(int booknum);// 매개변수 정의 가능 } 주의점 : 한 개이상의 메소드를 ab..