본문 바로가기

개발새발 개발자/Java

(10)
[Java] final 그게 뭔데, 어떻게 쓰는 건데 자바 API 문서를 뒤적거리다 final이란 키워드를 발견했습니다. 음 이게 뭐였지...? 하고 기억을 더듬어보니 상수 어쩌구 할 때 썼던거 같긴한데.....(흐릿흐릿) final의 정의 위키피디아에 따르면 Java에서 사용하는 final은 다음과 같습니다. 자바 언어에서 final은 오직 한 번만 할당할 수 있는 entity를 정의할 때 사용된다. final로 선언된 변수가 할당되면 항상 같은 값을 가진다. 만약 final 변수가 객체를 참조하고 있다면, 그 객체의 상태가 바뀌어도 final 변수는 매번 동일한 내용을 참조한다. 즉, 한 번 값을 넣어두면 절대 바뀌지 않는 녀석입니다. 위의 인소 짤에서 남주가 외치는 영원 불멸의 사랑같은...☆ 영어로 final은 다들 알고 있듯 궁극적인, 최후의 등을..
[Java] 데이터 정렬 - Comparable, Comparator 애플리케이션을 만들거나 알고리즘 문제를 풀다보면 데이터를 순서대로 정렬할 일이 많아요. 물론 직접 알고리즘을 구현해도 되겠지만 자바에서 제공하는 기능을 편리하게 이용할 수도 있답니다. 이때 자주 사용하는 Comparable, Comparator에 대해 알아볼게요! 1. Comparable: 오름차순으로 정렬하기 Comparable은 기본적인 정렬을 수행합니다. 즉, 숫자라면 오름차순, 문자라면 알파벳 순으로 정렬합니다. Primitive 타입이나 Integer, String, List 등등 정렬이 필요한 데이터는 모두 Comparable 인터페이스를 implement합니다. 즉, Comparable이 제공하는 정렬 기능을 사용할 수 있다는 거죠! 1) Arrays.sort(): 기본 타입 배열 먼저, 기..
[Java] 콘솔 출력 - OutputStream, BufferedWriter 콘솔 입출력의 마지막 시리즈! 드디어 출력입니다! 1. BufferedWriter BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); BufferedWriter은 BufferedReader처럼 OutputStream을 OuputStreamWriter가 감싸고, 그걸 BufferedWriter가 감싸는 구조로 사용합니다. 어휴 복잡해 T.T 사용법을 자세히 알고 싶으시다면 BufferedReader편을 참고해주세요! BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); bw.write("Hello World!!\n"); 담긴 text를 출력하..
[Java] String 다루기 - parseInt, StringTokenizer, split 지난 번에 콘솔 입력으로 받은 String을 알맞게 다루는 법을 알아볼게요! 1. parseInt: 숫자로 변환하기 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 저번에 살펴본 콘솔 입력편에서 BufferedReader는 String을 반환한다고 했습니다. 만약에 숫자처럼 사용하고 싶다면? 번거롭지만 int로 변환하는 과정이 필요합니다. int n = Integer.parseInt(br.readLine()); 그래서 필요한 게 바로 parseInt입니다! BufferedReader인 br로 받는 text를 전부 int형으로 변환해줍니다. 2. StringTokenizer: 쪼개기 StringTokenizer st = n..
[Java] 콘솔 입력 - InputStream, BufferedReader, Scanner 하던 일만 하다 보면 범위 밖에 있는 기초적인 내용은 어느새 잊어버리게 됩니다. 이번에는 Stream으로 입력을 받아오려다 크게 헤매서 정리해보려고 합니다. 1. InputStream 1996년 JDK 1.0에서 도입된 입출력의 조상님(...)입니다. java.io 패키지에 속해있어요. 1) InputStream: 1byte 읽기 import java.io.InputStream; public class StreamTest { public static void main(String[] args) throws Exception { InputStream in = System.in; int a; a = in.read(); System.out.println(a); } } InputStream 객체의 System...
[Java] JUnit을 이용한 TDD 간단 체험하기(진짜 간단함 주의) 티스토리 에디터가 업뎃되고 처음으로 쓰는 글이다. 와우 너무 쾌적해!!!!!!! 기념으로 TDD 글 씁니다. 야호! 평소 TDD 단어는 많이 들었으나 정확히 뭔지도 모르겠고 찾아보면 '이게 뭐야 몰라 무서워' 같은 어려운 글밖에 없어서 쉽게 도전하지 못하던 중 내 수준에 맞는(...) 적절한 예제를 찾았다. 왕초보들 팔로팔로미. 1. TDD의 개념 Test Driven Development의 약자. 테스트 코드를 먼저 만들고 잘 작동되는지 확인 후에 또 다시 덧붙이고 덧붙이는 방법이다. 검색하면 수많은 고수들이 자세한 설명을 해놓았으므로 그것을 참고하도록 하자. 여기선 '어려운 말은 다 모르겠으니 TDD인지 뭔지 일단 이놈을 뭐라도 경험 해보고싶다' 에서 시작한다! 원래 내가 코드를 짜던 방법 일단 하고..
[Spring] Controller에서 view 만들지 않고 JSON 리턴하는 방법 보통 스프링 강좌들은 controller에서 jsp 페이지를 리턴해 성공 유무를 확인한다. 근데 Spring만 공부하고 싶은데 굳이 jsp 파일까지 꾸역꾸역 만드는 게 너무 귀찮았다. 그래서 날 것의 JSON 데이터로 받는 방법을 찾아봤다. - pom.xml com.fasterxml.jackson.core jackson-databind 2.9.5 일단 jackson을 넣어준다. - controller @RequestMapping(value="/printList") public @ResponseBody CarrierVO printList() { CarrierVO vo = new CarrierVO(); return vo; } 그리고 update, insert 등으로 변경된 vo를 리턴한다. 그럼 이렇게 vi..
[Java] 이클립스 세팅하기(자동 정렬) Java - Editor - Save ActionsPerform the selected actions on Save - Format source code 이렇게 해놓으면 저장할 때마다 줄이 자동으로 정렬된다.