본문 바로가기

코딩/JAVA26

JAVA 겨울방학 9일차 JAVA NIO에서는 Buffer를 이용해서 데이터 입출력 진행배열과 같은 연속된 메모리 공간2가지 종류의 Buffer가 존재 -direct buffer(OS):OS영역에 생성되는 버퍼:생성되는 시간은 상대적으로 길다(Native-C call을 이용해서 처리)->일반적으로 재서용:크기는 OS가 제공하는 메모리 공간크기만큼 잡을 수 있다.:효율은 더 좋다! -non direct buffer(Java):Java Program내에서 생성되는 버퍼:메모리 공간 Heap에 생성:생성되는 시간은 상대적으로 짧다:만들 수 있는 버퍼의 크기가 제한된다.:상대적으로 속도는 느리다. Channel->FileChannel을 이용한 파일처리까지 진행 package JavaNIO; import java.nio.ByteBuffe.. 2018. 1. 8.
JAVA 겨울방학 8일차 Stream을 가지고 동작Java program에서 데이터를 외부로 내보내거나 외부에서 데이터를 읽어들이기위해 사용하는 데이터 연결 통로 1. Stream은 단방향입력을 하기 위한 Stream( InputStream class )출력을 하기 위한 Stream (OutputStream class )위의 두마리는 기본 Stream이기 때문에 사용이 상당히 불편하다.조금 편하게 사용하기 위해서 추가적인 Stream을 제공InputStreamReader classPrintWriter class 파일처리를 하려면 어떻게 해야 할까?FileInputStram classFileOutputStream Class 2. FIFO구조먼저보낸 데이터가 먼저 도착하는 구조 3.Stram을 편하게 사용하기 위해서 Stream을 .. 2018. 1. 4.
JAVA 겨울방학 7일차 Thread Scheduler: 공정한 형태로 Thread를 실행 ex)Round Robin 공정하지 않으면 특정 thread가 starvation에 빠짐 Java10(Stream 기반)-Stream은 데이터의 연결통로-입력통로와 출력통로가 따로 존재(입력스트릠과 출력스트림) (InputStream, OuyputSream)데이터가 한쪽 방향으로만 흐른다.하나의 통로를 이용해서 데이터를 보내고 받을 수 없다 package JavaThread; //이 클래스로부터는 instance를 우리가 원하는 만큼 외부에서 생성할 수 있다.//프로그램적으로 해당 클래스로부터 instance를 딱 1개만 생성하도록 제한을 걸 수 있다.->싱글톤 class Exam06_Shared{private static Exam06_S.. 2018. 1. 4.
JAVA 겨울방학 6일차 1. Multi ProcessingCPU안에 Core라는게 있는데 실제 프로그램은 core가 실행해준다.Single Core=>cpu안에 core가 1개 있다. 따라서 single core에서는 멀티프로세싱이 일어날 수가 없다.multi processing은 core가 두개 이상일 때 의미를 가지는 용어 2. Multi Tasking Core의 개수와는 상관이 없다.시분할(Time Slicing)을 통해 시간을 쪼개서 짧은 시간동안 여러 프로그앰을 번갈아 실행시켜 마치 동시에 실행시키는 효과를 얻는 것 3. Multi Threading하나의 프로그램이 여러 단위 Thread로 구성되어 있고이 Thread가 마치 동시에 실행이 되는 것처럼 동작시킬 수 있다4. 프로세스 OS에서 실행중인 하나의 Applic.. 2018. 1. 3.
겨울방학 JAVA 4일차 1. 구조적 프로그래밍 vs 객체지향 프로그래밍 구조적 프로그래밍: 기능으로 세분화 시켜 작성, 빠르고 쉽게 구현이 가능, 유지보수와 재사용이 힘들다. 객체지향 프로그래밍: 유지보수와 재활용성에 초점이 맞춰져 있다. 설계와 구현이 어렵다 2. 객체지향 -Abstraction(추상화) 복잡한 기능, 상태를 단순화시키고 공통적인 내용을 뽀아서 이름을 붙여 표현하는 기법 -Method Overloading 동일한 이름으로 여러개의 method를 class내부에서 선언할 수 있다.(단, method의 signature가 다름) -Information Hiding(정보은닉) 객체가 가지고 있는 정보(field값)보호 -Inheritance(상속) 새로운 클래스를 기존 클래스를 확장해서 만드는 방법 class My.. 2017. 12. 29.
겨울방학 JAVA 3일차 jdbc 연결하기package database; import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;import java.sql.SQLException; public class BookSearch { public static void main(String[] args) {// TODO Auto-generated method stub//데이터베이스 사용은 상당히 간단.(JDBC)//-MYSQL JDBC Driver를 사용하기 위해서 Build Path에 등록Connection con=null;PreparedStatement pstmt=null;Resu.. 2017. 12. 28.
겨울방학 JAVA 1일차 [Java] 클래스 로딩과 메모리 영역 (stack, heap, method area)클래스 로딩1. 클래스를 사용하는 시점에 해당 클래스의 바이트코드가 들어 있는 파일을 찾는다.2. 찾은 파일은 메모리에 로딩된다. 클래스의 바이트 코드는 "Method Area" 영역에 로딩된다. JVM이 관리하는 주요 메모리 영역 1) Stack (스택)메서드가 호출될 때마다 그 메서드의 로컬 변수를 준비하는 메모리 영역메서드 호출이 끝나면 그 메서드를 위해 준비했던 모든 변수가 스택에서 제거된다. 2) Heap (힙)new 명령을 통해 생성된 인스턴스 변수가 놓이는 메모리 영역가비지 컬렉터에 의해 관리된다.가비지 컬렉터가 메모리를 해제하기 전까진 계속 유지된다. 3) Method Area (메서드 영역)클래스의 코드.. 2017. 12. 27.
겨울방학 JAVA 2일차 1일차 복습----------------------------------------------------------------------------------------------------------------------1. 객체지향 프로그래밍-해결해야 하는 문제를 그대로 프로그램으로 모델링-장점: 유지보수성이 좋고, 재활용성이 좋다.-단점: 설계와 구현이 어렵다. 2. 객체모델링해결해야 하는 문제를 구성하고 있는 개체를 판별추상화(Abstraction)객체모델링을 하기 위한 도구: class 3. class의 의미-객체모델링의 수단-ADT(Abstract Data Type)-instance를 생성할 수 있는 근거, 수단 4. JVM(Java Virtual Machine)=>자바프로그램을 실행시켜주는 .. 2017. 12. 27.
점프투자바를 참고했음을 알립니다! 이 카테고리의 글 들은 점프투자바를 참고했음을 알립니다! 2017. 5. 9.