본문 바로가기

Java

(13)
if문 없이 문자열 계산하기 (feat. 전략패턴, Enum) 우아한테크코스 첫 주차 서브미션은 문자열 계산기를 if문 없이 해결하기로 단위 테스트 연습을 위한 서브미션이었습니다. 문제는 간단합니다. 3 + 2 * 4 / 10 문자열을 space 기준으로 split하고 계산합니다. (사칙 연산 우선순위는 무시합니다) if문을 사용하면 쉽게 해결할 수 있습니다. 하지만, 'if문을 사용하지 말라'는 추가 미션을 받았고 해결한 과정을 적어보겠습니다. 코드의 구성 if문을 이용한 코드 전략 패턴 적용 enum 활용 Java8 활용 최종 완성본 먼저 if문을 사용한 기존 코드를 보겠습니다. if문을 이용한 코드 public class TextCalculator { public static double calculate(String inputText) { String tok.. Java 2019. 5. 12. 17:35
Java는 Call by Value? Call by Reference? 얼마 전에 같이 공부하는 형이 갑자기 물어봤다.자바는 call by value와 call by reference중 어떤 게 맞을까?그 때 형이 내린 결론은 '자바는 call by value지만 이걸 굳이 나누는 것은 무의미한 거 같다. 이것은 C언어의 잔재다.' 이었다. 하지만 오늘 자바의신을 읽는데 책에 또 이 부분이 언급됐었다. (책에서는 call대신 pass로 표기했는데 똑같은 의미다)책에서는 이렇게 말한다.- 모든 기본 자료형은 pass by value- 참조 자료형은 값이 아닌 참조가 전달되는 Pass by Reference 난 그래서 여기서 또 혼란이 왔다. 내가 잘못 알고 있는건가? 그래서 다시 한번 알아봤고 나같이 혼란스러워하는 사람들이 많아서 해답을 찾기는 쉬웠다. 질문: 자바는 "pas.. Java 2019. 3. 5. 15:09
자바 입출력 IO 참고 : 자바의 정석 + 수업내용1. 입출력1.1 입출력이란?I/O란 Input과 Ouput의 약자로 입력과 출력, 간단히 줄여서 입출력이라고 한다. 입출력은 컴퓨터 내부 또는 외부의 장치와 프로그램간의 데이터를 주고받는 것을 말한다. 예를 들면 키보드로부터 데이터를 입력받는다던가 Sysyem.out.println()을 이용해서 화면에 출력한다던가 하는 것이 가장 기본적인 입출력의 예이다.1.2 스트림스트림이란 데이터를 운반하는데 사용되는 연결통로이다. (물을 마시는 빨대)스트림은 단방향통신만 가능하기 때문에 하나의 스트림으로 입력과 출력을 동시에 처리할 수 업성서 입력스트림(inputSream)과 출력스트림(outputStream) 2개의 스트림이 필요하다. 2. 스트림의 종류스트림은 바이트 단위로 처.. Java 2018. 11. 30. 16:39
Comparator와 Comparable의 차이 + 람다표현식 Comparator와 Comparable은 모두 인터페이스로 객체들을 정렬 또는 이진검색트리를 구성하는데 필요한 메서드를 정의하고 있다.Comparable - 이 인터페이스를 구현한 객체 스스로에게 부여하는 한 가지 기본 정렬 규칙을 설정하는 목적으로 사용한다.Comparator - 이 인터페이스를 구현한 클래스는 정렬 규칙 그 자체를 의미하며, 기본 정렬 규칙과 다르게 원하는대로 정렬순서를 지정하고 싶을 때 사용한다. 1. Comparablepublic class Book implements Comparable { private int price; public Book(int price){ this.price = price; } public int getPrice(){ return this.price;.. Java 2018. 11. 29. 17:59
객체, 클래스, 인스턴스의 차이 객체, 클래스, 인스턴스객체 -> class(설계도) -> 메모리에 올라가면 인스턴스객체 - 구현할 대상 (모든 인스턴스를 대표하는 포괄적인 의미)클래스 - 객체를 구현하기위한 설계도인스턴스 - 객체의 설계도에 따라 구현된 복사본. JVM은 해당 인스턴스를 메모리 공간에 할당한다. -----래퍼런스타입 ---------- 생성자 스포츠카 c = new 스포츠카(); ---------------- 메모리에 인스턴스(갹체)를 생성해달라. = : c라는 변수가 스포츠카 인스턴스를 참조한다. ​ 자동차 c = new 자동차(); (X) 자동차 c = new 스포츠카(); (자동차 기능만 사용) ​ 모든객체 = 재사용x - 현재 프로젝트에 충실 추상화 = 필요한 것만 남기고 불필요한건 없앤다. 더 이상 참조하는 .. Java 2018. 11. 29. 17:52