본문 바로가기

JAVA13

JAVA JDK 다운로드 및 설치 완벽 정리 JAVA JDK 1.8 download 정리 JAVA를 사용하지 않아도 필요한 경우가 있다. (oracle developer, konlp 등) 이번 기회에 설치부터 환경변수 설정까지 다 해보자. 1. JAVA 설치 확인 먼저 자바가 설치되어 있는지 CMD창으로 확인한다. 윈도우키+R 을 누르고 cmd를 입력. java -version 을 입력하면 라고 뜨면 설치가 안되어 있다는 뜻. 2. 다운로드 하기 오라클 페이지에 접속한다.(클릭하면 바로 감) 1) 무슨 창이 뜨는데 모든 쿠키허용한다. (안하면 다운안됨) 2) 스크롤 내리면 윈도우가 있다. (각자 맞는 운영체제로 다운로드) 3) 내 컴퓨터 사항 확인한다. 윈도우키+R 을 누르고 control system 검색 - 64비트니까 Window x64를 다.. 2020. 3. 24.
[JAVA 개념12] IO기반 입출력 및 네트워킹 1.IO기반 입출력: 프로그램에서는 데이터를 외부에서 읽고 다시 외부로 출력하는 작업을 스트림(Stream)을 통해 할 수 있다.: 데이터를 출력하는 방식에 따라 사용하는 클래스가 달라진다. 1)바이트 단위 입출력 : InputStream/ OutputStream : 전제를 다룬다. 2)문자 단위 입출력 : Reader/ Writer ; 문자만 다룬다. *stream: 프로그램과 I/O 객체를 연결하여 데이터를 송수신 하는 길을 말한다.: 단 방향으로 흐른다. *Buffered : 잠시 입출력 하겠다.*Object : 객체를 입출력 하겠다.*Print : 프린터로 쓰겠다. 2.입력 출력 스트림 최상위 클래스는 객체를 생성하지 못하기 때문에 상속받아 사용해야 한다. 1)InputStream -read():.. 2018. 11. 13.
[JAVA 개념11] 스트림(Stream) 1.스트림: 데이터가 물처럼 흘러가는 것을 뜻함.: 중요하고 어렵다.: 자바에서 대용량 데이터를 핸들링하는 핵심 API.: 람다식으로 처리할 수 있도록 해주는 반복자(iterator). -내부 반복자: 반복자가 stream에 감춰져 있다.: 병렬처리가 쉽다.: 람다식으로 요소 처리 코드 제공 대부분의 요소처리 메소드는 함수적 인터페이스 매개 타입 ` 모든 처리가 컬렉션 안으로 들어간다.반면, 외부 반복자는 개발자 코드에서 처리 해야한다. ex)내부 반복자와 외부 반복자 ex)람다식으로 표현한 스트림 리스트 타입으로 Student 클래스를 만든다. -스트림 중간처리 **중간처리란? Data(JCK) -가공되지 않은 데이터 | 중간처리(map,sort,fittering...) -데이터 가공 매핑: 객체를 값.. 2018. 11. 13.
[JAVA 개념10] 멀티 스레드(Multi Thread) 1.멀티스레드멀티 데스킹을 가능하게 하기 위해 만들어졌다. O.S가 만든 thread : kernel thread - 개발자가 만든 thread : user thread **Thread란:실행코드를 실행시킨다.:불확실성의 원칙을 가진다. 2.스레드 생성과 실행 3.스레드 우선 순위-동시성:하나의 코어(CPU)에서 멀티 스레드가 번갈아 가며 실행하는 성질:Thread1이 끊기도 다음으로 넘어갈때 끊어짐이 없는 것은 Core가 아주 빠르기 때문이다. -병렬성:멀티 코어에서 개별 스레드를 동시에 실행하는 성질:이상적인 형태이다. :상황에 따라 동시성과 병렬성을 섞어서 쓴다. **스레드 스케줄링:스레드의 실행순서를 조절해준다.:하지만 잘 안된다. (locking을 해도 다른 스레드가 들어온다.) -우선 순위(P.. 2018. 11. 13.
[JAVA 개념 9] 람다식 1.람다식 : 익명구현객체를 생성 하는 두번째 방법.: 이름이 없는 함수식을 처리하겠다. 1)함수적 인터페이스(functional interface) : 인터페이스에 선언된 추상메소드(abstract method)의 개수가 오직 하나뿐인 인터페이스 : 상수(0....N개), 추상메소드(1개), 디폴트 메소드(0....N개), 정적메소드(0....N개) 2)타겟 타입(target type) :람다식이 구현할 함수적 인터페이스를 "해당 람다식의 타겟타입"이라고 한다. **functional programming객체를 만들지 않고 함수(function(=mtehod))로 바로 처리해버리는 프로그램. 요즘 많이 사용되는 프로그램이다.많은 데이터를 빠른 속도로 처리하기 위해서 객체생성 시간도 아깝다.따라서, 람다.. 2018. 11. 13.
[JAVA 개념8] 제네릭 1.제네릭프로그램을 일반화하기 위해 사용. ***제네릭 타입: (제네릭)타입 파라미터가 적용된 클래스와 인터페이스. 클래스 또는 인터페이스 선언시에, 이름뒤에 를 붙여준다. ***(제네릭) 타입 파라미터: 타입(참조타입 또는 (또다른) 제네릭 타입)을 받는 매개변수. 변수명을 영문 대문자 하나로 한다. ***제네릭 메소드: (제네릭)타입 파라미터가 적용된 메소드. ***구체적인 타입(구체타입): 제네릭 타입 파라미터에 지정되는 실제 타입. -제네릭 사용하는 이점: 타입변화 제거 가능 (1)일반 (2)제네릭 (1)의 단점 : list를 object 클래스에서 꺼내오기 때문에 강제 casting해야 한다. casting할수록 코드의 질이 떨어지며 코딩이 길어질때 타입을 착각하여 exception이 발생할 가.. 2018. 11. 13.
[JAVA 개념7] 컬렉션 프레임워크3 (Map) 4.Map 컬렉션: 키와 값으로 구성된 Map.Entry 객체를 저장하는 구조: 키와 값은 모두 객체: 키는 중복될 수 없지만 값은 중복 저장 가능 -주요 메소드 기능메소드설명객체 추가V put(K key, V value)주어진 키와 값을 추가, 저장이 되면 값을 리턴객체 검색 boolean contaionsKey(Object key)주어진 키가 있는지 여부boolean containsValue(Object value)주어진 값이 있는지 여부Set entrySet()키와 값의 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아서 리턴V get(Object key)주어진 키의 값을 리턴boolean isEmpty()컬렉션이 비어있는지 여부Set keySet()모든 키를 Set 객체에 담아서 리턴in.. 2018. 11. 13.
[JAVA 개념6] 컬렉션 프레임워크2 (Set) 3.Set 컬렉션: 순서가 유지되지 않고 중복을 허용하지 않는다.: 데이터가 존재하냐 안하냐를 확인할때 사용한다.: null이 저장 가능한데 하나만 가능하다. -주요 메소드 기능메소드설명객체 추가boolean add(E e)주어진 객체를 저장, 객체가 성공적으로 저장되면 true를 리턴, 중복이면 false를 리턴객체 검색 boolean contains(Object o)주어진 객체가 저장되어 있는지 여부isEmpty()컬렉션이 비어 있는지 조사Iterator iterator()저장된 객체를 한 번씩 가져오는 반복자 리턴int size()저장되어 있는 전체 객체 수 리턴객체 삭제 void clear()저장된 모든 객체를 삭제boolean remove(Object o)주어진 객체를 삭제-Set 종류 클래스특.. 2018. 11. 13.
[JAVA 개념5] 컬렉션 프레임워크1 (개념과 List) 컬렉션 프레임워크는 아주 중요한 개념이고 양이 많기 때문에 두 번에 걸처 포스팅을 하겠다. 1.컬렉션 프레임워크:객체를 수집해 저장한다.:다수의 데이터를 쉽고 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합을 의미한다. 1)Framework: 제어권한이 사용자에게 없다.: 지정된 장소에 지정된 방법으로 내용을 채워야 한다.2)Library: 프로그램에서 가져다 쓸 수 있는 API.: 프레임워크에서 많이 가져다 쓴다.3)Runtime: 프로그램이 실행할 수 있는 환경을 말한다. (실행환경)4)Platform = Framework+Runtime **Framework와 Library 프레임워크와 라이브러리의 차이점은 제어 흐름에 대한 주도성이 누구/어디에 있는가 이다.즉, 프레임워크는 전체적.. 2018. 11. 12.
[JAVA 개념4] 예외처리 1.예외의 개념과 종류 Throwable Class(자바에서 생기는 모든 오류)에러(Error) :프로그래머가 제어할 수 없는 오류 -하드웨어의 잘못된 동작이나 고장 예외(Exception) :프로그래머가 제어할 수 있는 오류 -잘못된 코딩으로 인한 오류 -예외가 발생되면 프로그램 종료 ㄴException Class일반 예외(CkeckedException) : 반드시 예외처리해야할 오류 :확인 시점-컴파일단계 실행 예외(RuntimeException) : 프로그램 실행중에 발생가능한 오류 (컴파일러가 체크해주지 않으며 개발자 경험에 의해 처리 해야 한다.) :확인시점-실행단계 2.자주 나오는 RuntimeExceptionNullPointerException: 객체가 없는 참조변수로 도트연산자를 사용했을때.. 2018. 11. 12.
[JAVA 개념3]인터페이스 1.인터페이스개념 개발 코드가 특정 객체에 종속되지 않게 하고 다른 객체가 와도(변경이 되어도) 가능하게 한다.개발 코트 변경 없이 리턴값 또는 실행 내용이 다양해 질 수 있다.(다형성이 가능하다.) 2.구성 요소 1)상수 // 타입 상수명 = 값; 인터페이스는 상수 필드만 선언 가능하고 동시에 초기값 지정해야 한다.선언된 필드는 모두 자동적으로 public static final이 붙는다. 상수명은 대분자로 작성한다. 2)추상 메소드 // 타입 메소드명(매개변수,....); 인터페이스에 추상메소드는 프로토콜 타입으로만 지정하고 구현할때 재정의해야 한다. 즉, 규격으로서 사용된다. 객체를 구현 객체(구현 클래스)라고 하는데 반드시 추상 메소드를 구현해야 한다. 3)디폴트 메소드 // default 타입 .. 2018. 11. 11.
[JAVA 개념2]상속이란 무엇인가 1.상속의 기본 부모클래스( parent/상위 )자식클래스( child/하위 ) 자식이 extends를 통해 부모를 결정한다. 객체 다형성 구현이 가능하기 때문에 중요한 개념이다. 상속 대상 제한부모 클래스의 private 접근 갖는 필드와 메소드는 제외한다.부모 클래스가 다른 패키지에 있을 경우, default 접근 갖는 필드와 메소드도 제외한다.자식 클래스 한 개가 여러 부모 클래스를 상속받을 수 없다. 따라서 인터페이스를 더 지향해야 한다. 생성자를 통해 자식 클래스를 만들 경우힙영역에 자동으로 부모 객체와 자식 객체 두 개를 생성한다.코드로 표현하면 super();가 자동으로 생성된다. 반드시 자식 클래스에서 super를 가장 먼저 넣어주어야 한다.하지만 부모 클래스에 매개변수가 없다면 super.. 2018. 11. 10.
[JAVA 개념1]객체 지향 프로그램과 기본 개념 1.객체 지향 프로그래밍(OOP) 자바는 객체 지향 프로그램이다. 자바를 처음 접하신 분들은 이해하는데 조금 어려움을 겪을 수도 있다.자바에서 아주 중요한 개념 이기 때문에 잘 숙지해야 한다.이해가 안간다면 여려번 읽어보는 것을 추천한다. 객체 지향 프로그램은 OOP는 Object Oriented Programming의 약자이다. 말그대로 자바는 객체를 지향하는 프로그램이다.프로그램이 수 많은 객체를 구현할 수 있기 때문에 현실세계에 존재하는 모든 유/무형의 개체를 표현할 수 있는 큰 장점이 있다.즉, 자바가 객체를 모델링하는 것이다. 여기서 말하는 객체는 무엇일까? 1)객체(Object)란객체는 사람, 팔, 다리, 자동차, 의자, 커피사는 행위 등 정말 모든 것을 표현할 수 있다.그렇기 때문에 객체는 .. 2018. 11. 10.