본문 바로가기

언어/Java9

Direct addressing, Indirect addressing Direct addressing 명령어의 주소 Field의 내용이 유효 주소가 되는 방식이다. 데이터가 들어갔다 나왔다를 하기 위해 기억장치를 한 번만 접근하지만, 저장할 수 있는 기억장치의 주소 공간은 제한적이다. 직접 주소 지정방식은 명령어에 있는 연산 코드와 유효 주소가 기억장치의 데이터로 디렉트로 가기 때문에 속도가 빠르다. 예를 들면 int x = 10과 vector a = new vector()는 직접 주소 방식이다. 유효주소안 데이터로 넘어가기 때문에 속도가 빠르다. Indirect addressing 명령어의 주소 Field에 유효주소의 주소가 저장되어있는 방식이다. ‘두 번의 기억장치 접근이 필요하며 기억장치를 임의로 사용한다거나 프로그램상의 실제 데이터를 가져오기 위해 메모리를 2번 이.. 2022. 11. 10.
Process의 정의와 구성 Process의 정의 Process는 실행 중인 프로그램을 뜻한다. 즉 메모리에 로드된 상태를 의미하고, 프로그램이 실행되면서 프로그램 안의 명령어들이 실행 중인 것이다. ‘디스크에 저장되어 있던 실행 가능한(ex. exe 등) 프로그램이 메모리에 적재되어 운영체제의 제어를 받는 상태이다. 해당 프로세스가 사용하고 있는 메모리 영역(자신만이 가지는 주소 공간)이 존재함을 의미한다.’ 프로그램은 보조 기억장치인 하드디스크에서 존재하며 사용자가 더블 클릭했을 때 실행이 되는 명령어와 정적인 데이터의 집합이다. 명령어와 정적인 데이터가 메모리에 적재되면 그때부터 프로그램은 프로세스가 된다. 즉 프로세스는 CPU가 기계어로 된 명령들을 실행하면서 끊임없이 변화하는 동적 존재이다. Process의 구성 ‘대부분의.. 2022. 11. 9.
Class의 정의와 구성요소들 Class의 정의와 구성요소 Class의 정의 ‘프로그램은 필요에 따라 여러가지 대상을 표현해야 한다. 자바 프로그램에서는 모든 대상을 객체로 표현해야한다. 따라서 객체를 생성하기 위한 설계도가 Class이다.’ 즉 객체 생성에 필요한 설계도이며 Class는 객체지향 프로그램의 기본적인 사용자 정의 데이터라 할 수 있다. 또한 Class는 Type이기 때문에 Primitive Type(int, char, float, boolean)을 이용해 복합적인 타입을 만들 수 있다. 따라서 Class를 사용자 정의 데이터라고 하는 것이다. Field ‘필드는 다른 말로 멤버 변수나 전역 변수라고 불린다.’ 필드는 전역 변수이므로 필드에 변수를 선언 할 경우 지역에서도 사용이 가능하다. 하지만 필드의 큰 단점이자 장.. 2022. 11. 7.
변수 변수 변수는 숫자, 문자와 같은 값들을 저장하는 메모리 공간이다. 영어로 Variable이며 “변수는 마치(사람이 쓰는 언어인) 자연어에서 대명사와 비슷한 역할을 한다.” 변수가 없다면 우리는 하나하나 숫자가 입력된 주소 값을 외우고 다녀야 할 것이고, 프로그래밍 시간이 오래 걸리게 된다. 변수명에는 크게 4가지의 규칙이 존재한다. 첫글자는 영문이어야 한다. 숫자나 한글 등 다른 언어가 맨 앞에 올 경우 디버깅했을 때 변수명을 제대로 읽지 못할 것이다. 프로그램 안 예약어가 변수명으로 사용됐을 때, 자바를 예로 들면 Scanner는 자바의 예약어이다. Scanner의 의미는 (클래스를 의미하는 대문자) 항상 고정이 되어있기 때문에 사용자는 변수명을 예약어로 사용할 수 없다. 변수명에는 띄어쓰기가 안된다... 2022. 11. 3.
Try-With-resources와 Try-Catch-Finally 대학교 1학년 때 절차지향프로그래밍 수업을 들으면서, MVC 패턴을 기반으로한 학교 수강신청을 Java GUI를 통해 구현을 해본 경험이 있었다. DB서버를 구축하지 못해 TXT파일에 수강신청에 대한 데이터를 담고, 자바에서 FileInputStream을 통해 불러오고 사용했었다. 그때에는 오류를 잡거나, 데이터Set이 잘못 될 경우를 대신해서 Try-Catch-Finally를 사용했는데, 오류가 어디서 났는지, 에러가 발생해도, 발생한 코드대신 잘작동되는 코드에서 에러가 발생했다고 표시가 되었고, 제일 큰 문제는 Finally를 통해 생성한 자원을 close()해줘야 하는데. 에러로인해 close가 안되서 애를 먹었던 기억이 난다. 다시 현재로 돌아와서.. 예외처리를 위한 Try-Catch-Finall.. 2022. 10. 27.
Access Modifier Access Modifier - 접근 제어자 자바의 접근 제어자는 총 4 가지로 구성 되어있다. private, default, protected, public 이며 각각 순서로 접근 허용 범위는 점점 커지게 된다. private 접근 제어자의 경우 private가 접근제어자로 되어있는 경우 이것이 붙은 변수나, 메소드 등은 해당 클래스 내에서만 접근이 가능하며, 다른 클래스에서 변수나 메소드에 접근이 불가능하다. default 접근 제어자의 경우 default 접근 제어자의 경우 접근 제어자를 붙이지 않고 생성되는 변수가 해당이 되는데, 이 경우 같은 패키지 안에 있는 경우 접근이 가능해 진다. protected 접근 제어자의 경우 protected가 붙은 변수, 메소드는 동일 패키지의 클래스 또는 해.. 2022. 10. 26.
삼항 연산자 삼항 연산자 기존 if문에서 사용하던 것을 간단하게 바꾸워 주는 역할이다. 조건식이 한개이고, 반환값이 있을 때 삼항 연산자를 이용하면 코드를 간결하게 작성할 수 있고, 편하다. (조건식) ? 참 : 거짓 으로 구성된다. 쉽게 풀면 조건식이 맞아? 그러면 참 값을 리턴 맞지 않아? 그러면 거짓 값을 리턴한다. 아래에는 간단한 if-else문을 삼항연산자로 바꾼 예시이다. a = 10; b = 20; if(a > b){ return a; }else{ return b; } /////////////////////////////////////////////////////////////////////////////////////////////// return a > b ? a : b; 2022. 10. 21.
객체 지향 프로그래밍 객체 - Object 객체는 물리적으로 존재하거나 추상적으로 생각할 수 있느 것 중에서 자신의 속성을 가지고 있고, 다른 것과 식별 가능한 것을 말한다. 예를 들어 물리적으로 존재하는 자동차, 자전거, 책, 사라과 추상적인 학과, 강의, 주문 등이 모두 객체가 될 수 있다. 객체는 속성과 동작으로 구성되어 있다. 자바는 이 속성과 동작들을 각각 필드와 메소드라고 부른다. 즉 자바에의 객체는 물리적으로 존재하거나 추상적으로 생각할 수 있는 것들을 자신의 필드와 메소드로 구현할 수 있는 것을 객체라고 한다. 객체 지향 프로그래밍의 특징 캡슐화 - Encapsulation 캡슐화란 객체의 필드, 메소드를 하나로 묶고, 실제 구현내용을 감추는 것을 말한다. 자신의 객체를 호출할 때에는 자신이 노출한 메소드만을 .. 2022. 10. 18.
데이터 타입 데이터 타입 Primitive type 정수 타입 byte - 1byte char - 2byte short - 2byte int - 4byte long - 8byte 실수 타입 float - 4byte double - 8byte 논리 타입 boolean - True,false Reference type 배열 타입 열거 타입 클래스 인터페이스 2022. 10. 18.