목록Java (41)
코딩 기록들
java 1.8 이후 Calendar 대체하기위해 날짜,시간,날짜시간을 처리할 수 있는 클래스가 3개 추가됨 DateTimeFormatter.ofPattern("yyyy년 MM월 dd일") : 현재시간을 문자타입으로 바꿔줌 LocalDate - 날짜조회 - LocalDate.now : 현재시간 LocalTime - 시분초만 관리가능 -> 쓸 일 별로 없음(업무시작 ~ 업무끝 시간 관리 정도) LocalDateTime (LocalDate + LocalTime) - 년 원 일 시 분 초 다 다룰수 있음 - 자바 1.8부터 : 날짜와 날짜사이의 차이를 구할 수 있다 Period.between(startDate, endDate); - 현재말고 과거나 미래의 시간을 가져오고 싶을 떄 : LocalDate.of(2..
Java 1.8 이전까지는 I/O가 매우 어렵고 복잡했으나, Java 1.8 부터(NIO) 비교적 간편해졌으며, 코드를 분석하기도 쉬워짐 IO / NIO 차이점 IO NIO 입출력 방식 스트림 방식 채널 방식 버퍼 방식 non-buffer buffer (버퍼) 비동기 방식 지원x 지원 블로킹/넌블로킹 방식 블로킹 방식만 지원 블로킹/넌블로킹 모두 지원 스트림 vs 채널 - 스트림 기반(IO) : 데이터를 읽기 위해서 입력스트림 생성 & 출력위해서는 출력스트림 생성 - 채널기반(NIO) : 양방향 입력과 출력이 가능. (입출력을 위한 별도의 채널 만들필요 x) 버퍼 vs 넌버퍼 - 버퍼 사용 (IO) : 보조스트림인 BufferedInput(output)Stream을 연결해서 복수개의 바이트를 한번에 입력..
- Singleton Pattern : Application내부에서 유일한 객체로 사용할 수 있도록 하는 개발 패턴 - Singleton Pattern으로 만들어진 클래스는 Application에서 단 1번만 인스턴스 생성을 할 수 있기 때문에, 처음 만들어진 인스턴스를 변경하지 않고 1개의 인스턴스를 계속 사용할 수 있도록함 - Enum은 Java에서 가장 완벽한(유일한) Singleton Instance ! --> 인스턴스 생성을 할 필요없이 한번 정의하는 것으로 유일한 값으로 사용할 수 있기 때문 -> 따라서, 상수를 파라미터로 받고자 할 경우 Enum을 사용하는 것이 가장 좋은 방법 ! Enum (열거형) - 상수를 파라미터로 받는 메소드가 가끔 필요함 - 만약, 변수로 아래처럼 작성했지만, 상수..
Calendar 자바는 날짜와 시간을 처리할 수 있는 3가지 클래스를 제공 1. Date 2. Calendar 3. LocalDateTime (Java 1.8에서 추가) Calendar - 자바 1.8 미만에서 사용 - 날짜를 제어하는 클래스 - 레퍼런스 타입이지만, 사용할때 Calendar.getInstance() 라고 작성한다 --> 유일한 인스턴스이므로 new하지않고 Calendar(".")getInstance() 로 사용함 - 원래의 인스턴스에서 복제된 인스턴스를 준다 - Calendar이 돌려주는 '월' 은 0부터 시작함 -> Month를 가져올때는 +1 해서 가져와야함 ex) get(Calendar.MONTH) + 1 - Calendar이 돌려주는 요일은 숫자로 돌려준다 : 1(일요일) ~ 7..
File클래스는 파일의 데이터를 읽고쓰는 기능은 지원하지 않음 : 파일의 입출력은 스트림을 사용해야됨 1. 파일을 객체로 생성 File file = new File("C:\\Temp\\file.txt"); 2. 해당 경로에 File / Directory 가 실제로 있는지 확인 booldean is Exist = file.exists(); 3. exist() 리턴값이 false : createNewFile(), mkdirs() 메소드로 파일 / 디렉토리 생성 exist() 리턴값이 true : canExecute(), canRead(), canWrite(). getParent(), getName()등 통해 정보 얻어내기 File Input 파일 읽기 (File System -> Java) - 자바로 파일을..

컬렉션 프레임워크(Collection Framework) Java에서 흔하게 사용되는 여러 자료구조들을 제네릭을 이용해 미리 작성해 놓은 툴 인터페이스와 구현클래스의 종류 1. List (Interface) ArrayList (Implemented class) - (set과 다르게) 중복값을 가질 수 있음 - 배열을 편하게 사용하기 위한 자료구조 - 앞서 만든 ScoreList와 유사 2. Map (Interface) HashMap (Implemented class) - 데이터를 key, value 페어로 가지고 다닐 수 있게 함 - 하나의 데이터가 Key:Value 쌍으로 이루어진 자료구조 - Map -> k(key)값에는 : 문자열(String), 정수(int)를 가장 많이 씀 (+enum) 3. S..
제네릭 & 컬렉션 프레임워크 - 자바 1.5부터 추가됨 (15년 전) - 유연한 데이터 처리를 가능케 하는 Java의 강력한 기능 중 하나 - 자바로 개발을 할 때 안쓰면 안됨. 반드시 알고 있어야됨 - 완전히 중복된 코드인데, 타입만 다를경우 유용하게 사용할수있음 제네릭 자료구조의 형태만 제시하고 실제로 어떤 타입의 데이터가 관리될 것인지는 나중에 결정하는 기술 컬렉션 제네릭을 이용해 Array를 조금 더 다양한 형태로 간편하게 사용할 수 있도록 제공하는 프레임워크 제네릭 - 유연한 자료구조를 만들어낼 수 있음 - 클래스 / 인터페이스 / 메소드 정의할 때 type 을 parameter로 사용할 수 있도록 함 - 사용할 타입을 나중에 정하도록 하는 제네릭을 사용하면 훨씬 더 편리해짐 제네릭 타입 - 타..
Java에서 제공하는 내장 Exception은 Java Application이 동작할 때, 코드의 조건을 만족하지 못했을 때 : -> 지정된 Exception이 발생하도록 되어있음 개발자가 직접 조건을 정의하고 지정된 Exception을 발생시킬 수도 있음 -> 사용자 예외, 커스텀 예외 ex) 사용할 수 없는 ID 입니다. / 이미 사용중인 ID 입니다 / ID는 최소 8글자 이상 입력하세요 / 비밀번호는 영어, 숫자, 특수기호를 사용해 10자리이상 입력하세요 등등 사용자 예외는 항상, 반드시 RuntimeException을 상속받아 생성 public class InvalidUserIdException extends RuntimeException{ } - RuntimeException의 오버로딩된 생성..