본문 바로가기

전체 글

(41)
자바 입출력 IO 참고 : 자바의 정석 + 수업내용1. 입출력1.1 입출력이란?I/O란 Input과 Ouput의 약자로 입력과 출력, 간단히 줄여서 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다. 예를 들면 키보드로부터 데이터를 입력받는다던가 Sysyem.out.println()을 이용해서 화면에 출력한다던가 하는 것이 가장 기본적인 입출력의 예이다.1.2 스트림스트림이란 데이터를 운반하는데 사용되는 연결통로이다. (물을 마시는 빨대)스트림은 단방향통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 업성서 입력스트림(inputSream)과 출력스트림(outputStream) 2개의 스트림이 필요하다. 2. 스트림의 종류스트림은 바이트 단위로 처.. Java 2018. 11. 30. 16:39
Comparator와 Comparable의 차이 + 람다표현식 Comparator와 Comparable은 모두 인터페이스로 객체들을 정렬 또는 이진검색트리를 구성하는데 필요한 메서드를 정의하고 있다.Comparable - 이 인터페이스를 구현한 객체 스스로에게 부여하는 한 가지 기본 정렬 규칙을 설정하는 목적으로 사용한다.Comparator - 이 인터페이스를 구현한 클래스는 정렬 규칙 그 자체를 의미하며, 기본 정렬 규칙과 다르게 원하는대로 정렬순서를 지정하고 싶을 때 사용한다. 1. Comparablepublic class Book implements Comparable { private int price; public Book(int price){ this.price = price; } public int getPrice(){ return this.price;.. Java 2018. 11. 29. 17:59
객체, 클래스, 인스턴스의 차이 객체, 클래스, 인스턴스객체 -> class(설계도) -> 메모리에 올라가면 인스턴스객체 - 구현할 대상 (모든 인스턴스를 대표하는 포괄적인 의미)클래스 - 객체를 구현하기위한 설계도인스턴스 - 객체의 설계도에 따라 구현된 복사본. JVM은 해당 인스턴스를 메모리 공간에 할당한다. -----래퍼런스타입 ---------- 생성자 스포츠카 c = new 스포츠카(); ---------------- 메모리에 인스턴스(갹체)를 생성해달라. = : c라는 변수가 스포츠카 인스턴스를 참조한다. ​ 자동차 c = new 자동차(); (X) 자동차 c = new 스포츠카(); (자동차 기능만 사용) ​ 모든객체 = 재사용x - 현재 프로젝트에 충실 추상화 = 필요한 것만 남기고 불필요한건 없앤다. 더 이상 참조하는 .. Java 2018. 11. 29. 17:52
객체지향 프로그래밍의 특징 참고 : 자바의 정석- 객체지향 특징 4가지추상화 (Abstraction)캡슐화(Encapsulation)상속(Inheritance)다형성(Polymorphism) 1. 추상화객체에서 공통된 속성과 행위를 추출하는 것을 추상화(Abstraction)라고 한다.추상클래스추상클래스는 미완성 설계도에 비유할 수 있다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 새로운 클래스를 작성할 때 아무 것도 없는 없는 상태에서 시작하는 것보다는 완전하지는 못하더라도 어느 정도 틀을 갖춘 상태에서 시작하는 것이 나을것이다. 2. 캡슐화(Encapsulation)캡슐화는 프로그램의 세부 구현을 외부로 드러나지 않도록 특정 모듈(클래스) 내부로 감추는 것이다.* 접근제어자public > protecte.. Java 2018. 11. 29. 17:48
자바의 특징 참고 - 자바의정석- 자바언어의 특징1. 운영체제에 독립적이다.자바 응용프로그램은 운영체제나 하드웨어가 아닌 JVM하고만 통신하고 JVM이 자바응용프로그램으로부터 전달받은 명령을 해당 운영체제가 이해할 수 있도록 변환하여 전달한다. (JVM은 운영체제에 종속적이다.) 2. 객체지향언어이다객체지향개념의 특징인 상속, 캡슐화, 다형성이 잘 적용된 순수한 객체지향언어다. 3. 자동 메모리 관리가비지컬렉터가 자동적으로 메모리를 관리해주기 때문에 프로그래머는 메모리를 따로 관리 하지 않아도된다. 4. 멀티쓰레드를 지원한다.자바에서 개발되는 멀티쓰레드 프로그램은 시스템과는 관계없이 구현가능하며, 관련된 라이브러리가 제공되므로 구현이 쉽다. 그리고 여러 쓰레드에 대한 스케줄링을 자바 인터프리터가 담당하게 된다. - .. Java 2018. 11. 29. 17:44
자바 : 쓰레드(Thread)란? 참고 서적: 자바의 정석 1. 프로세스와 쓰레드프로세스란 간단히 말해서 '실행 중인 프로그램'이다'. 프로그램을 실행하면 OS로부터 실행에 필요한 자원(메모리)을 할당받아 프로세스가 된다.프로세스는 프로그램을 수행하는 데 필요한 데이터와 메모리 등의 자원 그리고 쓰레드로 구성되어 있으며 프로세스의 자원을 이용해서 실제로 작업을 수행하는 것이 바로 쓰레드다. 그래서 모든 프로세스에는 최소한 하나 이상의 쓰레드가 존재하며, 둘 이상의 쓰레드를 가진 프로세스를 멀티쓰레드 프로세스라고 한다. 멀티쓰레딩은 하나의 프로세스 내에서 여러 쓰레드가 동시에 작업을 수행하는 것이 가능하다. 실제로는 한 개의 CPU가 한 번에 단 한가지 작업만 수행할 수 있기 때문에 아주 짧은 시간 동안 여러 작업을 번갈아 가며 수행함으로.. Java 2018. 11. 29. 14:53