Java(50)
-
[Java] 배운점
Distribute Architecture 1. 등록 2. 찾기 3. 요청 (객체의 직렬화) 받을 때, (객체의 역직렬화 필요) 4. 응답 (객체의 직렬화) 받을 때, (객체의 역직렬화 필요) 서비스를 등록하고 제공해주는 제3의 저장 장소(Registry) 필요 인덱싱이 중요 빠르게 검색할 수 있는 알고리즘이 필요 ex) DNS 데이터를 저장하는 공간(Repository) 서버, 클라이언트에 대한 정보는 프록시에서 받는다. JNDI initialcontext 플랫폼 독립적 런타임에 바이트코드로 바뀜 Java Runtime Environment(JRE) Web Container ex) tomcat web server ex) apache, engineX application server web applica..
2024.01.10 -
[Java] Scanner vs BufferedReader
결과적으로 BufferdReader가 더 유리하다. 첫번째 이유는 BufferedReader는 Scanner의 데이터를 읽을때 발생하는 문제가 없다. Scanner의 문제 - nextX에 해당하는 7개의 메소드는 개행이나 공백 전까지만 읽는다. (nextInt(), nextFloat(), nextByte(), nextShort(), nextDouble(), nextLong(), next()) - nextLine은 개행까지를 읽는다. - 만약 다음과 같은 코드가 있다고 하자. import java.util.Scanner; class Solution { public static void main(String args[]) throws Exception { Scanner sc = new Scanner(Syst..
2024.01.07 -
[Java] interface 기본 접근제한자
public이다.
2024.01.03 -
[Java] 인자로 함수를 받는 고차함수를 통해 리팩토링 하기
아래의 두 함수를 보면 내용이 상당히 겹침을 알 수 있다. 다른 부분은 InputProcessor 클래스의 메소드와 그 인자로 넣어지는 InputView의 메소드이다. 즉, 어떤 메소드를 쓰는지만 달라진다. 그렇다면 인자로 함수를 넣어줘서 두 메소드를 하나로 합칠 수는 없을까? private static int getDate() { while (true) { try { return InputProcessor.processDateInput(InputView.readDate()); } catch (IllegalArgumentException e) { System.out.println(e); } } } private static PreOrder getPreOrder() { while (true) { try {..
2023.11.13 -
[Java] Google Java Code Style Sheet에 대한 나름의 이해
license, package, import, class 순이고 한 공백라인씩 띄운다. static class가 있으면 띄워준다. 오버로딩된 메소드는 무조건 붙여서 나열한다. 메소드를 나열할 때 논리적으로 나열한다. 생성순으로 하지 않는다. 중괄호는 무조건 쓴다. 비어있거나 한문장이더라도 써라. 아래와 같은 형태로 쓴다. if (userCarsInputs.length == 0) { throw new IllegalArgumentException("하나 이상의 이름을 적으셔야 합니다."); } {}를 쓸 수 있는 경우는 try-catch와 같은 멀티블록이 아닌 비어 있는 경우이다. ------ 여기는 우테코 부분 들여쓰기 4 열제한 120 들여쓰기 지속은 최소 8 ------ 라인 래핑은 패키지, 임포트에 ..
2023.11.01 -
[Java] Test 코드 돌릴 때 input에서 no line이 뜬다면
input으로 아무것도 안넣어줘서 그렇다. 다음과 같은 코드를 감싸주면 된다. String simulatedInput = "inputValue"; System.setIn(new ByteArrayInputStream(simulatedInput.getBytes())); /* your code */ System.setIn(System.in);
2023.10.31