JAVA (41) 썸네일형 리스트형 [JAVA] equals로 문자열 비교할 때 NullPointerException 피하는 방법 equals method 사용 방법 이런 피드백을 듣게 되었다. equals로 문자열 비교할 때 NullPointerException 피하는 방법 1) null 인지 아닌지 체크하고 equals 실행 2) 변수.eqauls(상수)가 아니라, 상수.equals(변수) 형태로 사용 전자는 NullPointerException 발생, 후자는 변수가 null이어도 예외 발생 X 참고 : https://devpouch.tistory.com/3 [JAVA] equals 메서드 사용시 NullPointerException 다루는 팁 JAVA에서 문자열을 비교할때는 주로 equals 메서드를 사용한다. 하지만 equals.() 를 부르는 인스턴스가 null인 경우 NullPointerException이 발생하게 된다... [WIL] 5/08~5/14 컬렉션 프레임 워크 이번주를 정의하자면, 컬렉션 프레임워크에 대한 지식을 확장한 한 주였다. 특히 컬렉션을 활용할 수 있는 문법, 사용 시 헷갈릴만한 점들을 알게 되었다. 조각 지식 컬렉션 프레임워크를 선언할 때 를 굳이 적지 않아도 된다. .contains(Object) : 컬렉션 프레임워크에 해당 Object가 있는지 boolean으로 리턴하는 함수 .isEmpty() : 컬렉션의 사이즈가 0인지 boolean으로 리턴하는 함수 .indexOf(Object) : 해당 Object가 있는 인덱스 중 가장 앞에 있는 인덱스를 리턴한다. (List 인터페이스를 implement하는 클래스들에서만 사용 가능 e.g. ArrayList, LinkedList, Vector, Stack) Array to ArrayList : Arr.. [JAVA] 람다식, Stream, Optional 람다식 익명함수 함수의 구성을 (매개변수 목록) -> {실행문} 으로 간단하게 한 것 한번 쓰이고 말 함수를 람다식으로 선언하면 코드를 간결하게 할 수 있다. 람다식에서 주의해야할 것 (출처 : https://mine-it-record.tistory.com/476) 메서드이름과 반환타입의 경우에는 생략할 수 있다. (대부분 생략한다.) 매개변수의 타입을 추론할 수 있는 경우에는 타입을 생략할 수 있다. (대부분 생략이 가능하다.) 매개변수가 하나인 경우에는 괄호( )를 생략할 수 있다. 함수의 몸체가 하나의 명령문만으로 이루어진 경우에는 중괄호{ }를 생략할 수 있다. (이때 세미콜론은 붙이지 않음) 함수의 몸체가 하나의 return 문으로만 이루어진 경우에는 중괄호{ }를 생략할 수 없다. return.. 스프링 빈과 자동 의존관계 설정 스프링 빈이란? 정의 : 스프링 컨테이너에 등록된 객체 사용 이유 : ① 싱글톤으로 객체 생성 / ② 의존성 자동 주입 싱글톤으로 객체 생성 스프링 컨테이너에 빈(객체)을 등록하면, 스프링은 이 빈을 싱글톤으로 만들어 관리한다. if not…. )) 싱글톤으로 빈을 생성하지 않고, 요청 시마다 객체를 생성한다면 요청이 오는 만큼 객체를 생성해야 한다. 예를 들어, 요청 당 5개의 객체를 생성해야 하는데 초당 500개의 요청이 올 경우 2500개의 객체를 생성해야 한다. 이는 서버의 성능 저하로 이어질 수 있다. 반면 싱글톤으로 bean을 생성하게되면, 시작 시에만 객체가 생성이 된다. 이후 요청이 계속들어오더라도 이미 만들어진 bean이 리턴되기 때문에 성능 저하가 일어나지 않는다. 정리 → 싱글톤으로 .. [스프링 입문] 회원관리 예제 - 도메인, 레포지토리, 서비스 앞선 글을 통해 1️⃣화면을 띄우는 세가지 방법에 대해 알아봤다. 지금부터는 'MVC로 회원관리'라는 목표를 가지고 필요한 개념들을 학습할 것이다. 먼저, 이 글에서는 2️⃣도메인, 레포지토리, 서비스를 개발하고 다음 글에서는 MVC 모델을 구현하기 위해 필요한 개념인 3️⃣'의존성 주입'에 대해 학습하고, 그 다음 글에서는 4️⃣MVC로 회원관리를 해보고, 이를 5️⃣DB와 연결하며 JPA에 대해 배울 것이다. [목차] 1. 비지니스 요구사항 정리 2. 클래스 의존 관계 설계 3. 회원 도메인과 레포지토리 만들기 4. 회원 레포지토리 테스트 케이스 작성 5. 서비스 개발 6. 서비스 테스트 케이스 작성 1. 비즈니스 요구사항 정리 어떤 비지니스 로직을 만들지 결정하기 전에, 무엇인지 요구되는지 정리할 .. [스프링 입문] 화면 띄우기 화면을 보여주는 세가지 방법 정적 컨텐츠 - html 파일을 그대로 보여주는 방법 MVC와 템플릿 엔진 - 백엔드에서 코딩을 통해 html을 동적으로 바꾸는 방법 / 컨트롤러나 템플릿 엔진을 사용함 API - 다른 데이터 포맷(ex. json)으로 클라이언트에게 데이터를 직접 전달하는 방법 정적 컨텐츠 스프링 부트는 기본적으로 resource 폴더 안에 static 폴더를 가지고 있으며 (= resource/static) 이 폴더에서 정적 컨텐츠(html 등)을 찾아 사용한다. 정적이지 않은 html은 resource/templates 폴더에 저장된다. cf. 스프링 부트가 제공하는 Welcome Page 기능 스프링은 resources/static/index.html 파일을 찾아 Welcome page.. BufferedReader, BufferedWriter Scanner와 Syetem.out.print 로도 입출력은 할 수 있지만, 왜 대부분의 알고리즘 풀이에서 BufferedReader/Writer 를 사용하는 것일까? 결론 입력 출력 Scanner BufferedReader System.out.print BufferedWriter 장점 구분자를 설정할 수 있다. (띄어쓰기 or 엔터) 입력받는 데이터의 형식을 설정할 수 있다. (next~~를 통해) Scanner 보다 성능이 좋다. 뒤에 ln을 붙여 자동으로 줄바꿈을 해줄 수 있다. System.out.print보다 성능이 좋다 단점 BufferedReader보다 성능이 안 좋다. 구분자가 오직 enter이다. 입력받는 데이터가 String으로 고정되어있다. 위 특성 때문에 데이터를 가공할 필요가 있다.. [혼공자] Chapter 14-3 입출력 관련 API ▶ System.in 필드 자바는 콘솔에서 키보드의 데이터 입력을 받을 수 있도록 System 클래스의 in 정적 필드를 제공한다. 복습) System 클래스 : JVM이 운영체제의 일부 기능을 사용할 수 있게 하는 클래스 정적 필드 : 객체 생성 없에 클래스의 이름으로 사용할 수 있는 필드 System.in은 InputStream 타입 객체이므로, 바이트 기반 입력 스트림으로서의 역할을 할 수 있다. ▷ System.in으로 키보드에서 줄 단위로 입력받기 System.in 필드를 InputStream변수에 저장한다. 이렇게 만들어진 바이트 기반 입력 스트림 객체를 문자 입력 스트림으로 변환하기 위해 InputStreamReader을 사용한다. 마지막으로, 엔터를 기준으로 읽어오기 위해 BufferedR.. 이전 1 2 3 4 5 6 다음