본문 바로가기

분류 전체보기

(186)
JAVA(2022.05.27) - Byte 단위 입출력 심화 Byte 단위 입출력 심화 - 입출력 클래스는 클래스의 이름이 InputStream이나 0utputStream으로 끝난다 - 파일 읽을 때는 FileInputStream으로 읽게 된다 - FileInputStream안에 있는 read()메소드는 기본적으로 1byte 단위로 읽게 된다 buffer를 사용하지 않고 읽으면 stream은 512바이트를 가져와서 1바이트를 읽는 과정을 거치기에 매우 비효율적이다 buffer를 사용하면 512바이트씩 가져와서 읽기 때문에 매우 효율적이다 ex) 1024명의 승객을 512인승 비행기에 1명만 태우고 여러번 왔다갔다 하는 것보다 512명을 다 태우고 2번 반복하는게 더 효과적인 것과 같은 맥락 ///파일을 빨리, 내가 원하는 byte만큼 읽어오는 코드 public c..
JAVA(2022.05.26) - Byte단위 입출력 Byte단위 입출력 코드를 통해 살펴보도록 하겠다 FileInputStream > 파일을 읽어오는 객체 FileOutputStream > 파일에 쓸 수 있게 해주는 객체 read()메소드는 읽을 값이 있을때는 항상 양수를 , 더 이상 읽을 값이 없을 때 -1을 return한다 public class ByteIOExam1 { public static void main(String[] args){ FileInputStream fis = null; //파일을 읽는 객체 FileOutputStream fos = null; //파일을 쓰는 객체 try { fis = new FileInputStream("src/javaIO/exam/ByteExam1.java"); fos = new FileOutputStream("..
JAVA(2022.05.25)-자바IO 자바IO - Input과 Output의 약자이다 - 내부 또는 외부장치와 프로그램 간의 데이터를 전송가능케 하는 지점 Stream - 입력이나 출력이 표현된 데이터의 흐름 - 운영체제에 의해 생성된 가상의 연결 고리이자 중간 매개자 - 한 방향으로만 통신할 수 있으므로 입력과 출력을 동시 처리 불가 - 입력 스트림(InputStream)과 출력 스트림(OutputStream)으로 나뉨 - 인스턴스를 생성해서 사용해야함 InputStream method explanation abstract int read() 해당 입력 스트림으로부터 다음 바이트를 읽어들임 int read(byte[] b) 해당 입력 스트림으로부터 특정 바이트를 읽어들인 후, 배열 b에 저장함 int read(byte[] b, int of..
JAVA(2022.05.24)-java.time패키지 java.time패키지 - thread-safe하다 객체생성하기 현재를 기준으로 LocalDate ld = LocalDate.now(); > 현재 날짜 생성 2022-05-24 LocalTime lt = LocalTime.now(); > 현재 시간 생성 20:01:15.13414 LocalDateTime ldt = LocalDateTime.now(); 현재 날짜와 시간 생성 ZoneDateTime zdt = ZoneDateTime.now(); 현재 날짜와 시간, 지역 생성 내가 지정해서 생성 LocalDATE ld = LocalDate.of(2022, Month.MAY, 24); LocalTime lt = LocalTime.of(20,10) 20시 10분 LocalTime lt2 = LocalTime.p..
JAVA(2022.05.23)-Date,Calendar Date - Date는 지역화가 불가능하다(지역에 따라 시간,통화,언어가 고려되어지지 않는다는 의미이다) - Date클래스는 Deprecated되어있다(사용권장X) - date.toString()메소드를 통해 현재 시간을 문자열로 구할 수 있다 - java.util.SimpleDateFormat클래스를 통해 원하는 형태로 출력할 수 있다 SimpleDateFormat ft = new SimpleDateFormat("yyyy.MM.dd 'at' hh:mm:ss a zzz"); System.out.println(ft.format(date)); Calendar - Calendar클래스는 추상클래스이다 - get메소드를 사용한다 사용방법 int yyyy = cal.get(Calendar.YEAR); int mo..
프로그래머스 연습문제<핸드폰 번호 가리기>-5.11일 수정 문제설명 프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다. 전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요. phone_number return "01033334444" "*******4444" "027778888" "*****8888" 내가 작성한 코드 class Solution { public String solution(String phone_number) { String answer = ""; String star = ""; int f = 0; char[] arr = new char[4]; for(int i = phone_n..
JAVA(2022.05.22)-Generic Generic - generic이란 데이터 타입을 일반화한다는 것을 의미한다 - 사용자가 외부에서 필요에 의해 데이터 타입을 지정한다 - Static 변수는 제네릭을 사용할 수 없다 Type 타입 설명 Type Element Key Value Number 선언방법 package org.opentutorials.javatutorials.generic; class Person{ public T info; } public class GenericDemo { public static void main(String[] args) { Person p1 = new Person(); Person p2 = new Person(); } } 출처: 생활코딩(https://opentutorials.org/course/1223..
JAVA(2022.05.21)- Collections Framework Collections Framework - 자료를 저장할 수 있는 구조인데, 쉽게 말하면 다양한 자료구조를 잘 관리하기 위한 것이 Collections Framework다 기본구성 구조 List ArrayList - 배열과 달리 크기를 미리 지정하지 않기 때문에 원하는만큼 값을 저장할 수 있다 - 값을 추가할때는 이름.add(값)을 사용한다 - 배열은 값의 개수를 구할 때 .length를 사용하지만, ArrayList는 .size를 사용한다 - 배열은 값을 가져올때 배열[인덱스번호]이지만 ArrayList는 이름.get(인덱스번호)를 사용한다 - 제네릭을 사용하여 선언하고 선언방식은 ArrayList 이름 = new ArrayList(); - 중복을 허용한다 Set HashSet - HashSet은 중복..