목록자바/기초 (16)
gpffh1011
컴파일을 하는 과정에 발생 하는 오류 컴파일러가 이해하지못하는 코드를 발견했을때 발생.(ex 오타) 실행되기 전에 기계에게 더 친숙한 언어로 컴파일하는 자바와 같은 경우, 문법오류는 컴파일 과정에서 차단하기 때문에 실행과정에서 오류가 나는일은 x. 프로그램의 실행 중에 발생하는 오류 프로그래머의 논리적 결함에 의해 생김.(설계미숙) 이러한 오류는 전적으로 코드에 달려있기 때문에 프로그래밍 하는 과정에서 방지 할 수 있음. 하지만 프로그래머가 코드로 제어할수 없는 돌발상황이 생기기도 함. > 돌발상황을 하나하나 if문으로 대비할 수도 있지만 모든 돌발상황을 예측하기 힘듬. > 그래서 프로그래밍 언어들은 돌발상황을 대비하기 위해 오류가 발생할 수 있는 곳을 예측해서 예외처리(Exception handling..

public class test { int instance; // 인스턴스 변수 Static int c;//클래스 변수 static은 실행되자마자 바로 메모리에 로드 void method() { int third; //지역변수 } } 인스턴스 변수는 클래스 내에, 지역변수는 메소드 안에 위치하고있다. 변수를 구분짓는 가장 중요한 요소는 '변수의 선언된 위치' 지역 변수 - 메소드 안에서 선언한 것을 지역 변수라고 부르는데, 메소드 매개변수도 지역변수에 포함됩니다. 지역 변수는 임시 변수며 메소드가 스택에 들어있는 동안만 (즉, 메소드 전체를 감싸는 오른쪽 중괄호가 나타나기 전까지만) 살아있습니다. 메소드가 종료되면 소멸되어 사용할 수 없습니다. 인스턴스 변수 - 클래스 내에서 선언한 것을 인스턴스 변수라..

상속(Inheritance) A(자식) is a B(부모) 부모클래스 A = new 자식클래스(); 우리가 생각하는 상속이라는 단어가 맞다. 현실 세계에서 부모님이 자식들에게 재산을 물려주는 것과 비슷하다. 차이라고 하면 자식(클래스)이 상속받고 싶은 부모(클래스)를 선택해서 물려받는다. 이때 상속받는 클래스를 자식 클래스, 하위 클래스 또는 서브 클래스라고 부른다. 상속을 해주는 클래스를 부모 클래스, 상위 클래스 또는 슈퍼 클래스라고 한다. 상속의 대상 자식 클래스가 부모 클래스로부터 상속을 받게 되면 부모 클래스의 필드와 메서드를 물려받게 된다. 단, 접근제어자가 private을 갖는 필드나 메소드는 상속이 불가하고, 패키지가 다를 경우 접근제어자가 default인 경우도 상속이 불가하다.(접근제어..

프로그램 실행 순서 메모리의 구조 사용자가 프로그램을 실행하면 운영체제(OS)는 먼저 프로그램을 메모리(RAM)에 로드(load) 한다. 이때 프로그램에서 사용되는 변수들을 저장할 메모리도 필요하다. OS는 코드(code) / 데이터(data) / 스택(stack) / 힙(heap) 4영역에 프로그램에서 사용되는 변수들을 저장 할 메모리를 할당 한다. 코드(Code) 영역 메모리의 코드 영역은 우리가 작성한 소스코드가 들어가는 부분. 즉, 실행할 프로그램의 코드가 저장되는 영역으로 텍스트(code) 영역이라고도 부른다. 실행 파일을 구성하는 명령어들이 올라가는 메모리 영역으로 함수, 제어문, 상수 등이 여기에 저장된다. CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리한다. 데이터(Data) 영..
10진수를 2진수,8진수,16진수로 변환 할 때, Integer 클래스의 함수를 사용하면 쉽게 변환이 가능하다. Integer 클래스의 toBinaryString, toOctalString, toHexString 함수를 사용하면 각각 2진수,8진수 16진수로 변환한다. int i = 127; String binaryString = Integer.toBinaryString(i); //2진수 String octalString = Integer.toOctalString(i); //8진수 String hexString = Integer.toHexString(i); //16진수 System.out.println(binaryString); //1111111 System.out.println(octalString);..
인터페이스(interface)란? 자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것이다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. 하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 할 수 있다. 인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다. 인터페이스는 상속과 같이 is a 관계이다. 자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할..
자바에서 입력받을 때 스캐너 클래스를 사용한다. (아직 배우지 않았지만 스캐너 외에도 또다른 입력방법이 있는 듯 하다.) 스캐너 클래스는 정수, 실수, 문자열을 읽어올 수 있다. Scanner 사용법 1. 스캐너를 사용하기 위해 아래 코드를 상단에 호출한다. import java.util.Scanner; 2. 스캐너의 객체 생성을 위해 아래 코드를 입력한다. System.in은 입력한 값을 바이트 단위로 읽는다는 뜻이다. Scanner scanner = new Scanner(System.in); 3. 스캐너를 사용한 후에는 아래 코드를 사용해 스캐너를 닫아 주는 것이 좋다. scanner.close(); 사실 대단한건 아니지만 3번 때문에 이 글을 작성했다. 자꾸 경고인지 오류인지 모를 것이 뜨는데 답을..