자바의 객체 지향 개념에서 중요한 것 중 하나는 다형성이다.다형성은 이름대로 여러가지 형태를 가질 수 있는 성질을 말해요; 코드로는 부모 참조 변수에 자식 객체를 생성하는 것.참조값은 부모이며, 실제 저장된 객체는 자식 이라는 뜻.다형성이 부모 참조 변수에 실제 자식의
패키지는 연관된 클래스와 인터페이스들을 모아 놓은 것을 말합니다. 패키지는 윈도우의 폴더와 같은 개념. 즉, 연관된 파일들을 하나의 이름으로 묶어서 정리할 수 있게 합니다. 클래스의 실제 이름은 패키지명까지 붙인 이름이다. ex : String 클래스는 java.lan
자바에는 모두 4개의 접근제어가 있다.public, protected, default, private 입니다.privat 접근제어는 가장 업격한 제어로 자신의 클래스 내에서만 접근가능 하며접근하려면 get set같은걸 이용해야한다public 은 가장 엄격하지 않으며,
어떤 클래스가 자식 클래스만을 위해 존재하는 경우 추상 클래스로 정의하여 사용할수 있습니다.일반 클래스처럼 멤버변수, 생성자, 일반 메소드 모두 가질 수 있다.추상 클래스는 객체를 만들 수 없는 클래스이다.추상 클래스의 메소드는 일반 메소드일 수도 있고 추상 메소드일
인터페이스는 추상클래스의 일종이며, 추상 클래스보다 더 추상화되어 있다.추상 클래스는 일반클래스와 똑같이 인스턴스 변수, 클래스 변수, 생섲아, 메소드를 가질 수 있다. 현재 이책은 자바 버전 7까지에서는 인터페이스는 상수와 추상 메소드만을 가질수 있었다. 자바 버번
java.lang : 일반적으로 많이 사용하는 클래스들이 여기에 포함. Object, Math, String, StringBuffer, StringBuilder, System, Thread, wrapper 클래스들(Boolean, Byte, Character, D
코딩을 하다보면 여러 오류를 본다. 가장 기본적으로는 문법사용을 잘 못해서 이며 컴파일 에러라고 한다하지만 문법적으로 잘못된 부분이 없는데 코드 수행에 오류가 발생하는 경우는"예외" 가 발생했다고 한다.자바 프로그램을 작성하고 실행시키는 과정에서 크게 두 종류의 에러
코딩을 하다 보면 자신만의 예외 상황을 만들고 처리해야 하는 경우가 있는데, 예외를 만들 떄는 throw 구문을 사용합니다.MyException 클래스는 Exception 클래스를 상속받고 있는데, 이렇게 하면 MyException 객체는 예외 객체가 되며, 이 객체를
자바 입출력은 크게 표준 입출력과 파일 입출력으로 나눌수 있으며, 표준 입출력은 키보드로부터 입력을 받고 모니터로 출력하는 것을 말한다. 파일 입출력은 파일로부터 데이터를 입력받아서 다시 파일로 출력하는것을 말한다, 물론 키보드로 입력받고 파일로 출력할 수도 있고, 파
.png)
제네릭스 는 자바언어의 매우 크게 영향을 끼친 문법이다. 제네릭스가 자바에 추가 되면서 자바 api변화가 있었으며 융통성 있는 코드를 작성할수 있게 되었다. 제네릭스가 무엇이고 왜 중요한지 실제 코딩에서 어떻게 적용할 수 있는지 알아보고 제네릭스가 가장 많이 적용되
자바 언어에는 동시에 여러 일을 처리하도록 하는 기능(비동기적)이 있다. 스레드 개념이 그것인데, main 코드 안에 스레드를 여러개 만들어서 동시에 여러 일을 처리하게 할수 있다. 스레드 역시 객체로 만들어서 이용해야 하는데 이때 Thread 클래스 또는 Runnab
람다 : 자바 8이상에서 추가된 기능으로, 객체를 생성하지 않고 메소드를 수행하도록한다. 기본적으로 자바는 객체를 만든 후에 메소드를 호출해서 사용하는데, 람다는 그렇지 못해 객체 지향 개념에서 벗어난다고 이야기하는 사람들이 많다. 실제로 람다 표현식이 객체지향에서 맞
자바에서는 소스 코드에 코드 외에 부가적인 정보를 넣을수 있는 기능이 있다. 이떄 넣는 정보를 어노테이션이라고 하며, 어노테이션은 코드에는 영향을 주지 않는다. 마치 주석과 같고 어노테이션은 메타데이터 라고도 부른다. 어노테이션은 코드 개발에 있어서 중요한 정보를 주는
거의 나만 알아볼수있는글이지만 우선 메모ec2로 기본 http 배포를 한다애플리케이션 로드 밸런스를 만든다인증서를가지고 리스너를 짠다80 번포트는 443 을 바라보게하고443 8080 포트를 바라보게한다헬스체크는 스프링이 8080만 지원하기 때문에 http 8080으로
거의 나만 알아볼수있는글이지만 우선 메모ec2로 기본 http 배포를 한다애플리케이션 로드 밸런스를 만든다인증서를가지고 리스너를 짠다80 번포트는 443 을 바라보게하고443 8080 포트를 바라보게한다헬스체크는 스프링이 8080만 지원하기 때문에 http 8080으로
유투브 메타코딩 스프링작동원리 정리필터 가 메모리에 업로드된다.권한,인증,인코딩 에 대한 여러가지 필터들이 있는데 우선적으로 필터들이 걸러내게 된다디스페처 가 메모리에 업로드사용자들의 요청이 들어오는걸 디스페처가 확인후 컨트롤러에 요청(주소에맞는 분배)디스패처를 통해
메모리 사용 영역JVM은 운영체제에서 할당받은 메모리영역 을 다음과 같이 세부 영역으로 구분해서 사용합니다.메소드 영역은 JVM이 시작할때 생성되고 모든 스레드가 공유하는 영역이다. 메소드 영역에는 코드에서 사용되는 클래스 들을 클래스 로더로 읽어 클래스별로 정적 필드
public static void main(String\[] args){...}명령프롬프트에서 위 코드를 java명령어로 실행하면 JVM 은 길이가 0인 String 배열을 먼저 생성하고 main()메소드를 호출할 때 매개값으로 전달한다.main() 메소든느 Strin
배열같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스 를 부여해 놓은 자료구조인덱스배열 항목에 붙인 번호 0부터 시작배열 선언변수 선언과 비슷하나, 대괄호가 추가되어 타입\[] 변수;형태로 선언. int\[] scores는 int배열을 선언 scores
혼자공부하는자바 및 구글 참조우리가 로봇을 조립한다고 했을때 로봇에 들어가는 부품들을 전부 연결해서 로봇이라는 걸 완성한다.객체지향 프로그래밍이란 로봇에들어가는 부품들을 전부 객체라고 생각했을때 이 객체들을 전부 모아서 조립해서 완성된 프로그램을 만드는것. 이것이 객체
자바소스 파일을 만들어야되고 첫번째 이름은 대문자 나머지는 소문자가 관례\-형식 1\-형식2상수가 여러단어일 경우 단어\_단어 로 밑줄로 연결한다.즉 힙영역에 주소값을 가지게되는것Week today = Week.SUNDAY; \-> today 는 스택영역에 생성되지만
클래스 선언 사용하고자 하는 객체를 구상했다면 그 객체의 이름을 짓고 이것을 클래스 이름으로 지정 사람 객체의 클래스는 Person ,자동차 객체의 클래스는 Car라는 이름으로 정할수 있다. 클래스 식별 규칙 하나 이상의 문자로 이루어져야 한다. -> Car,S
클래스에는 객체가 가져야 할 구성 멤버가 선언된다. 구성 멤버에는 필드, 생성자, 메소드 가 있다. 이 구성 멤버들은 생략되거나 복수의 개수로 작성될 수 있다.필드속성, 멤버변수 등 으로도 불림, 필드는 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳, 선언
필드는 객체의 고유 데이터, 부품객체, 상태 정보를 저장하는 곳필드는 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳이다. 자동차 객체를 예로 들어보면, 제장회사, 모델, 색깔, 최고 속도는 고유 데이터에 해당하고, 현재속도, 엔진
생성자는 new연산자로 호출되는 중괄호 블록이다. 객체 생성시 초기화를 담당하며, 모든 클래스에 반드시 하나 이상 존재한다. 그렇기 때문에 클래스 내부에 선언을 생략하면 기본 생성자가 자동으로 추가된다.생성자는 new연산자로 클래스로부터 객체를 생성할 때 호출되어 객체
외부에서 제공되는 다양한 데이터들을 이용해서 객체를 초기화하려면 생성자도 다양화될 필요가 잇다. Car 객체를 생성할 때 외부에서 제공되는 데이터가 없다면 기본 생성자로 Car 객체를 생성해야하고, 외부에서 외부에서 model 데이터나 제공되거나 color 데이터가 제
클래스 내에 같은 이름의 메소드를 여러개 선언하는 것을 메소드 오버로딩 이라고 한다.오버로딩의 뜻은 많이 싣는 것을 의미하며, 하나의 메소드 이름으로 여러 기능을 담다는다 하여 붙여진 이름이다.메소드 오버로딩의 조건은 매개 변수의 타입, 개수, 순서중 하나가 달라야 한
클래스에 선언된 필드와 메소드가 모두 객체 내부에 포함되는 것은 아니다. 일부는 포함되겠지만, 포함이 되지 않고 클래스에 그대로 남아 있는 것도 있습니다.클래스는 객체의 설계도이다. 클래스 멤버(필드,메소드)는 당연히 객체에도 포함되어 있어야한다. 하지만 이것이 과연
출처 혼자공부하는 자바가끔 전체 프로그램에서 단 하나의 객체만 만들도록 보장해야 하는 경우가 있다. 단 하나만 생성된다고 해서 이 객체를 이라고 한다.싱글톤을 만들려면 클래스 외부에서 new연산자로 생성자를 호출할 수 없도록 막아야한다. 생성자를 호출한 만큼 객체가 생
final 필드 파이널 필드는 "최종적" 이라는 뜻을 가지고 있다. 그럼 최종적인 필드란 뜻인데, 무슨말인가? final 필드의 초기값을 줄 수 있는 방법은 딱 두가지 있다. 필드 선언시에 주는방법, 생성자에서 주는방법 단순값이라면 필드 선언시에 주는 것이 제
인스턴스 멤버 : 인스턴스 멤버란 객체(인스턴스)를 생성한후 사용할 수 있는 필드와 메소드를 말하는데, 이들을 각각 인스턴스 필드, 인스턴스 메소드라고 부른다.this : 객체 내부에서도 인스턴스 멤버에 접근하기 위해 this를 사용할수 있다. 예를들어 this.mod
출처 : 혼자공부하는자바부모 클래스의 모든 메소드가 자식 클래스에 맞게 설계되어 있다면 가장 이상적인 상속이지만, 어떤 메소드는 자식 클래스가 사용하기에 적합하지 않을 수도 있다. 이경우 상속된 일부 메소드는 자식 클래스에서 다시 수정해서 사용해야 한다. 자바는 이런
출처 혼자공부하는자바final 키워드는 클래스, 필드, 메소드를 선언할 때 사용할 수 있는데, 해당 선언이 최종 상태이고 결코 수정될 수 없음을 뜻한다. final 키워드는 클래스, 필드, 메소드 선언에 사용될 경우 해석이 조금 씩 달라진다. 1.필드를 선언할 때 fi
출처 : 혼자공부하는 자바접근 제한자는 public, protected, default , private 네가지가 있으며 상속과 관련이 있는 protected 접근 제한자를 알아보자protected는 public 과 default 접근 제한의 중간쯤에 해당합니다. 같은