목록Java (16)
코딩 노트
Java Collection Framework(JCF) https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/Collection.html Generic type(내용물의 자료형) 자료형을 지정하는 영역 - int, long과 같은 원시형은 Generic type을 사용할 수 없다. (null 때문) ArrayList a = new ArrayList(): X ArrayList a = new ArrayList(): O - List : 형태가 상관없다는 뜻이다. - 자바에서 가장 많이 쓰는 기술이다. - 자바에서 대용량 데이터를 저장하기 위해 고안한 시스템이다. - 자료구조(Data Structure)의 개념을 구현해 놓은 클래스들이 존..
Scanner 클래스 - 문자열 입력 및 분석 클래스이다. - 키보드 입력은 기능 중 일부분이다. - 파일 뿐만 아니라 홈페이지도 읽어올 수 있다. (웹 크롤링) 1. .next() / 단어별로 읽기 - 띄어쓰기나 개행 등 공백이 기준이다. - 공백이 나오기 전까지를 읽어서 추출하는 명령이다. - 할 일만 하고 남아있는 글자는 관심이 없다. - .hasNext() : 읽을 수 있는 단어가 있는지 판정한다. 2. .nextLine() / 줄별로 읽기 - 개행 문자 기준이다. (enter만 기준으로 해석함) - 다음 입력을 위해 엔터 전까지를 읽고 엔터를 버린다. - 버리는 명령으로 사용한다. - .hasNextLine() : 읽을 수 있는 줄이 있는지 판정한다. 두 가지를 섞어쓰면 문제가 발생한다. (.n..
자바에서 시간을 처리하는 방법 ① System 클래스 → System.currentTimeMillis() ② Date 클래스 → 자바 최초의 시간 관리 클래스(1900기준) ③ Calendar 클래스 → 연도 기준 변경, 날짜 계산 기능 추가 ④ java.time 패키지 → 기존의 시간 관리 문제점 대폭 개선(풀체인지) ② Date 클래스 - 1900년대 기준(비추천) Date 클래스는 시간을 만들어서 찍어내는 것보다는 현재 시간을 불러와서 원하는 형식으로 찍어내는 것에 특화되어 있다. import java.util.Date; Date a = new Date(); Date b = new Date(2023, 7, 11); System.out.println(a); System.out.println(b); 실..
정규표현식 정규표현식이란 문장을 검사하기 위한 식이다. https://regexper.com/ 정규표현식을 쓰는 방법 [가 - 힣] : 한글 처음부터 끝까지 [0 - 9] : 숫자 0부터 9까지 [a - z] : 알파벳 소문자 a부터 z까지 [A - Z] : 알파벳 대문자 A부터 Z까지 [A-Za-z] : 알파벳 대문자와 소문자 처음부터 끝까지 [가 - 힣] : 한 글자 [가 - 힣]{n} : (n글자) [가 - 힣]{3,7} : (3~7글자) [가 - 힣]+ or [가 - 힣]{1} : 한글자 이상 설정 ^[가 - 힣]$ : 시작^ / 끝$ (표현식의 시작을 ^ 로 끝을 $로 표시한다. 1. 올바른 이름 형식인가요? - 모든 글자는 한글로 이루어져 있어야하며, 이름은 2~7글자로 이루어져 있어야 한다...
예외(Exception) - 실행 중 발생하는 돌발상황 자바가 예외가 발생한 상황을 인지하는 경우 1/n 계산기 문제 발생 상황 [1] 인원을 0으로 입력했을 때 Exception in thread "main" java.lang.ArithmeticException: / by zero [2] 금액에 "10원" 이라고 입력했을 때 Exception in thread "main" java.util.InputMismatchException [3] 금액에 소수점을 입력했을 때 Exception in thread "main" java.util.InputMismatchException [4] 엄청 큰 숫자를 입력했을 때 Exception in thread "main" java.util.InputMismatchExce..
생성자가 없는 클래스 클래스는 객체 생성이 주 목적이지만, 객체를 만들 수 없는 클래스들이 있다. Math = a new Math(); System b = new System(); Runtime c = new Runtime(); Integer d = new Integer(10); //만들어지지만 경고가 뜸 생성자가 없다는 것은 생성자가 private이라는 소리이다. (아니면 추상클래스, 인터페이스) 객체를 못 만드는 이유는 2가지가 있다. ① 객체를 아예 못 만들게 하려는 목적 - 모든 구성요소가 전부 다 static이어야 한다. ② 객체를 만들어주는 메소드를 제공하려는 목적 - 구성 요소 중 static이 아닌 것이 있는 경우 Math class (①) - 객체를 의도적으로 생성 불가 처리하고, 전부 ..
JAVA API api oracle 클래스들을 미리 구현하여 사용자가 쉽게 구현하도록 하는 API이다. 이러한 자바 API는 하나의 커다란 클래스 계층구조로 설계되어 있다. api에서 자주 나오는 단어 - prefix 접두사 (앞에 붙는 글자) - suffix 접미사 (뒤에 붙는 글자) 문자열 편집 - 주어진 문자열을 원하는 목적에 맞게 변형하는 것이다. - 문자열은 불변이므로 편집하면 신규 문자열이 생긴다. - 원형을 바꾸고 싶다면 의도적으로 변수에 집어넣어야 한다. - 원래 문자열은 버려지고 새로 들어간다. ① String 클래스를 사용한 문자열 검사 - 전부 또는 일부분에 대한 검사를 위한 명령 String a = "hello"; 이런 식으로 선언하는 것은 클래스의 문법이 아닌 String 클래스의..
Day15 Project 화이트리스트 방식 if(2글자 이상 10글자 이하){ if(운영자 미포함){ //통과 { else{ //거절1 } else { 거절2 } 블랙리스트 방식 if(2글자 미만 || 10글자 초과){ //거절1 } else if(운영자 포함) { //거절2 } else { //통과 } day14 프로젝트에서 로그인 문제 과제에서는 블랙리스트 조건이 맞다. 화이트리스트 조건으로 하면 조건이 많아지면 코드가 꼬일 수 있다. 그리고 2글자 이상 10글자 이하 조건을 먼저 쓰고 운영자 제외 코드를 나중에 쓰는 게 더 효율적인 코드이다. 성능은 안 해도 되는 걸 하면 느려진다. 안 해도 되는 건 하지 말자! ex) if문을 쓸 때 굳이 변수에 조건들을 다 선언하면 불필요한 검사들을 한다. (1..