본문 바로가기

자바5

[JAVA] String.valueOf()와 toString()의 차이에 대해서 알아보자 feat. Effective Java 들어가면서.. AWS에 배포 중인 요양기관 차량 배치 프로젝트에서 에러가 난다는 이야기를 듣게 되었고 리팩토링을 진행하려고 테스트 코드를 작성하다가 원시 타입 배열에서는 toString()이 작동하지 않고 String.valueOf()만 가능한 이유와 둘의 차이에 대한 궁금증이 생겨 글을 작성하게 되었다. 1. 왜 employeeCapacityLeft[i] (원시 타입 배열)은 toString()이 작동하지 않고 String.valueOf로 감싸주어야 할까? toString()은 java.lang.Object 클래스에 정의된 인스턴스 메소드이고 객체 타입에만 동작한다. 따라서 employeeCapacityLeft는 원시 타입으로(int) 변수가 선언되었기 때문에  java.lang.Object 클래스의 .. 2024. 6. 7.
토비의 스프링 3.1 Vol.1 250p ~ 350p 정리 3.5.3 템플릿/콜백의 응용 - 템플릿 / 콜백의 재설계 - 제네릭스를 이용한 콜백 인터페이스 제네릭스를 적용하여 다양한 오브젝트 타입을 지원하는 인터페이스나 메소드를 정의해 보자. //타입 파라미터를 적용한 LineCallback public inteface LineCallback { T doSomethingWithLine(String line, T value); } //타입 파라미터를 추가해서 제네릭 메소드로 만든 lineReadTemplate() public T lineReadTemplate(String filepath, LineCallback callback, T initVal) throws IOException { ... } 3.7 정리 - JDBC와 같은 예외가 발생할 가능성이 있으며 공유 .. 2023. 12. 30.
우테코 6기 프리코스 2주 차 자동차 게임 회고 들어가면서 벌써 프리코스의 2주 차가 마무리가 되었다. 시작한 지 엊그제 같은데 벌써 절반의 과정이 지나갔다니 믿기지가 않는다. 앞으로 2주 차가 남았는데 배워야 할 것은 산더미 같고 갈수록 더 어려워질 난이도에 대한 걱정과 시간이 갈수록 더 잘하고 싶다는 욕심이 생겨서 자꾸 조바심이 들고 지치기도 한다. 하지만 목표를 프리코스를 통한 스스로의 성장에 두고 눈앞에 있는 과제들을 하나하나 해결해나가 보면 언젠가는 우테코 프리코스를 무사히 완주하고 성장한 나 자신을 볼 수 있을 거라고 기대한다! 곧 시작되는 3주차도 파이팅 해 보자!!! (같이 프리코스에 참여하고 계신 많은 분들도 조금만 더 같이 힘내봐요 파이팅!) 2주 차에 무엇을 공부했나? 1. 객체지향과 자바 기본기에 대해 더 공부하였습니다. 1주차 .. 2023. 11. 2.
우테코 6기 프리코스 1주 차 숫자야구 회고 들어가면서 (기존 작성하였던 글의 내용이 날라가서 다시 작성하게 되었습니다 흑흑) 1주 차에 무엇을 공부했나? 1. 기능명세를 잘 작성하는 방법에 대해서 알아보았습니다. 본격적으로 과제를 풀기 전에 어떤 식으로 견고하게 기능명세를 작성 해야 하는지에 대해서 고민을 많이 하였습니다. 그러다가 최근에 읽게 된 객체지향의 사실과 오해라는 책에서 복잡한 시계를 작은 부품으로 구성된 안정적인 형태의 중간 부품을 이용해서 복잡한 시계를 효율적으로 조립하는 내용을 떠올리게 되었고 이 내용을 기능명세에 적용하여 기능요구사항을 최대한 잘게 쪼개고 그것을 큰 범주로 묶어나가는 형식으로 기능명세를 작성할 수 있었습니다. 최근 자바 공부를 시작하면서 책에서 읽었던 내용이 우테코 프리코스에서 실제로 쓰이는 것을 보면서 쾌감을 .. 2023. 10. 26.
백준 2164번 자바 풀이 import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class baekjoon2164 { public static void main(String[]args){ Queue queue = new LinkedList(); Scanner sc = new Scanner(System.in); int a = sc.nextInt(); for(int i = 1 ; i 2022. 3. 1.