일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- Spring
- redis
- Apollo
- java
- Android
- bufferdreader
- graphql
- puppeteer
- Scanner
- 서버
- Docker
- 조건문
- restapi
- 스프링부트
- 프로그래머스
- nodejs
- Mongoose
- 백준알고리즘
- eof
- mysql
- MapReduce
- k8s
- HTTP
- LangChain
- mongodb
- TCP
- java11
- 스프링
- ai
- 자바
- Today
- Total
목록Java (10)
자라나라 개발머리
스택(Stack) 후입선출(last in, first out) 자료구조 스택 구현하기 0. 인터페이스 구현 public interface Stack { void push(int item); int pop(); } 스택의 주요 기능인 push, pop만 구현한다. 1. 배열로 구현 class arrStack implements Stack { private int top; private int stackSize; private int[] itemArr; public arrStack(int stackSize) { top = -1; this.stackSize = stackSize; itemArr = new int[this.stackSize]; } public boolean isEmpty() { return (t..
자료구조란? 데이터를 효율적으로 저장하기 위한 구조 자료구조 분류 - 단순구조 - 선형구조 - 비선형구조 - 파일구조 ( 해당 게시글에선 다루지 않음) 자바의 자료구조 - 단순구조 byte, short, long, int, float, double, char, boolean 등 - 선형구조 Arrays, list(ArrayList, LinkedList, Vector), Stack, Queue(Deque), Set - 비선형구조 Map(HashMap, LinkedHashMap, TreeMap, HashTable), Tree, Grape
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/DRlb3/btr1bfImF7R/xvavFVOI0DA0He0VcUIunK/img.png)
롬복(Lombok)이란? 자바의 라이브러리 중 하나. 애노테이션 프로세서를 사용하여 반복되는 코드를 줄여주는 편리한 라이브러리다. 애노테이션 프로세서(Annotation processors)란? 코드의 애노테이션(ex. @Xxxx)을 보고 파일이 컴파일 되는 시점에 코드를 생성해주는 기능 직접 애노테이션 프로세서를 만들 수도 있음. 실습 사전 세팅 의존성 추가 dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testCompileOnly 'org.projectlombok:lombok' testAnnotationProcessor 'org.projectlombok:lombok' ..
백준 알고리즘 해답을 보는데 자꾸만 눈에 거슬리는 StringBuilder.. 입출력 문제의 해답엔 십중팔구 얘가 등장해버린다. 공부를 안 할래야 안 할수가 없다. StringBuilder란? String 연산을 효율적으로 처리해주기 위한 클래스 StringBuilder는 어떻게 효율적으로 처리해주는가? StringBuilder의 장점을 알려면 String의 특징을 알아야 한다. String은 클래스이므로 String을 쓰려면 인스턴스를 생성해서 써야한다. 일반적으로는 생성문을 생략하고 쓴다. //같은 의미 String str1 = new String("Hello!"); String str2 = "Hello!"; 중요한 점은, String 클래스에서 생성되는 String 인스턴스는 Immutable 인스..
EOF: End Of File, 데이터 소스로부터 더 이상 읽을 수 있는 데이터가 없음을 나타낸다. 입력 방식마다 EOF처리 방식이 다르다. 일반적으로 쓰이는 Scanner, BufferedReader의 EOF처리 방식을 알아보자. 1.Scanner Scanner sc = new Scanner(System.in); //문자열 입력 while(sc.hasNextLine()) { sc.nextLine(); } //숫자 입력 while(sc.hasNextInt()) { sc.nextInt(); } hasNextLine(), hasNextInt() 메소드 실행 시 true가 리턴되면 다음 라인/숫자가 출력되고 false가 리턴되면 파일의 끝이라는 의미로 while문을 벗어난다. 2. BufferedReader ..
StringTokenizer는 String을 나누기 위해 사용한다. 생성자를 통해 String을 입력하면 토큰 형태를 리턴한다. 이후 다양한 메소드를 사용해 해당 토큰을 사용할 수 있다. 생성자 생성자는 총 3가지가 있다. 1. 공백/줄바꿈 기준으로 문자열 분리 StringTokenizer st = new StringTokenizer(String str); 디폴트로 지정되어 있는 \t, \n, \r, \f 에 대해 문자열을 분리한다. 쉽게 풀어 말하면 공백과 줄바꿈 기준으로 문자열을 분리하는 것이다. 2. 구분자 기준으로 문자열 분리(구분자 미포함) StringTokenizer st = new StringTokenizer(String str, String delim); 사용자가 입력한 구분자(delim)..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cr9Yb0/btrHxWnCXKL/hgfzc5J5rvCDhTK0SXF3A0/img.png)
궁금한 것 read()와 readLine()의 차이는 무엇이고, 왜 readLine()을 쓸까? 실행 코드 package pratice; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int a = Integer.parseInt(br.readLine()); int b = br.read(); System.out.println(a); System.out.println(b); } } 실행결과 readLine()은 입력한대로 int형 1이 나왔지만, re..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dlCKwo/btrGXgWtjLG/9TJaql8UXJVeKuz4Ki8H20/img.png)
왜 BufferdReader를 사용할까? 백준 알고리즘 풀이과정을 보다가 상위에 올라와 있는 풀이과정을 보면 대부분 Scanner말고 BufferedReader를 사용해서 입력을 받는다. 그래서 왜 스캐너 안쓰고 BufferedReader를 쓰는지 궁금해졌다. BufferdReader와 Scanner의 차이에 대해선 아래 글에 너무너무 설명이 잘 돼 있다. https://dlee0129.tistory.com/238 자바(JAVA) - Scanner & BufferedReader 자바(JAVA) - Scanner & BufferedReader 자바를 처음 배울 때 사용자(키보드) 입력받기 위해 보통 Scanner 클래스를 사용합니다. 하지만 알고리즘을 풀기 시작하면서 백준에서 Scanner를 사용하여 입력..
*본 글은 작성자가 복습 용도로 작성한 글 입니다! if문 조건식이 true일 경우 블록 내부 실행문 실행 기본 형태 if (조건식) { 조건식이 true } if - else if - else문 기본 형태 if (조건식1) { 조건식1이 true } else if (조건식2) { 조건식2가 true } else { 조건식1 및 조건식2가 false } switch문 변수가 어떤 값을 갖느냐에 따라 실행문 선택 일반적으로 경우의 수가 많을수록 switch문이 코드가 간결 형태 switch(변수) { case 값1: break; case 값2: break; default: } case끝에 break가 붙어있지 않으면 다음 case가 연달아 실행된다. default는 변수가 case에 해당되지 않을 경우 출..
자바의 특징 1. 이식성이 높다. 이식성이란? 운영체제(윈도우, 맥 OS, 리눅스 등)가 달라도 동일한 소스 파일로 실행 가능한 것 자바는 윈도우에서 작성한 소스코드 파일을 맥os에서 수정없이 실행할 수 있다. 2. 객체 지향 프로그래밍 언어이다. 객체 지향 프로그래밍은 개발 기법 중 하나로, 객체를 먼저 만들고 객체들을 조립 및 연결해서 프로그램을 완성 시킨다. 자바는 객체 지향 프로그래밍 언어이다. 따라서 객체 지향 언어로써 갖춰야 할 캡슐화, 상속, 다형성 기능을 지원하고 있다. 3. 메모리를 자동으로 관리한다. 타 언어(ex: C++)의 경우 생성된 객체를 제거하기 위해 직접 코드를 작성해야 한다. 메모리 관리를 개발자가 직접 해야 하는 것이다. 자바는 개발자가 직접 메모리에 접근할 수 없도록 설..