Java

    JAVA 자바 웹 개발 Day15 (Code)

    StreamEx01 package day15; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.stream.Stream; public class StreamEx01 { public static void main(String[] args) { List list = Arrays.asList("aaa","bbb","ccc"); //Iteraor Iterator it = list.iterator(); //Iterator 반복자 얻기 while(it.hasNext()) { String str = it.next(); System.out.println(str); } System.out.println("..

    JAVA 자바 웹 개발 Day15 (Note): 스트림, enum

    2022/2/25 스트림 자바 8부터 추가된 컬렉션의 저장 요소를 하나씩 참조해서 람다식으로 처리할 수 있도록 해주는 ‘반복자’이다. 1. 반복자 스트림 (기존에 썼던 Iterator와 같이 반복자 스트림도 비슷한 계열의 반복자이다.) 자바 7 이전까지는 Iterator 반복자 사용하여 컬렉션 요소를 순차 처리함. 이제는 Stream 이용도 가능. 2. 스트림의 특징 Stream은 Iterator와 비슷한 역할을 하는 반복자이지만, 람다식으로 요소 처리 코드를 제공하는 점과 내부 반복자를 사용하므로 병렬 처리가 쉽다는 점, 중간 처리와 최종 처리 작업을 수행하는 점에서 많은 차이를 가지고 있다. (Iterator는 그냥 반복을 하는 건데, 스트림을 사용하면 forEach를 사용하여 반복도 할 수 있고 병..

    JAVA 자바 웹 개발 Day14 (Code)

    RamdaEx01 package day14; //람다의 타겟 인터페이스 생성 //함수적 인터페이스가 되기 위해서는 추상 메서드가 한 개만 있어야 함 @FunctionalInterface public interface Myfunctionalinterface { //public void method(); //public void otherMethod(); //public void method(int x); public int method(int x, int y); } 람다의 타겟 인터페이스 생성 package day14; public class RandaEx01 { public static int sum (int x, int y) { return x+y; } public static void main(Str..

    JAVA 자바 웹 개발 Day14 (Note): 람다식

    2022/2/24 요즘 다시 각광을 받고 있는 함수 식 프로그래밍. 객체 지향과 함수 식을 혼합해서 사용해보자. 자바는 함수 식 프로그래밍을 위해서 람다식을 지원하고 있다. 기존의 코드 패턴이 달라짐. 람다식 : 익명 함수를 생성하기 위한 식으로 객체 지향 언어보다 함수 지향 언어에 가깝다. 예) Runnable 인터페이스의 익명 구현 객체를 생성하는 코드. 람다식은 (매개변수)->{실행코드} 형태로 작성되는데, 마치 함수 정의 형태를 띠고 있지만 프로그램이 돌아가고 있을 때 인터페이스의 익명 구현 객체로 생성된다. 실행될 때 생성이 된다… 어떤 인터페이스를 구현할 것인가는 대입되는 인터페이스에 달려있다. 위에 코드에서는 런어블로 구현이 되니까 런 메서드로 구현이 되는 것. 앞에 선언하는 변수가 중요하다..

    JAVA 자바 웹 개발 Day13 (Code)

    FileEx01 package day13; import java.io.File; import java.io.IOException; import java.util.Date; public class FileEx01 { public static void main(String[] args) { //File f = new File("‪C:\\Windows\\system.ini"); //경로 명을 적을 때 역슬래쉬 두개 (이스케이프 문자로 인식하지 않게). File f = new File("c:\\Windows\\system.ini"); //만약에 복붙해서 넣었는데 파일 크기 인식을 못하면 타이핑해서 넣기 long size = f.length(); //파일 크기 System.out.println(size); Str..

    JAVA 자바 웹 개발 Day13 (Note): 입출력, 파일 클래스, 스트림, 스레드

    2022/2/23 입출력 : java.io io== I/O == Input/Output 개발자 입장에서 input: 사용자가 업로드-> 자바 안으로 가져온다 output: 자바에서 내보내기 -> download File 클래스 : java.io.file 크기, 생성, 삭제, 변경 등등 파일에 관련된 내용을 관리하는 기능. 입출력 기능 x 1. 생성자 File​(String pathname): pathname 파일 전체 경로명을 작성하여 객체 생성 File​(String parent, String child): parent 디렉터리에 child 이름으로 서브 디렉터리나 파일을 작성하며 객체 생성 2. 객체 생성 File 변수 명 = new File(“전체 경로”); //파일에 해당하는 전체 경로를 문자로 ..

    JAVA 자바 웹 개발 Day12 (Code)

    Arraytest01. package day12; import java.util.ArrayList; public class Arraytest01 { public static void main(String[] args) { //arraylist 생성 ArrayList arr = new ArrayList(); //변수를 만듦과 동시에 new를 해줄 때는 뒤에 객체 생성 부분에 //ArrayList(); 이렇게 해줘도 된다. //요소 삽입 arr.add(new Integer(10)); arr.add(new Integer(-5)); arr.add(new Integer(100)); //굳이 이렇게 항상 new 하지 말고 arr.add(20); //이렇게 하면 자동으로 언박싱 되서 들어감. arr.add(30); ..

    JAVA 자바 웹 개발 Day12 (Note): 컬렉션 (ArrayList, Vector, Iterator, HashMap)

    2022/2/22 컬렉션 Collection : 자료구조 과목에서 배우는 많은 자료구조들을 컬렉션으로 만들어 제공. 제네릭이라는 기법으로 구현. 배열이 가진 고정 크기의 단점을 극복하기 위해서 가변 크기의 컨테이너로 만들어져 있음. 가변 크기라서 공간 크기를 염려할 필요가 없으며 중간에 있는 객체를 삭제하면 자동으로 재배열이 됨. 1. 컬렉션을 위한 자바 인터페이스와 클래스 [Collection 상속, 단일 클래스 객체] - Vector*, ArrayList*: 가변 크기의 배열 - LinkedList: 노드들이 링크로 연결되는 리스트 - Stack: 스택 - HashSet: 집합 [Map 상속] - HashMap*: 키(Key)와 값(Value)의 쌍으로 이루어진 값을 저장하는 컬렉션 (*) 별표 된 ..

    JAVA 자바 웹 개발 Day 11 (Code)

    Aip01. package day11; class Point{ int x,y; public Point(int x, int y) { this.x = x; this.y=y; } @Override public String toString() { //#1 return "(" + x + "," + y +")"; //#2 return "Point class: " + getClass().getName()+ "@" + Integer.toHexString(hashCode()); } } public class API01 { public static void print(Point p) { System.out.println(p.getClass().getName()); System.out.println(p.hashCode())..

    JAVA 자바 웹 개발 Day 11(Note): 패키지, API

    2022/2/21 패키지 package : 폴더/ 디렉터리. 서로 관련 있는 클래스나 컴파일된 클래스 파일들을 한 곳에 묶어 놓은 것. JDK는 개발자에게 많은 클래스 파일들을 패키지 형태로 제공한다. rt.jar 압축파일로 제공되며, 내부는 폴더 구조로 정리되어 있는 것이 보인다. 1. 클래스 명 : 원칙적으로는 클래스를 지칭할 때 패키지 명을 포함하는 경로 명을 사용한다. 패키지와 패키지 사이는 점 연산자 사용. ex) java.awt.Color 2. 패키지 필요성: 패키지 단위로 묶어 접근 지정자를 설정해줄 수 있다…… 3. 패키지 사용 : 기본적으로 클래스 사용 시, 패키지 명을 포함한 전체 경로명을 기술해야 함. java.util.Scanner sc = new java.util.Scanner()..