Java/Java 개념 17

QuickSearch // Java // Lambda

Lambda 함수적 프로그래밍 > Parallel + EventDriven 람다식 > 익명함수 생성식 람다식 > 매개변수를 가진 코드블록 > 익명구현객체 익명구현객체 Runnable runnable = new Runnable() { public void run() { ... } } 람다식 Runnable runnable = () -> { ... }; Method References 메소드 참조 > 메소드를 참조해서 매개변수의 정보 및 리턴 타입을 알아내어 람다식에서 불필요한 매개 변수를 제거 [1] 메소드 참조를 사용하지 않을 경우 (a, b) -> Math.max(a, b); [2] 메소드 참조 static method & instance method 모두 가능 Math :: max obj :: ins..

Java/Java 개념 2019.10.19

QuickSearch // Java // FileSystem

Java IO는 파일의 속성 정보를 읽기 위해 File 제공 Java NIO는 다양한 클래스와 인터페이스 제공 - java.nio.file, java.niofile.attribute File Java IO Path java.nio.file.Path Interface Path path = Paths.get(String first, String... more); Path path = Paths.get(URI uri); get() compareTo() - 경로가 동일하면 0, 상위 경로면 음수, 하위 경로면 양수, 음수와 양수 값의 차이나는 문자열 수 int compareTo(Path other) getFileName() - 부모 경로를 제외한 파일 또는 디렉토리 이름만 가진 Path 반환 Path getFi..

Java/Java 개념 2019.10.14

QuickSearch // Java // Collection

Collection 객체를 효율적으로 관리하기 위한 자바의 자료구조 모음 List 순서 유지 중복 가능 ArrayList 내부 저장 구조에 Array를 사용하는 List 저장용량이 초과하면 자동으로 저장용량을 늘림 List list = new ArrayList(); List list = new ArrayList(30); Vector ArrayList와 동일한 내주 저장 구조를 가짐 ArrayList와 다른 점은 동기화(Synchronized)된 메소드를 가짐으로 ThreadSafety 하다는 것 Syncronized & ThreadSafety? List list = new Vector(); List list = new Vector(30); LinkedList 다음 객체의 주소를 참조하여 체인처럼 관리하는..

Java/Java 개념 2019.10.14

QuickSearch // Java // Stream

Stream 람다 내부반복자 파이프라인 ( 중간처리 & 최종처리 ) 병렬처리 ( 포크조인 ) Creating from collection List list = new ArrayList(); Stream stream = list.stream(); from array String[] arr = {"soul", "music", "child"}; Stream stream = Arrays.stream(arr); from range IntStream stream = IntStream.of(1,2,3,4,5); IntStream stream = IntStream.rangeClosed(1, 100); from file // Files.lines() Path path Paths.get("../memo.txt"); Str..

Java/Java 개념 2019.10.13

학습 // Java // IO // Console

업데이트 :: 2018.10.16 ConsoleConsoleimport java.io.*; /** * # Console * * 키보드로 입력을 받고 화면으로 출력하는 소프트웨어 * 입력 : System.in * 출력 : System.out, System.console() * */ public class Doc_Console { public static void main(String[] args) { systemIn(); systemOut(); } /** * System.in * * @date 2018.10.16 * @author SDM * @version 1.0 * */ public static void systemIn() { try { InputStream is = System.in; int ascii..

Java/Java 개념 2018.10.16

학습 // Java // IO

업데이트 :: 2018.10.16 IO packageIO packagepackage docs.io; import java.io.*; /** * # 스트림이란 * * 스트림은 단일 방향으로 연속적으로 흘러가는 것을 말합니다. * 입력스트림 :: 프로그램이 데이터를 입력 * 출력스트림 :: 프로그램이 데이터를 출력 * * # 자바의입출력 * * 자바는 입출력 API를 "java.io" 패키지에서 처리합니다. * 스트림은 크게 두 종류로 구분되고 사용하는 파일이 다릅니다. * - 바이트(byte)기반 스트림 * - 문자(character)기반 스트림입 * * */ public class Doc_IO { public static String BASE_FILE = System.getProperty("user.di..

Java/Java 개념 2018.10.16

학습 // Java // Stream // Parallel

업데이트 :: 2018.10.01 Stream ParallelStream Parallel/** * # [동시성과 병렬성] * 동시성 :: 멀티 작업을 위해 멀티 스레드가 번갈아가며 실행하는 성질 * 병렬성 :: 멀티 작업을 위해 멀티 코어를 이용해서 동시에 실행하는 성질 * 데이터 병렬성 :: 전체 데이터를 쪼개서 병렬 처리 ( 스트림 ) * 작업 병렬성 :: 서로 다른 작업을 병렬로 처리 ( 웹서버 ) * * # [포크조인 프레임워크] * - 병렬 스트림을 이용하면 런타임시에 포크조인 프레임워크 동작 * - 포크단계 :: 전체 데이터를 서브 데이터로 분리후 병렬처리 * - 조인단게 :: 서브 데이터의 결과를 조합해서 최종결과 도출 * * */ public class Doc_Parallel { publi..

Java/Java 개념 2018.10.01