목록중앙 HTA (2106기) story/java API story (15)
날아라쩡글이의 블로그입니다.
자바에서 nullPointerException이 발생하는 것을 방지하기 위해서 만든 API이다. 자바 8에 도입된 API이다. nullPointerException을 피하기 위해서 null인지 아닌지 null을 검사하는 기능이 포함된 optional가 추가되었다. optional는 null이 될수도 있는 ㄱ밧을 값싸는 wapper클래스다. 주요API optional.of(T value) null아닌 값이 저장된 optional객체를 반환한다. optional.ofNullable(T value) null일수도있는 값이 저장된 optional객체를 반환한다. optional.empty() 아무값도 가지고 있지 않은 비어있는 optional객체를 반환한다. ifPresent() optional객체에 저장된 값..
java 8부터 추가된 API이다. 배열이나 콜렉션에 저장된 데이터를 처리하기 위해서 도입했다. 이전에는 for문과 iterate를 사용해서 처리했다. 다양한 방식으로 저장된 데이터를 처리하기 위한 공통적인 처리방법을 제공한다. 배열과 콜렌션, 파일에 저장된 데이터를 통일시켜버린다. stream API의 특징 내부방법을 통해서 작업을 수행한다. List numbers = List.of(10,20,30,40,50); for(int num : numbers) { System.out.println(num); //외부반복 } numbers.stream().forEach(job -> System.out.println(num)); //람다식을 이용한 내부반복 스트림은 단 한번만 사용가능하다. 일회용이다. 연결하려면..
Stream이란 읽거나 보내는 것을 의미한다. int read(byte[] buf) 미리 byte[]객체를 만들고, 읽어온 데이터를 순서대로 저장, byte[]에 저장된 값이 124KB일 경 반환값은 int값으로 지정, int값은 배열에 저장된 값으로 int로 저장된다. BufferedInputStream 읽기기능을 성능을 향상시킨다. DataInputStream DataOutputStream 출력데이터를 읽어옴 DataIntputStream은 출력데이터가 읽을 입력데이터를 작성한다. 타입의 값 그대로 출력시킨 값을 읽어서 원래 값으로 복원시키는 스트림 값의 자료형도 같이 내보냄(값 + 데이터타입) writeInt() ->readInt() 그 값의 그대로 보관 writeUTF()->readUTF() 값을..
I/O는 java.io package에 포함되어 있는 클래스 이다. App에서 리소스를 읽어오거나 App에서 데이터를 목적지로 출력하는 작업을 수행하는 클래스이다. 내 App이 기준점으로 자원을 읽어오면 Input File을 출력하면 OutPut 으로 방향에 따라서 읽어오는 Stream와 내보내는 Stream이 존재한다. 클래스의 종류의 경우 한번에 읽고 쓰는 데이터에 따라서 구별이 가능하다. ByteStream(바이트스트림) 한번에 한 1bite씩 읽고, 쓸 수 있는 스트림 바이너리데이타를 다룸 010101형태로 읽는 스트림 InputStream, OutputStream FileInputStream, FileOutputStream BufferedInputStream, BufferedOutputStrea..
필요에 따라서 try~catch문의 예외처리를 할 수 있다. 강제 예외 발생시키기 새로운 예외를 발생시키는 것 예외 변환하기 발생한 예외를 try ~ catch하고 다른 예외를 발생시키는 것. User의 class를 정의 한다. UserManager class을 작성한다. private로 List userList = new ArrayList(); 입력받을 User ArrayList를 작성하고, public method를 입력한다. 반환타입은 없는 void로 입력했다. for문으로 User userList에 입력된 값을 출력하고, if문으로 getId()가 동일한 경우 throw new RuntimeException(아이디 중복 (원인작성)); if문으로 getName()이 동일한 경우를 입력한다. thr..
숫자, 날짜, 문자를 일정한 포맷(형식, 패턴)의 텍스트로 바꾸는 것 100000000 ->"100,000,000"으로 변환하고 싶음. 날짜를 "2021-10-08","2021년 10월 08일"로 변환하고 싶을 때 사용하는 API이다. Java API -> java.text ->DateFormat, SimpleDateFormat, MessageFormat, DecimalFormat이 존재한다. DateFormat 시스템의 현재 날짜와 시간정보를 포함하고 있는 Date객체를 생성한다. Date date = new Date(); y M d E a H h m s S 년 월 일 요일 오전/ 오후 시 (0~23) 시 (1~12) 분 (0~59) 초 (0~59) 밀리초 (0~999) Date객체를 toString(..
자연수의 범위에서 난수를 발생시키고 싶을 때에는 math.random보다는 Random객체가 더 편하다. for(int i =1; i
Java.util.Arrays static메소드만 있다. 배열과 관련된 기능을 제공하는 유틸리티 클래스 복사, 비교, 검색, 정렬 등의 기능을 제공한다. Java.util.Collections 자료구조와 관련된 기능을 제공하는 유틸리티 클래스 복사, 비교, 검색, 정렬등의 기능을 제공한다. Java.util.Objects 객체와 관련된 기능을 제공하는 유틸리티 클래스 S로 끝나는 클래스는 유틸리티 클래스라고 불리운다. method Arrays.asList(E....e) 지정된 객체들이 저장된 List 자료구조 객체를 반환한다. java.util.Array$ArraysList가 만들어져서 반환된다. Collections.sort(Listlist) List객체에 저장된 요소들을 오름차순으로 정렬한다. Col..
Map List> Map> Set의 순으로 사용이 많이 된다. Map으로 데이터를 Key와 Value의 쌍으로 연결지어서 저장하는 객체이다. Key와 Value의 쌍을 표현하는 객체는 Entry이다. Map.Entry의 집합체를 Map라고 부른다. Key는 값을 대표하는 값이다. Key는 중복될 수 없다. Key는 UNIQUE한 값이다. Key의 타입은 보통 String, Integer, Long의 타입이 주로 사용된다. Value는 실제로 Map에 저장할 정보를 가지고 있는 객체다. 보통 ValueObject가 Value의 타입으로 주로 사용된다. 다양한 객체를 다룬다. 중요한 내용이 들어간다. Key Value Map 학번 학생 객체 Map 주문번호 주문정보 객체 Map 사용자 아이디 사용자 정보 객..
java.Lang.package안에는 Object,List,Set,Map,ArrayList,HashSet,HashMap,LinkedList,TreeSet,HashTable,Stack,Vector Date,Arrays,Collection,Objects,Random,Calendar 이 존재한다. 첫번째의 경우는 자료구에 해당되며 오늘 작성할 친구들이다. Collection Framwork란 Framwork란 개발방법을 구체화 시켜놓은것 자바의 자료구조를 구현해 놓은 것, 자료구조를 구현해 놓은 것 자료구조란 객체의 저장/삭제/조회 등의 기능을 제공한것 다른 객체를 다룰때, 꺼내고, 삭제하고, 확인할 때 사용하는 방법이다. 자바의 모든 자료구조의 구현 클래스는 Collection인터페이스를 구현한 클래스이다...
web에서 활용도가 많은 class이다. java.base에 존재한다. 자바 5부터 추가되었다. , 한글자가 아닌 여러글자도 존재한다. 소스레벨에서 데이터 타입이 결정되지 않고, 별칭(타입파라미터) 만 지정한다. 데이터타입은 필드의 타입, 매개변수 타입, 리턴타입등이다. 객체 생성시점, 구현클래스 구현시점, 메소드 실행시점에 별칭을 대신할 데이터 타입을 외부에서 지정하는 것이다. 클래스나 인터페이스 옆에 header처럼 적어 놓았다. 제네릭은 다이아몬드표기법으로 타입파라미터(별칭)을 지정한다. 객체생성시점, 구현클래스구현시점, 메소드실행시점에 데이터타입을 지정한다. 데이터타입은 클래스 혹은 인터페이스타입만 가능하다. 기본자료형은 제네릭의 데이터타입으로 지정할 수 없다. 제네릭이 나오게 된 이유 Box라는..
System class 자바실행환경이 설치된 시스템(컴퓨터)에 대한 유용한 값과 객체를 제공하는 클래스이다. java.lang패키지에 속해있다. System 클래스의 모든 필드와 모든 메소드는 정적필드, 정적 메소드이다. 제공하는 것은 err : error를 출력한다.(모니터, 콘솔) PrintStream print, println, printf in : 표준입력을 출력한다.(키보드) InputStream read method out : 표준출력을 출력한다. (콘솔, 모니터) PrintStream System.out.println(System.err);//java.io.PrintStream@7d6f77cc System.out.println(System.in);//java.io.BufferedInputSt..
StringBuilder StringBuffer 둘의 사용방법은 동일하다. String이란 문자열 자체를 표현하는 객체이다. 문자열의 표현이라고도 불린다. String의 경우 불변성으로 인하여 +연산자를 이용하여 값을 연결시키면 연산시킬 때마다 새로운 String 객체가 생성된다. "홍길동" + 100 + 70 + 60; "홍길동" 새 String 객체가 생성된다. "홍길동100" 새 String객체가 생성된다. "홍길동10070" 새 String객체가 생성된다. "홍길동1007060" 새String객체가 생성된다. 최종 문자열 "홍길동1007060"이 만들기 위해서 String의 객체3개가 추가로 생성되었다. 따라서 , +연산자를 사용하는 것은 불필욜한 String객체를 생성하게 되고, 메모리 낭비의 ..
문자열을 표현하는 객체다. 문자열은 불변객체다. 한번 생성된 문자열은 절대로 변하지 않는다. String은 생성된 방법에 의해서 Class에서 상속이 되는지 new연산자로 객체가 생성이 되는지 다르다. String이 불변객체라는 의미는 한번 만들고는 변하지 않는 값이라는 의미이다. 즉, 상수라는 것이다. String은 ="";으로 생성할 수 있다. 그렇게 생성하면 이것은 new라는 연산자로 객체가 생성된 것이 아닌 class 변수로 상수들이 모여있는 상수풀이라는 저장공간에 Student라는 객체가 생긴다. 그리고 equals가 객체의 내부의 단어를 비교한 동등성의 법칙처럼 같은 단어가 존재하면 Student객체를 따로 생성하지 않고 참조변수를 ConstantPool 주소값에 연결한다. class는 변수,..
API(Application Programming Interface) 어플리케이션을 개발할 때 사용할 수 있도록 지원하는 라이브러리 응용프로그램의 Application을 개발할 때 많이 사용함 어떤 클래스와 인터페이스가 모여있는 집합(라이브러리) Java API(Java Application Programming Interface) 자바를 이용해서 어플리케이션을 구현할 수 있도록 지원하는 라이브러리들의 집합 자바에서는 개발자들의 구현부담을 최소화하기 위해서 시스템, 입출력, 화면처리, 네트워크, 스레드등을 구현할 때 필요한 클래스 / 인터페이스(표준안)나 클래스들을 미리 구현해서 제공하고 있는데 이것을 JavaAPI라고 한다. ->즉, 미리 구현 해둔 것 다른 언어들로 이뤄진 API가 있다. String..