728x90

Java 12

[Java] Java 코드 실행시간 측정하기

가끔 코드를 작성하다 보면 "이 코드가 실행되는 데는 얼마나 시간이 걸릴까?"라는 생각이 든다. 최근 회사에서 어떤 코드가 테스트할 때 1, 2개 정도를 대상으로는 문제가 없었는데 실제로 사용할 때 그 대상이 늘어나니 파이썬이 처리를 하는데 엄청나게 오래 걸렸다 라는 일이 있었다. 그래서 갑자기 Java와 Python의 코드 실행시간을 측정하는 방법은 어떻게 되는지 궁금해져 찾아보고 정리하게 되었다. 1. System.currentTimeMillis() 이용하기 System.currentTimeMillis()은 현재 시간을 ms 단위로 가져오는 함수다. UTC 시간인 1970년 1월 1일 자정부터 현재까지 흐른 시간을 ms 단위로 반환하는 것이다. long startTime = System.current..

Java 2021.11.12

[Java] 메서드 참조(Method Reference)

👓 Overview 메서드 참조(Method Reference)를 사용하면 불필요한 매개변수를 제거하고 :: 기호를 사용하여 해당 메서드를 표현할 수 있다. 클래스명::메서드명 또는 객체명::메서드명 💡 How to use? 메서드 표현식은 람다 표현식에 대응된다. ✔ 클래스명::인스턴스메서드 - 첫 번째 파라미터가 메서드의 수신자가 되고, 나머지 파라미터는 해당 메서드의 인자로 전달된다. (x, y) -> x.compareToIgnoreCase(y) // lambda expression String::compareToIgnoreCase // method reference ✔ 클래스명::정적메서드 - 모든 파라미터가 정적 메서드의 인자로 전달된다. x -> Object.isNull(x) // lambda..

Java 2021.05.21

[Java] javadoc 정리

JDK에는 javadoc이라는 도구가 포함되어 있다. javadoc은 소스 파일로 HTML 문서를 만든다. Java API 문서는 표준 자바 라이브러리의 소수 코드로 javadoc을 실행한 결과다. 소스 코드에 구분자 /**로 시작하는 주석을 추가하면 javadoc을 이용하여 전문가 수준의 문서를 손쉽게 만들 수 있다. 1. 문서화 주석 1.1 주석 넣기 ▷ javadoc 추출 정보 javadoc 유틸리티는 패키지, 공개 클래스와 인터페이스, 공개/보호 변수, 공개/보호 생성자와 메서드 정보를 추출한다. 기능 각각에 주석을 달 수 있고, 주석은 설명할 기능 바로 위에 /** 로 시작하고 */ 마쳐 작성할 수 있다. 문서화 주석(/*_ ... _/)에는 자유 형식 텍스트와 태그들을 적는다. 태그는 @aut..

Java 2021.05.04

[Java] 와일드 카드가 들어간 IP 검사하기!

문자열로 입력된 "123.45.67.89"와 같은 IP를 "123.45.67.*"과 같은 와일드 카드가 들어간 IP 형식과 비교하는 기능을 만들어야 했다. ​ 처음 딱 든 생각은 3번째 자리까지 잘라서 비교하면 되겠네~ 하는 생각이었다. 비교 할 아이피들을 String 타입에서 지원하는 메서드인 substring 메서드를 이용해서 잘라낸 뒤 비교하면 어차피 마지막 자리의 *이 모든 범위를 뜻하므로 해결되는 일이었다. public class IpValidTest { public static void main(String[] args) { String ip = "158.23.1.39"; String validIp = "158.23.1.*"; boolean check = ip.substring(0, ip.la..

Java 2020.07.13

[Java] 객체 생성 패턴

Java 객체 생성 방법 1. 점층적 생성자 패턴 점층적 생성자 패턴을 만드는 방법은 다음과 같다. 필수 인자를 받는 필수 생성자 를 하나 만든다. 1개의 선택적 인자를 받는 생성자를 추가한다. 2개의 선택적 인자를 받는 생성자를 추가한다. ... 모든 선택적 인자를 받는 생성자를 추가한다. // 점층적 생성자 패턴 코드의 예 public class Member { private final String name; // 필수 인자 private final String age; // 선택적 인자 private final String location; // 선택적 인자 // 필수 생성자 public Member(String name) { this(name, "나이 비공개", "지역 비공개"); } // 1개의..

Etc/2020 2020.06.09

[Java] 객체 지향 프로그래밍(OOP, Object Oriented Programming)

객체 지향 프로그래밍 (Object Oriented Programming, OOP) 1. OOP (Object Oriented Programming) 객체 지향 프로그래밍이란 이전의 컴퓨터가 사고하는 대로 프로그래밍을 하는 컴퓨터 중심적 패러다임과는 다른 인간 중심적 패러다임 프로그래밍이라고 할 수 있다. 즉, 현실 세계의 사물들을 객체라 보고, 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍하는 것을 말한다. 1.1 클래스(Class) 연관되어 있는 변수와 메서드의 집합으로, 객체를 만들어 내기 위한 설계도 혹은 틀이라고 볼 수 있다. 1.2 객체(Object) 속성(Field, 변수)과 행위(Method)로 객체를 표현한다. 소프트웨어 세계에 구현할 대상이다. 클래스에 ..

Etc/2020 2020.06.08

[Java] StringBuffer / StringBuilder

Java에서 문자열을 다룰 때 String을 주로 사용하게 된다. 하지만 String은 새로운 값을 할당할 때마다 새로운 주소 값이 생성되어 할당된다. 이 때문에 String 값이 계속해서 변하게 되면 새로운 String의 주소 값들이 Stack에 쌓이게 되고 이는 Garbage Collector가 돌기 전까지 메모리에 쌓이게 되기 된다. 따라서 계속해서 문자열을 변경하는 경우에는 값을 메모리에 append 하는 방식인 StringBuffer와 StringBuilder를 사용하는 것이 좋다. 1. StringBuffer, StringBuilder 기본적으로 StringBuffer와 StringBuilder의 사용법은 동일하다. 둘의 가장 큰 차이점은 StringBuilder는 멀티 스레드 환경에서 안전하..

Java 2020.06.02

[Java] BufferedReader / BufferedWriter 사용법

코딩 테스트 문제를 풀어보기 위해 Beakjoon Online Judge에서 기초부터 문제를 풀고 있는데 15552번 "빠른 A+B" 문제에서 BufferedReader, Writer에 대해 알게 되었다. 아마 대학에서 배웠을 테지만 쓰지 않다 보니 잊은 것 같다. 1. Buffer BufferedReader와 BufferedWriter는 버퍼를 이용해서 읽고 쓰는 클래스로, 버퍼를 사용하기 이용하기 때문에 이 함수를 이용하면 입출력의 효율이 좋아진다. 키보드나 모니터와 같은 외부 장치와의 데이터 입출력은 CPU의 성능 차이가 크기 때문에 버퍼를 두고 모아두었다 한 번에 전송하는 것이 효율적이다. 2. BufferedReader BufferedReader는 개행 문자를 경계로 인식하고 받은 데이터가 St..

Java 2020.06.01

JSTL(JSP standard tag library) 주요 태그 문법 정리

1. JSTL? 자바서버 페이지 표준 태그 라이브러리(JavaServer Pages Standard Tag Library)는 Java EE 기반의 웹 애플리케이션 개발 플랫폼을 위한 컴포넌트 모음으로, JSP 페이지 내에서 자바 코드를 바로 사용하지 않고 로직을 내장하는 효율적인 방법을 제공한다. JSTL의 종류 라이브러리명 접두어 URI 기능 Core c http://java.sun.com/jsp/jstl/core 변수 지원, 흐름 제어, URL 처리, 기타 XML x http://java.sun.com/jsp/jstl/xml XML 코어, 흐름 제어, XML 변환 Internationalization fmt http://java.sun.com/jsp/jstl/fmt 로케일, 메세지 형식, 숫자 및 날..

Etc/2020 2020.05.28

시험 준비용 Java 기초, SQL, Spring 정리본

📝 시험 준비 @May 13, 2020 Java static, final 차이점 static : Java에서 static 키워드를 사용한다는 것은 메모리에 한 번 할당되어 프로그램이 종료될 때 해제되는 것을 의미 → 클래스에 고정된 필드와 메소드 - 정적 필드, 정적 메소드 (모든 객체가 공유할 수 있다고 해서 클래스 변수, 클래스 메소드라고도 부름) 일반적으로 우리가 만드는 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 객체는 Heap 영역에 생성, 객체의 생성 시에 할당된 Heap 영역의 메모리는 Garbage Collector를 통해 수시로 관리를 받음 static 키워드를 통해 Static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리라는 장점을 지니지만, Garbag..

Etc/2020 2020.05.12
728x90