Language/Java41 [Java] 입출력 스트림 IO 입출력 IO 자바에서 데이터는 스트림을 통해 입출력된다. 스트림은 단일 방향으로 연속적으로 흘러가는 것을 말하는 데, 출발지에서 도착지로 흘러간다. 프로그램을 기준으로 키보드의 입력을 읽어오고, 프로그램을 기준으로 모니터에 읽어온 값을 출력한다. 바이트 기반 스트림 byte Stream 입출력 스트림의 기본 그림, 멀티미디어 등의 바이너리 데이터를 읽고 출력할 때 사용한다. InputStream/ OutputStream 은 byte 기반 입출력 스트림의 최상위 클래스이다. 따라서 모든 byte 기반 입출력 스트림은 InputStream/ OutputStream 을 상속받는다. 문자 기반 스트림 char Stream 문자 데이터를 읽고 출력할 때 사용한다. Reader/ Writer 는 문자 기반 입출력 .. 2019. 10. 2. [Java] 예외 Exception 예외 Exception 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외가 발생되면 프로그램은 곧바로 종료된다. 자바에서는 이러한 원치 않는 종료를 방지하기 위해 예외처리를 할 수 있다. 예외처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 일반예외 Checked Exception 컴파일러 체크 예외 프로그램 실행 시 예외가 발생할 가능성이 높기 때문에 자바 소스를 컴파일 하는 과정에서 해당 예외 처리 코드가 있는 지 검사한다. 만약 예외 처리 코드가 없다면 컴파일 오류가 발생한다. 실행예외 Runtime Exception 컴파일러 넌 체크 예외 실행 시 예측할 수 없이 갑자기 발생하기 때문에 컴파일 하는 과정에서 예외 .. 2019. 10. 2. [Java] 이클립스 프로젝트 자바 버전 변경하기 이클립스 자바 버전 변경하는 방법 얼마전에 학원에서 사용하는 자바 버전과 내 노트북의 자바 버전이 맞지 않아서 곤란한 일을 겪었다. 학원에 다녀오고 나서 아무 생각없이 최신버전이 가장 좋겠거니 하고 설치했는데, 은근히 귀찮은 일들이 많이 생겨서 학원에서 쓰는 버전으로 변경하려고 한다. 프로젝트의 자바 버전을 변경하기 위해서는 우선 사용하고자 하는 버전의 자바가 설치되어 있어야 한다. 이클립스에 새로운 자바 버전 등록하기 이클립스 상단의 window 탭에 Preferences 를 클릭한다. 좌측 사이드바에 Java - Installed JREs 클릭하고 add를 누른다. 사용하려는 버전의 자바를 추가하려는 것인데, 나는 원래 자바12를 쓰다가 자바8을 사용하기 위해 추가를 해둔 상태이다. add 를 누르면.. 2019. 9. 28. [Java] 인터페이스 Interface 인터페이스 Interface 자바의 인터페이스란 객체의 사용 방법을 정의한 타입이다. 인터페이스를 통해 다양한 객체를 동일한 사용 방법으로 이용할 수 있다. 인터페이스는 모든 메소드가 추상 메소드로 구성되어있고 일종의 추상 클래스로도 볼 수 있다. 인터페이스 선언 public interface Sample { public static final int sampleNumber = 10; public abstract sampleMethod( ); } 인터페이스를 선언하기 위해서는 class 대신 interface 를 쓴다. 인터페이스의 구성 요소는 상수 필드와 추상 메소드이다. 인터페이스는 객체의 사용 방법을 정의한 것이므로 실행 시 데이터를 저장할 수 있는 인스턴스 혹은 정적 필드를 선언할 수 없다. 단,.. 2019. 9. 23. [Java] 추상 클래스 Abstract 추상클래스 Abstract 추상 클래스란 클래스들의 공통적인 필드와 메소드를 추출해서 선언한 것이다. 추상 클래스가 필요한 이유는 공통된 필드와 메소드의 이름을 통일하기 위함과 실체 클래스를 구현 시에 시간을 절약하기 위해서이다. 추상 클래스는 하나 이상의 추상 메소드를 가진 클래스이며 추상 메소드는 선언부만 존재한다. 따라서 추상 클래스는 부모 클래스가 되고 추상 클래스를 상속받는 자식 클래스가 반드시 구체적인 기능을 구현해야 한다. 이처럼 추상 클래스 자체는 구체적인 구현요소가 없기 때문에 new 연산자를 사용해서 객체를 생성하지 못한다. 추상클래스 선언 public abstract class sample { } 추상 클래스를 선언하기 위해서는 클래스 선언에 abstract 를 붙여야한다. 추상 클래.. 2019. 9. 23. [Java] 객체지향프로그래밍 OOP 객체 지향 프로그래밍 OOP 자바라는 언어에 꼭 따라 붙는 수식어가 있다. 바로 객체 지향이다. 영어로는 Object Oriented Programing 줄여서 OOP 라고 한다. 객체지향 프로그래밍이란 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 객체들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고 받고, 데이터를 처리할 수 있다. 클래스 Class 객체를 생성하려면 객체를 만들기 위한 설계도가 필요하다. 클래스가 바로 객체의 설계도이다. 연관되어 있는 변수와 메소드들의 집합이다. 필드 Field Type Field; 타입 필드; field, member, 필드, 클래스 멤버변수, 멤버변수, 전역변수 ... 비슷한 용어를 사람에 따라 혼용해서 .. 2019. 9. 22. [Java] 문자열 String 문자열 String java.lang.String 참조타입 중 유일하게 기본타입의 특징을 가지고 있다. 문자열을 관리하는 클래스이다. heap 영역에 있는 string pool 에 리터럴을 생성한다. 한 번 생성된 문자열은 Create, Retrieve, Update, Delete 가 불가능하다. 값이 변하면 새로운 객체를 생성한다. (hash code 가 변한다.) 문자열의 길이 length String str = "Hello"; System.out.println(str.length()); // 5출력 문자열의 길이는 .length 를 이용한다. 해당 객체의 길이를 int 타입으로 반환한다. 문자열을 소문자/ 대문자 로 바꾸기 toLowerCase/ toUpperCase String str = "Hel.. 2019. 9. 18. [Java] 배열 Array 배열 Array 여러 개의 값을 효과적으로 관리하기 위한 객체이다. 배열의 길이는 고정되어 있다. 배열의 크기와 인덱스 new int [8] 은 배열의 길이 length 를 의미한다. 길이가 8인 int 타입 a 배열이 만들어지면, 그 안에 배열의 인덱스 index 가 부여된다. index는 [0] 부터 시작해서 [배열의 길이 - 1] 이므로 주의한다. 배열의 선언/ 정의/ 초기화 int[] number; number = new int[5]; number[0] = 1; number[1] = 2; number[2] = 3; number[3] = 4; number[4] = 5; 선언 int 값을 관리하기 위한 a라는 배열이다. int[] number; 정의 a라는 배열 안에는 int 값을 다섯개 까지 넣을 .. 2019. 9. 17. [Java] 랜덤 Random 랜덤 Random 랜덤한 숫자를 필요로 할 때 사용한다. 이번 포스팅에서 다룰 방법은 Math.Random/ Random class 으로 두 가지이다. Math.random java.lang.Math 내에 존재하는 클래스 double 타입 0.0 2019. 9. 16. 이전 1 2 3 4 5 다음