Java20 Java - JVM의 메모리 모델과 Object 클래스 19강까지 진행했다. 위코드 기간동안은 파이썬을 위주로 진행할 수 밖에 없어서 남은 강의들을 듣는데에 시간이 얼마나 걸릴지 모르겠다. 틈틈이 진행해야겠다. JVM(자바)의 메모리 모델 JVM의 메모리는 3가지의 영역으로 나누어 관리된다.공간을 나누는 목적은 메모리 제어의 효율성 확보가 목적 메소드 영역 메소드들의 바이트코드 Static 변수 메소드 영역에는 프로그램 실행에 필수적인 바이트 코드가 위치하는 영역이기 때문에 프로그램 실행 도중에 삭제될 일이 없기 때문에 static 변수도 이 곳에 위치한다. 이 영역은 프로그램이 완전히 종료될 때 없어진다고 볼 수 있다. 스택 영역 지역변수 매개변수 스택 영역에는 일반적인 변수들과 매개변수들이 위치하는 영역이다. 동시에 stack 자료구조의 특징인 LIFO구.. 2020. 7. 23. Java - 예외처리 (2) 최근 많이 게을러졌다. 정신 차리자. 예외 클래스의 구분 Error Class 상속 시스템 오류 수준의 상황으로 프로그램 코드상에서 처리할 수 있는 수준의 문제가 아님 VirtualMachineError, IOError Exception Class 상속 코드 오류가 아닌 실행과정에서 발생하는 예외적인 상황을 표현하기 위한 클래스들 실질적인 예외처리 코드를 반드시 명시하거나, throws 키워드를 사용해서 해당 예외를 넘길것을 알려야 함 public void testCase1() throws IOException - throws 키워드 사용 예 throws 사용시 해당 메소드를 호출한 지점으로 계속해서 넘어감 여러가지 예외상황을 throws 할 것을 한꺼번에 표기할 수 있음. public void test.. 2020. 7. 17. Java - 예외처리 (1) 이 다음에도 강의가 이렇게 길지는 모르겠는데 지금까지 중에선 제일 길어서 나눠서 정리해야겠다. 예외처리의 기본 예외란? - 사용자가 개발자의 예상과 다른 조작 또는 행동으로 인해서 생기는 상황으로 문법적인 오류가 아님 예외처리란? - 위와 같이 정의된 예외가 발생한 상황에 대한 처리 자바의 기본 예외처리 예외가 발생한 지점과 발생한 예외에 대한 정보 안내 프로그램 종료 if - else 문을 통해서 예외를 처리할 수 있으나, 이 경우에 코드의 다른 부분에 사용된 if - else 문과 목적을 따로 구별해야 하는 수고가 발생한다. -> 따라서 예외처리를 위한 문법이 제공됨 JVM이 예외를 처리하는 방식은 OS가 인터럽트를 처리하는 방식과 유사하다. 예외가 발생하면 예외처리를 위한 작업을 먼저 진행한 후에 .. 2020. 7. 12. Java - 인터페이스 17강은 인터페이스에 대한 내용이었다. 인터페이스란? 메소드의 몸체가 없고 선언부만 존재하는 추상 메소드만 가지고 있다. 인터페이스 인스턴스는 생성 불가능 하다. -> new 키워드를 통한 인스턴스 생성 불가함 단 인터페이스 참조변수는 선언 가능함. implements 키워드를 사용해서 클래스에서 인터페이스의 추상 메소드의 몸체를 작성해서 메소드를 완성한다. "메소드를 구현한다." 라고도 말함 인터페이스를 선언할 때 추상 메소드의 접근 수준을 명시하지 않더라도 기본적으로 public으로 설정된다. 일반적인 변수는 선언할 수 없으나, 상수는 선언이 가능하다. 이 경우에는 상수 키워드인 static final이 없이 변수를 선언하면 상수를 선언한 것으로 컴파일러 레벨에서 간주 상속과 구현 Class Robo.. 2020. 7. 8. Java - 상속 (3) 일단 어제 16강을 들었는데 정리하는 걸 깜빡했다. 상속만 3연속 강의라니 중요성을 다시 한번 느낀다. Object 클래스 default 설정이라고 보면 되는데, 클래스 선언 시에 상속하는 클래스를 명시하지 않는다면 object 클래스를 상속하도록 작동함 사실상 모든 클래스는 단계의 차이가 있을 뿐 최상위 클래스로 object 클래스를 두고 있음 Fianl 선언 클래스의 경우 - 다른 클래스가 상속할 수 없음을 나타낸다. 메소드의 경우 - 메소드 오버라이딩을 할 수 없을음 나타낸다. @Override 코드 안정성을 높이기 위한 문법 "상위 클래스의 메소드를 오버라이딩 한다." 라는 의미의 선언 선언을 해 놓고 오버라이딩의 조건을 만족하지 못한다면 컴파일 레벨에서 에러가 발생한다. 나머지는 상속을 적용할 .. 2020. 7. 8. Java - 상속 (2) 15번째 강의도 상속에 대한 내용이었다. 상속을 위한 두 클래스의 관계 is - a 관계를 이룰 것 하위 클래스는 상위 클래스의 모든 특성(변수 + 메소드)를 지님. 이에 더하여 자신만의 추가적인 특성을 더함 문법적인 관계가 아닌 실제 또는 설계상의 관계를 뜻한다. 의미 또는 기능상 전혀 연관이 없는 클래스간의 상속을 피할 것 예 전자제품 2020. 7. 6. Java - 상속 (1) 객체지향의 4요소 중 하나인 상속에 대한 강의를 들었다. 상속의 정의는 "연관된 일련의 클래스들에 대해서 공통적인 규약을 정의하는 것" 이다. 상속을 하고자 할 때는 extends 키워드를 사용하여 진행한다. class man { String name; public void tellMyName() { System.out.println("My name is" + name); } } class workman extends man { String job; String address; public void introduceMyself() { System.out.println("My name is" + name); System.out.println("My job is" + job); System.out.print.. 2020. 7. 5. Java - 콘솔 출력과 입력 12강 정리해본다. 콘솔 입력 및 출력에 대한 강의였고, 기본적인 입출력에 사용하는 클래스 및 메소드에 대한 강의였다. 출력 (System.out) print, println 전달받은 참조변수의 인스턴스에서 toString() 메소드를 이용, 반환받은 문자열을 출력한다. println과 print의 차이는 println은 자동개행, print는 수동개행이라는 점 printf 문자열의 조합 서식 지정자를 사용한다. 서식 지정자 용도 서식 지정자 용도 %d 10진수 정수 %e e표기법 기반의 실수 %o 8진수 정수 %g 대상에 따라서 %f 또는 %e 실수 %x 16진수 정수 %s 문자열 %f 실수 %c 문자 입력 Scanner 클래스 키보드, 파일, 인스턴스 등을 통해서 데이터를 입력받을 수 있다. Scan.. 2020. 6. 29. Java - 메소드 오버로딩과 String 클래스 11번째 강의를 정리해보자. 내용은 메소드 오버로딩과 String 클래스에 관한 내용인데 왜 둘이 엮여있는지는 모르겠다. 메소드 오버로딩 동일한 메소드의 이름에 다양한 매개변수 정보를 사용할 수 있는 것 매개변수의 수, 자료형 생성자에 대한 오버로딩 가능함 class testClass { void TestMethod(int num1) {...} void TestMethod(int num1, int num2) {...} void TestMethod(double num1, int num2) {...} } this 키워드 해당 클래스의 메소드, 생성자를 이용해서 스스로의 데이터를 사용, 업데이트 가능 String 클래스 String 클래스로 생성한 인스턴스는 immutable한 인스턴스이다. -> 내부 데이터.. 2020. 6. 28. 이전 1 2 3 다음