일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- 자료구조
- winston
- Spring
- nestjs
- TIL
- queue
- 인접행렬
- 알고리즘
- 인접리스트
- Deep Dive
- 코딩테스트
- logger
- node.js
- css
- html
- REST API
- java
- javascript
- GraphQL
- 탐욕법
- MySQL
- 변수
- JWT
- 프로그래머스
- dfs
- LifeCycle
- OOP
- bean
- typescript
- Interceptor
- Today
- Total
목록분류 전체보기 (227)
처음부터 차근차근
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/b5SwKW/btsCVI8caDu/ZcL7M9WpAhix4RcCc3Lkek/img.png)
Final이란? Final 키워드는 말 그대로 '마지막의' 또는 '변경될 수 없는' 의미를 가지고 있으며, 이름 그대로 끝이라는 뜻입니다. 거의 모든 대상에 사용될 수 있습니다. Final이 사용될 수 있는 대상 Class 변경할 수 없는 클래스, 즉, 확장될 수 없는 클래스를 의미합니다. 즉, 다른 클래스의 조상이 될 수 없습니다. Method 변경될 수 없는 메서드를 의미하며, Overriding을 통해 재정의 될 수 없습니다. 멤버 변수, 지역 변수 변수 앖에 final이 붙으면, 값을 변경할 수 없는 상수가 됩니다. 재할당을 할 경우, 컴파일 오류가 발생합니다. Final 사용해보기 지역변수 package final1; public class FinalLocalMain { public static..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cBgetX/btsCMpvBsG9/K1wdRmXtd6KM07MASydD9k/img.png)
Static이란? 정적(static)은 고정된이란 의미를 가지고 있습니다. Static이라는 키워드를 사용하여 Static변수와 Static메소드를 만들 수 있는데 다른말로 정적필드와 정적 메소드라고도 하며 이 둘을 합쳐 정적 멤버라고 합니다.(클래스 멤버라고도 합니다.) 정적 필드와 정적 메소드는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 고정된 멤버입니다. 그렇기에 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할때 클래스별로 관리됩니다. 따라서 클래스의 로딩이 끝나는 즉시 바로 사용할 수 있습니다. Static 멤버 생성 Static 키워드를 통해 생성된 정적멤버들은 Heap영역이 아닌 Static영역에 할당됩니다. Static 영역에 할당된 메모리는 모든 객체가 공유하여 하나의 멤..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/xE9M0/btsCK727Mi8/13P3yL3KmfCKE5VETsll2K/img.png)
Java의 메모리 구조 메서드 영역(Method Area) : 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리합니다. 이 영역은 프로그램의 모든 영역에서 공유합니다. 클래스 정보 : 클래스의 실행 코드(Byte Code), Field, Method와 생성자 코드 등 모든 실행코드가 존재합니다. static 영역: Static 변수들을 보관합니다. Runtime 상수 풀 : 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관합니다. 예를 들어 "hello"라는 리터럴 문자가 있으면 이런 문자를 공통으로 묶어서 관리합니다. 이 외에도 프로그램을 효율적으로 관리하기 위한 상수들을 관리합니다. 스택 영역(Stack Area) : 자바 실행 시, 하나의 실행 스택이 생성됩니다. 각 스택 프레임은 ..
오늘 한 일 Java 강의 진행 버블 정렬, 삽입 정렬, 선택 정렬 공부 코딩테스트 문제 풀이 진행 Java 강의 진행 영한좌.. 그는 빛인가.. Java에 대해서 공부하지만, OOP까지 같이 공부하는 좋은 강의입니다. 김영한의 실전 자바 강의를 들으면서, "아 내가 백엔드 서버를 만들 때, 프레임워크 틀만 맞춰서 구현했구나.."라고 느꼈습니다. OOP를 사용하고 있는데, 어떻게 해야 효율적으로 작성할 수 있는지.. 강의를 통해 조금씩 알아갈 수 있었습니다. (간단한 예시로, Method를 분류해서 확장성 있게 설계하고, 접근 제어자 등을 사용해서 캡슐화를 한다던가..) 정렬 관련 공부 진행 간단한 정렬 방법에 대해서 공부하였습니다. 그러나 실제로 이 방법들은 잘 사용되지 않는다는 단점..! 왜 정..
문제 링크 https://school.programmers.co.kr/learn/courses/30/lessons/42746 문제 설명 문제 설명 0 또는 양의 정수가 주어졌을 때, 정수를 이어 붙여 만들 수 있는 가장 큰 수를 알아내 주세요. 예를 들어, 주어진 정수가 [6, 10, 2]라면 [6102, 6210, 1062, 1026, 2610, 2106]를 만들 수 있고, 이중 가장 큰 수는 6210입니다. 0 또는 양의 정수가 담긴 배열 numbers가 매개변수로 주어질 때, 순서를 재배치하여 만들 수 있는 가장 큰 수를 문자열로 바꾸어 return 하도록 solution 함수를 작성해주세요. 제한 사항 numbers의 길이는 1 이상 100,000 이하입니다. numbers의 원소는 0 이상 1,..
문제 링크 https://leetcode.com/problems/intersection-of-two-arrays/ 문제 설명 Given two integer arrays nums1 and nums2, return an array of their intersection. Each element in the result must be unique and you may return the result in any order. Example 1: Input: nums1 = [1,2,2,1], nums2 = [2,2] Output: [2] Example 2: Input: nums1 = [4,9,5], nums2 = [9,4,9,8,4] Output: [9,4] Explanation: [4,9] is also ac..
문제 링크 https://leetcode.com/problems/binary-search/description/ 문제 설명 Given an array of integers nums which is sorted in ascending order, and an integer target, write a function to search target in nums. If target exists, then return its index. Otherwise, return -1. You must write an algorithm with O(log n) runtime complexity. Example 1: Input: nums = [-1,0,3,5,9,12], target = 9 Output: 4 Explana..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/c06TjV/btsCCyTt7gb/AQ9W1lbz1MDohi4VKUtzL1/img.png)
이번 시간에는 정렬방법 중 가장 구현하기 쉬운 방법인 버블 정렬, 선택 정렬, 삽입 정렬을 알아보겠습니다. BubbleSort 서로 인접한 두 원소를 검사하여 정렬하는 알고리즘 인접한 2개의 레코드를 비교하여 크기가 순서대로 되어 있지 않으면 서로 교환합니다. 버블 정렬은 첫 번째 자료와 두 번째 자료를, 두 번째 자료와 세 번째 자료를, 세 번째와 네번째를, ... 이런 식으로 (마지막 - 1)번째 자료와 마지막 자료를 비교하여 교환하면서 자료를 정렬합니다. 1회전을 수행하고 나면 가장 큰 자료가 맨 뒤로 이동하므로 2회전에서는 맨 끝에 있는 자료는 정렬에서 제외되고, 2회전을 수행하고 나면 끝에서 두번째 자료까지는 정렬에서 제외됩니다. 이렇게 정렬을 1회전 수행할 때마다 정렬에서 제외되는 데이터가 하..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/RnsC6/btsCzsM0EyU/PRKyAfSUyYOnlszWKxhXC1/img.png)
제어자(modifier)란? 클래스, 변수 또는 메서드의 선언부에 함께 사용되어 부가적인 의미를 부여합니다. 제어자는 클래스나 멤버 변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능합니다. 접근 제어자 : public, protected, (default), private 그 외 : static, final, abstract, native, transient, synchronized, volatile, strictfp 접근 제어자 access modifier 멤버 또는 클래스, 메서드에 사용되어, 해당하는 멤버 또는 클래스를 외부에서 접근하지 못하도록 제한하는 역할을 합니다. 접근 제어자 종류 private : 같은 클래스 내에서만 접근이 가능하다. (모든 ..
Package란? Package란 클래스의 묶음입니다. Package에는 클래스 또는 인터페이스를 포함시킬 수 있으며, 서로 관련된 클래스들끼리 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있습니다. 즉, 클래스가 물리적으로 하나의 클래스파일(.class)인 것과 같이 패키지는 물리적으로 하나의 디렉토리 입니다. Package 사용 먼저 IntelliJ를 통해 패키지를 먼저 만들고 그 안에 클래스를 만들어야 합니다. package pack; public class Data { public Data() { System.out.println("패키지 pack Data 생성"); } } 패키지를 사용하는 경우 항상 코드 첫줄에 package pack과 같이 패키지 이름을 적어줘야 합니다. 이후에..