본문 바로가기

전체 글

(104)
Java 예외처리 오류 및 예의에 대한 이해 예외 발생과 try-catch, finally 문 예외 클래스 구조 이해하기 Chained Exception, 실제 예외 처리하는 방법 1. 오류 및 예외에 대한 이해 프로그램을 작성하다 보면 예외 상황이 발생한다. 예를 들어 사용자가 숫자가 아닌 문자를 입력하는 경우, 프로그램의 메모리가 감당할 수 없는 숫자가 입력되는 경우, 프로그램을 돌리는 메모리가 부족한 경우 등등... 이러한 상황들의 예외를 미리알고 해결할 수 있다면 더욱 완벽한 프로그램을 만들 수 있을 것이다. 완벽한 프로그램을 만들기전에 오류와 예외에 대한 이해를 해야 한다. 1-1 오류 오류(Error)는 일반적으로 회복이 불가능한 문제이다. 이는 시스템 레벨에서, 또는 주로 환경적인 이유로 발생 코드의 문제로 ..
자바의 구조체 자바의 구조체 사용하는 방법 느낀 점 1. 자바의 구조체 C나 C++, C#에는 있는 구조체는 아쉽지만 Java에는 지원하지 않는다. 하지만 클래스를 사용하여 구조체를 구현할 수 있다!. 이러한 구조체 구조는 나중에 여러 정보를 한 번에 객체에 담아서 처리하기 때문에 캡슐화에 용이하며 번거롭게 코드를 여러 번 타이핑할 필요 없이 한 번에 처리가능하다는 장점이 있다. 2. 사용하는 방법 클래스를 생성하고 생성자를 만들 때 자신이 입력하고 싶은 데이터 타입에 맞게 클래스를 구성하면 된다. public class Structure { int num; String name; String comment; public Structure(int num, String name, String comment){ this...
객체지향(3) 1. 추상 클래스 클래스가 설계도라면 추상 클래스는 미완성된 설계도이다. abstract 키워드를 사용하여 추상 클래스를 선언할 수 있다. public abstract class 추상클래스명 { } 추상 클래스는 추상 메서드를 포함할 수 있습니다. 추상 메서드가 없어도 추상 클래스로 선언할 수 있다. 추상 클래스는 자식 클래스에 상속되어 자식 클래스에 의해서만 완성될 수 있다. 추상 클래스는 여러개의 자식 클래스들에서 공통적인 필드나 메서드를 추출해서 만들 수 있다. 추상 메서드 추상 메서드는 아직 구현되지 않은 미완성된 메서드이다. abstract 키워드를 사용하여 추상 메서드를 선언할 수 있다. public abstract class 추상클래스명 { abstract 리턴타입 메서드이름(매개변수, ....
객체지향(2) 1. 클래스 간의 관계와 상속 상속의 사전적 정의는 부모가 자식에게 물려주는 행위를 말합니다. 객체 지향 프로그램에서도 부모 클래스의 필드와 메서드를 자식 클래스에게 물려줄 수 있습니다. 상속을 사용하면 적은 양의 코드로 새로운 클래스를 작성할 수도 있고 공통적인 코드를 관리하여 코드의 추가와 변경이 쉬워질 수도 있습니다. 이러한 특성 때문에 상속을 사용하면 코드의 중복이 제거되고 재사용성이 크게 증가하여 생산성과 유지보수성에 매우 유리해집니다. 정의 public class 자식클래스 extends 부모클래스 { } 부모 클래스에 새로운 필드와 메서드가 추가되면 자식 클래스는 이를 상속받아 사용할 수 있다. 자식 클래스에 새로운 필드와 메서드가 추가되어도 부모 클래스는 어떠한 영향도 받지 않는다. 따라서..
객체지향(1) 내배캠 강의를 수강하며 객체지향에 관련된 모르는 부분 및 알아야 되는 내용을 정리하려고 한다. 1. 객체 객체는 세상에 존재하는 물체를 뜻하며 식별이 가능한 것을 의미한다. 예를 들자면 물리적으로 존재하는 자동차, 도서관, 계산기를 객체라 볼 수 있다. 강의, 배달 주문, 운동과 같은 개념적인 것 또한 식별이 가능하기 때문에 객체라 볼 수 있다. 클래스 객체 생성 및 참조형 변수 Car car1 = new Car(); // Car클래스의 객체인 car1 인스턴스 생성 Car car2 = new Car(); // Car클래스의 객체인 car2 인스턴스 생성 new 연산자를 통해서 객체가 생성되면 해당 인스턴스의 주소가 반환되기 때문에 해당 클래스의 참조형 변수를 사용하여 받아줄 수 있다. 2. 필드 필드는..
Java 문법 Array, collection 내배캠 강의중 Array와 collection 부분에서 중요하다고 생각되는 특징과 기능을 정리 1. Array 배열 복사 얕은 복사 : 주소값만 복사되고 실제값은 1개로 유지되는걸 얕은 복사라고 한다. 깊은 복사 : 얕은 복사처럼 가짜 복사가 아니라 진짜 새로운 배열을 똑같이 만들고 싶을때 깊은 복사를 한다. 배열 복사 메서드 .clone() 메서드: 1차원 배열에서는 깊은복사로 동작 clone() 메서드는 2차원이상 배열에서는 얕은 복사로 동작 Arrays.copyOf() 메서드 2. List 1-1 ArrayList 특징 생성 시점에 작은 연소된 공간을 요청해서 참조형 변수들을 담아놓는다. 값이 추가될 때 공간이 필요하면 더 큰 공간을 받아서 저장하니깐 상관없다. 기능 선언 : ArrayList in..
Java 문법 내배캠 강의를 수강하면서 몰랐던 부분에 대해 정리하여 내 지식으로 만들려고 한다. 1. 래퍼 클래스 변수 래퍼 클래스(Wrapper Class)라는 말 그대로 기본형 변수를 클래스로 한번 랩핑(감싸는) 변수”라고 생각하시면 된다. 기본 타입의 래퍼 클래스 기본타입 래퍼 클래스 byte Byte short Short int Integer long Long float Float double Double char Character boolean Boolean 2.박싱과 언박싱 기본 타입에서 래퍼 클래스 변수로 변수를 감싸는 것을 “박싱”이라고 부르며 래퍼 클래스 변수를 기본 타입 변수로 가져오는 것을 “언박싱”이라고 부릅니다. //박싱 int number = 21; Integer num = new Intege..
JVM 자바를 사용하면서 자바만 설치하고 어떻게 동작하는지에 대해서 대략적으로만 알고 있었지만 내 배캠 자바 강의를 듣고 이번에 정리를 할 겸 몰랐던 부분에 대해서도 공부하는 시간을 가졌다. 1. JVM이 무엇인가? Java Virtual Machine의 약자로 자바 가상머신이라는 뜻이다. 풀어서 설명하면 여라가지의 기기 위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어 주는 것을 의미한다. 2. JVM 구조 바이트 코드( Java 프로그램 변환코드 ) : 내가 작성한 코드가 운영체제가 읽을 수 있는 코드(바이트 코드)로 Java 컴파일러가 변환한 코드 인터프리터( Java .class 코드 해석기 ) : 운영체제가 읽은 바이트 코드를 기기(기계)가 실행할 수 있는 기계어로 번역 JIT 컴파일러(..