일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- transaction
- AOP
- 그리디
- 자바
- Servlet
- Android
- QueryDSL
- db
- SpringBoot
- Greedy
- 알고리즘
- jpa
- kotlin
- 스프링 핵심 기능
- Exception
- 백준
- JDBC
- 김영한
- 스프링
- java
- http
- pointcut
- Thymeleaf
- spring
- springdatajpa
- Spring Boot
- Proxy
- 인프런
- 스프링 핵심 원리
- JPQL
- Today
- Total
목록Java (91)
개발자되기 프로젝트
1. Stack memory - 함수가 호출될 때 지역 변수들이 사용하는 메모리 - 함수의 수행이 끝나면 자동으로 반환됨. * 지역변수 : method에서 사용하는 변수, 그 지역에서만 사용하고 함수의 수행이 끝나면 사라지는 변수 2. 인스턴스 - 클래스는 객체의 속성을 정의하고 기능을 구현하여 만들어 놓은 코드 - 클래스를 기반으로 생성된 객체(인스턴스)는 각각 다른 멤버 변수 값을 가짐 - new 를 통해 새 인스턴스 생성 3. Heap memory - 동적 메모리 - 생성된 인스턴스는 heap memory에 할당된다. - 하나의 class에서 여러 instance가 생성되고 각각 다른 주소를 갖는다. 4. 참조변수 , 참조 값 - 참조변수 : 메모리에 생성된 인스턴스를 가리키는 변수 ex) Sude..
1. 객체(Object) 기능의 단위? 명사로 구분할 수 있는 단위? 2. 객체 지향 프로그래밍 각 단위로 객체를 구분하고 객체의 상호작용을 프로그래밍. 3. Class는 객체의 bluePrint이다. 객체의 속성을 클래스의 member 변수로 선언한다. 4. 객체 지향 프로그램을 할 때는 1) 객체의 정의 2) 객체의 속성을 멤버 변수, 역할을 method로 구현 3) 각 객체간 상호작용 구현 5. Class 코딩 class는 대문자로 시작 camel notation으로 명명 --> Student, SchoolAndStudent
1. 정수 자료형의 종류와 크기 * 맨 처음 부호비트를 제외하기 때문에 2^(n-1) 2. int - 정수는 기본적으로 int로 잡힘 - 자바에서 정수에 대한 기본 자료형 - 4바이트 - 프로그램에서 사용하는 모든 숫자(리터럴)은 int로 저장됨 - 리터럴 : 프로그램 안에서 쓰는 값. 3. long - 8 byte - 숫자 뒤에 L or l을 붙여서 long형임을 표시 ex) long number = 123456789654654654L; --> ok long number = 123456789654654654; -->error :리터럴은 4byte에 잡혀야 하는데,, 123456789654654654 너무 큼 4. 실수 - 실수의 리터럴은 8byte(double)로 잡힘 - 실수는 기본적으로 double..
1. 2진수로 표현 0와 1로만 데이터를 저장 bit(1비트) : 컴퓨터가 표현하는 데이터의 최소 단위로 2진수 하나의 값을 저장할 수 있는 메모리의 크기 byte(바이트) = 8bit 2. 2진수 8진수 16진수 - 8진수 : 1 ~ 7을 통해 3bit(111)를 묶어서 표현 가능 - 16진수 : 1 ~F를 통해 4bit(1111)를 묶어서 표현 가능 --> 갱장히 이득임. 왜? 10을 A로 쓰냐? 10진수 16을 16진수로 변환했을 때와 겹침. 그래서 알파벳으로. 3. 8비트로 5를 나타내기 4. bit 당 나타낼 수 있는 수의 범위 - 1bit : 0, 1 -> 2 - 2bit : 00, 01, 10, 11 -> 2^1 - 3bit : 000, 001, 010, 011, 100, 101, 110, ..
이번에는 피보나치 수열을 구현해보자. 피보나치는 아래와 같이 n번 째 값은 n-1번째 n-2번 째 값의 합이다. 1. 먼저 함수에 표현된 대로 코드를 구성해 보자. 함수대로 표현하기 위해서는 재귀함수 방식을 활용해야 한다. 즉 int n에 해당하는 값을 구하기 위해 "n-2"번 째 값과 "n-1"번 째 값을 추가로 계산을 해줘야 한다. package fibonacci; public class FibonacciPractice { public int fibonacciRecur(int n){ if(n == 0) return 0; if(n == 1) return 1; return fibonacciRecur(n-2) + fibonacciRecur(n-1); } public static void main(Strin..
*Git : https://github.com/bsh6463/Maze bsh6463/Maze Contribute to bsh6463/Maze development by creating an account on GitHub. github.com 입구부터 출구까지 길을 찾자! 미로찾기는 stack으로 활용이 가능하다. 왜냐? 갈림길에서 한쪽 방향을 선택하고 쭉! 들어갔을 때(DFS) 길이 없다면 다시 갈림길로 돌아와서 다른 길로 가야한다. 즉, DFS의 개념이 사용된다. 다시말해, 길을 찾아갈 때 현재 노드와 인접한 노드들을 stack에 추가하고 stack 가장 맨위의 노드로 진행 했을 때, 더 이상 갈 노드가 없다면 stack에 있는 다음 노드를 꺼내서 가면 갈림길에서 다른 길로 가는 것과 동일한 효과이다..
2021.06.07 - [Java/알고리즘] - 최단경로 구하기 : Dijkstra algorithm 최단경로 구하기 : Dijkstra algorithm 시작 노드에서 전체 노드로 가는 최단 거리를 구하는 알고리즘. 이 알고리즘을 시행하면 시작노드부터 각 노드까지 최단 경로를 알 수 있다. 특징으로는 각 단계를 반복하면서 시작노드부터의 bsh-developer.tistory.com 앞서 한 노드로부터 각 노드 까지 최단 거리를 구하는 Diijkstra 알고리즘에 대해 알아봤다. 이번엔 알고리즘을 코드로 구현해보자. 크게 세 가지를 중점으로 작성했다. * 시작 노드를 기준으로 weight 행렬 작성하는 method - weight 배열은 djikstra 생성자에서 모두 inf(=9999)로 초기화. - ..
시작 노드에서 전체 노드로 가는 최단 거리를 구하는 알고리즘. 이 알고리즘을 시행하면 시작노드부터 각 노드까지 최단 거리를 알 수 있다. 특징으로는 각 단계를 반복하면서 시작노드부터의 각 노드까지 최단 거리를 계속 업데이트 한다. 현재 노드를 기준으로, 기존에 입력된 weight(현재 노드를 거치지 않음)가 더 작은지 현재 노드를 거치는게 weight가 작은지 비교해야한다. 즉 노드 v에 인접한 노드 w에 대하여 아래 조건이 성립하면 w에 대한 최단거리를 업데이트 한다. (원래 w로 가는 거리보다 v를 거쳐서 가는 거리가 가까우면 w가는 거리를 v거쳐서 가는 거리로 수정.) Yv + Cvw Yw = Yv + Cvw ex) Y1 + C1,2 < Y2 그 결과로 알고리즘이 종료되었을 때, 시..