본문 바로가기

Programming Language

(90)
[JAVA] 파일 입출력 ▶ 파일 입출력(InputStream,OutputStream,BufferedOutputStream,BufferedInputStream,DataOutputStream) ● 파일 입출력 : 말그대로 파일을 입력하고 출력하는것 입니다. (입력이란, 데이터를 내부로 받아들이는 것입니다. 출력이란, 데이터를 외부로 보내는것을 의미합니다.) ● 절대경로 : 컴퓨터 하드디스크의 이름부터 시작되는 경로 형식이다. 예) C:\Program Files\Java\jdk1.8.0_191\jre ● 상대경로 : 특정 폴더나 파일의 위치를 기준으로 하여 상대적으로 측정하는 경로이다. 예) ../../example.java ./example.java ● java.io.File 클래스 : 파일 입출력과 관리를 하는 클래스이다. 아래..
[JAVA] Object 클래스 - 오브젝트 클래스 ▶ Object 클래스 - 오브젝트 클래스 ● Object클래스 : 단순하게 모든클래스(API 또는 내가 만든 class 등)는 Object클래스의 자식클래스이다. 즉, Object클래스가 자바에서 '최상의 클래스'이다. Object클래스에는 다양한 메소드가 존재하는데, 어떤 클래스에서도 이 메소드를 호출할수있다. ● Object클래스 대표 메소드 종류 - equals() 메소드 : 두 객체가 동일한 객체라면 true를 리턴하고, 다르다면 false를 리턴합니다. - hashCode() 메소드 : 객체의 메모리 번지를 이용해서 해시코드를 만들어 리턴한다. 객체마다 다른값을 가지고 있다. - toString() 메소드 : 객체의 문자 정보를 리턴한다. 즉, 객체를 문자열로 표현한다. class Car{ p..
[JAVA] 업캐스팅(Up-Casting)과 다운캐스팅(Down-Casting) ▶ 업캐스팅(Up-Casting)과 다운캐스팅(Down-Casting) ● 업캐스팅(Up-Casting) : 서브 클래스 객체가 슈퍼 클래스 타입으로 변환되는것이다. package Test; class Parents { public void familyName() { System.out.print("이"); } public void name() { familyName(); System.out.println("순신"); } } class Daughter extends Parents { public void name() { familyName(); System.out.println("국주"); } } class Son extends Parents { public void name() { familyName(..
[JAVA] 래퍼 클래스(Wrapper class) 및 제네릭(Generic) ▶ 래퍼 클래스(Wrapper class) 및 제네릭(Generic) ● 래퍼 클래스(Wrapper class) : 기본 데이터타입 (int,double,String,char등)의 데이터를 객체로 취급해야하는 경우가 있습니다. 메소드의 인수로 객체 타입만 요구하면, 기본타입을 그대로 사용할 수 없습니다. 이때는 기본타입의 데이터를 먼저 객체로 변환하고 인수로 넣어줘야하는데 8개의 기본데이터타입에 해당하는 데이터를 객체로 만들어 주는 클래스를 말합니다. ( java.lang 패키지에서 제공합니다. ) ● 제네릭(generic) : 보통 데이터타입에는 int,String,long 등....과 같은 기본 데이터타입이 존재합니다. 제네릭은 이런 데이터 타입을 명시하지않은 상태라고 생각하시면 됩니다. 데이터타입을..
[JAVA] 오버라이딩(Overriding)과 final클래스 ▶ 오버라이딩(Overriding)과 final클래스 ● 오버라이딩(Overriding) : 상속받은 메소드의 내용을 재정의하는것입니다. 즉, 자신에 맞게 변경해서 사용하는 것입니다. ● 오버라이딩 조건 - 이름이 같아야 한다. - 매개변수가 같아야한다. - 리턴타입이 같아야 한다. - 자식의 접근제한자는 부모의 접근제한자보다 작을수없다. (private < package < protected < public) package Test; class Ferrari{ private int ye; public Ferrari(int ye) { this.ye = ye; } public int getYe() { return ye; } public void speed() { System.out.println(getYe..
[JAVA] 쓰레드(thread)와 프로세스(process),멀티쓰레드, 멀티프로세싱, 데몬쓰레드(Daemon),동기화(Synchronized) ▶ [JAVA] 쓰레드(thread)와 프로세스(process),멀티쓰레드, 멀티프로세싱, 데몬쓰레드(Daemon),동기화(Synchronized) ● 프로세스(Process) : 컴퓨터에서 연속적으로 실행되고 있는 컴퓨터 프로그램입니다. 또한, 메모리에 올라와 실행되고 있는 프로그램의 독립적인 개체입 니다. Code, Data, Stack, Heap영역의 구조로 되어있는 독립된 메모리 영역입니다. ● 프로세스(Process) 특징 - 프로세스는 각각 독립된 메모리영역을 할당받는다. - 기본적으로 프로세스당 최소 1개의 스레드(메인스레드)가 존재한다. - 각 프로세스는 별도의 주소 공간에서 실행되며, 한 프로세스는 다른 프로세스의 변수나 자료구조에 접근이 불가능하다. - 한 프로세스가 다른 프로세스의 자..
[JAVA] 예외(exceptional event) 강제예외,예외전가,예외처리 try-catch, finally ● 예외(exception) : 잘못된 코드, 부정확한 데이터, 예외적인 상황에 의해 발생하는 오류이다. ● 예외종류 - 강제 예외 : throw - 예외 전가 : throws - 예외 처리 : try() catch() import java.util.Scanner; public class Test { public static void main(String[] args) { int[] arr = {1,2,3}; for(int i=0;i
[JAVA] 상속( inheritance ) ● 상속 (inheritance) : 자식 클래스가 부모클래스를 물려받아 확장하는 의미로써, 상속을 이용하면 중복이 제거되고 간결한 구조를 가질수있습니다. ● 상속을 통해서 할 수 있는 일 - 기존의 클래스에 다른 기능을 추가할 수 있다. - 클래스의 데이터에 다른 것을 추가할 수 있다. - 클래스의 함수가 동작하는 방식을 변경할 수 있다. - 위의 작업들은 코드를 복사하여 진행할 수도 있지만, 상속을 통해서 간결하게 처리할 수 있다. - Extends를 사용하여 상속을 받는다. ● 상속 선언 - extends 키워드로 선언한다. - 부모 클래스는 슈퍼 클래스(super class)라고도 불린다. - 자식 클래스는 서브 클래스(sub class)라고도 불린다. class SuperClass { publi..