본문 바로가기
반응형

Java7

[Java/자바] 날짜-Date의 모든 것 (현재-내일 날짜, Date 포맷 변환, 날짜 차이 계산, 더하기, 빼기) ⚡️자바의 날짜 숙박 예약 프로젝트를 진행하다보니 날짜를 다룰 일이 많았습니다. 현재 날짜 구하기 날짜 더하고 빼기 두 날짜 계산하기 프론트와 백앤드의 Date 포멧이 다르기 때문에 포맷변환 등등 계속해서 날짜관련 코드가 중복되다보니, 그것들을 분리해 Util 클래스로 만든 후 전역(static)으로 설정해 유용하게 사용했습니다. 그럼 하나하나 사용법을 확인해 보겠습니다. 📌 Date 포맷 변경 / String -> date 포맷 변경 -> String 리턴 private static SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); private static SimpleDateFormat strFormat = new SimpleDate.. 2022. 7. 11.
[Java/자바] Generic, 제네릭 제네릭이란 프로그램에서 변수와, 메소드를 선언할 때 자료형을 선언해줍니다. 대부분 하나의 자료형으로 구현되지만, 변수나 메소드의 자료형을 필요에 따라 여러 자료형으로 사용할 수 있다면 프로그램을 유연하게 사용할 수 있을 겁니다. 이와 같이 어떤 값이 하나의 참조 자료형이 아닌 여러 참조형을 사용할 수 있도록 프로그래밍하는 것을 제네릭(generic)이라고 합니다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시, 미리 지정하는 방법입니다. 제네릭을 사용하면 참조 자료형이 변환될 때 이에 대한 검증을 컴파일러가 하므로 아래와 같은 장점이 있습니다. 클래스와 메소드 내부 객체의 타입 안정성을 높임 반환 값에 대한 타입 변환 및 타입 검사에 들어가는 노력이 줄어듦 그럼 코드를 통해 자세한 사.. 2022. 1. 8.
[Java/자바] 추상메소드와 추상클래스 ⚡️추상메소드 일반적으로 부모클래스에서 상속을 받으면 이미 존재하는 메소드를 그대로 사용하거나 오버라이딩해서 자식 클래스에 알맞게 사용한다. 추상메소드 같은 경우, 구현부 없이 선언하여 상속받은 자식클래스에서 메소드의 오버라이드를 강제한다. 아래와 같이 서브 클래스에서 추상 메소드를 재정의하지 않을 경우 에러 메세지가 뜨는 모습을 볼 수 있다. ⚡️추상클래스 추상클래스는 하나 이상의 추상 메소드를 지니고 있는 클래스를 지칭한다. 추상클래스와 추상메소드를 생성하는 방법은 아래와 같다. abstract class 클래스명{ abstract void 메소드명(); // {} 구현부 생략 } 추상메소드가 클래스에 포함되어 있을 경우 abstract 키워드는 클래스 생성시 꼭 필요하며 추상클래스라 하더라도 일반 .. 2021. 12. 31.
백준 알고리즘 2675번 문제풀이 - 자바(JAVA) 문제 입력 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다. 출력 각 테스트 케이스에 대해 P를 출력한다. 결과 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Baek2675 { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamRea.. 2021. 12. 27.
백준 알고리즘 11654번 아스키코드 변환 - 자바(JAVA) 문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 입력 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다. 출력 입력으로 주어진 글자의 아스키 코드 값을 출력한다. 결과 java11보다 java8로 컴파일 하는 게 더 빠른 속도를 보여준다. 속도를 많이 줄이긴 했지만 뭔 짓을 해도 76ms 이하로는 힘들다. 코드 import java.io.*; public class Main { public static void main(String[] args)throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in).. 2021. 12. 26.
[Java/자바] 입력 BufferedReader와 Scanner의 차이 ⚡️알고리즘 풀이 속도 차이 백준에서 자바로 같은 문제를 풀어도 상위권 풀이들과 비교하면 3~4배의 속도 차이를 보인다. 이유는 간단했다. 나는 입력으로 Scanner를 상위권 풀이는 BufferedReader를 사용했다는 차이가 있다. 사소한 방법의 차이이지만 결과에선 큰 격차를 보이는 이 둘의 다른 점이 무엇인지 궁금해졌다. ⚡️Scanner와 BufferReader 차이 📌 Scanner Scanner는 입력 받을 때 정수 값, 소수 값, 문자 데이터도 구분지어 읽어들일 수 있다. 즉 직관적이고 사용하기에 편리하다는 장점이 있다. 그렇지만 키보드의 입력이 키를 누르는 즉시 바로 전달되기 때문에 버퍼를 사용하는 BufferReader 보다 속도 면에서 불리하다는 큰 단점이 존재한다. 📌 Buffere.. 2021. 12. 26.
[Java/자바] static 정적 변수와 메소드 static이란? 자바에서 static은 클래스 내에서 정적 필드와 정적 메소드를 정의할 때 사용하는 키워드이다. 정적 필드와 메소드를 합쳐 정적 멤버라고 부르고, 이들은 static 영역에 할당된다. 모든 객체가 정적 멤버를 어디서든지 참조할 수 있는 장점이 있지만 static영역에 있는 멤버들은 프로그램 종료시까지 메모리를 차지한다는 단점이 있어 과도하게 키워드를 남발하게 되면 성능 저하 문제가 발생할 수 있다. static 선언 필드와 메소드를 정적으로 선언하려면 앞에 static 키워드를 추가하면 된다. static int num = 0; public static void staticMethod(){ } static 필드 사용법 class StaticMember{ static int a = 0; .. 2021. 12. 23.
반응형

오픈 채팅