일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 리소스 서버
- 외부설정
- 브루트포스
- 백준
- 백기선
- WebApplication Type
- Application Runner
- 리소스핸들러
- 백트래킹
- JsonSerializer
- webjar
- EnableAutoConfiguration
- cors
- HATEOAS
- JPA
- 알고리즘
- OAuth2
- rest api
- Application Argument
- @Profile
- 스프링 부트
- HttpMessageConverters
- 다익스트라
- AuthenticationPrincipal
- Application Event
- @ConfigurationProperties
- 정적 리소스
- 스프링부트
- Spring Security
- application.properties
- Today
- Total
목록프로그래밍 (7)
아카이브
== 연산자와 equals()의 차이점 - == 연산자는 비교 대상의 주소값을 비교하고 equals() 메소드는 대상의 값 자체를 비교 System.out.println(a.equals(b)); // true 값이 동일System.out.println(a==b); // true 주소가 동일System.out.println(a==c); // false 주소가 다름System.out.println(a.equals(c)); // true 값이 동일
우선 OOP 란?- Object-Oriented Programming- 컴퓨터 프로그래밍의 패러다임- 프로그램을 명렁어의 목록이 아닌, 독립된 "객체"들의 모임으로 바라봄- Class, Object, Method, Message 등으로 구성특징1. 추상화 (Abstraction)- 대상의 특성 중 불필요한 부분을 무시하고 필요한 공통점만을 다루어, 현실의 복잡성을 극복하고 목적에 집중할 수 있도록 하는 것- 공통의 속성이나 기능을 묶어 이름을 붙이는 것- Class를 정의하는 것- ex) Class Human {String nameint age} 2. 캡슐화 (Encapsulation)- 객체 스스로가 자신의 상태를 책임지게 하여, 해당 객체의 역할 수행에 집중할 수 있도록 자율성을 높이는 것- 데이터 ..
● Call by Value : 값에 의한 호출● Call by Reference : 참조에 의한 호출"Java는 Call by Value 이다"- Java에서 원시타입은 값이 복사돼서 전달되고, 참조(주소값)도 값이 복사돼서 전달 됌- 참조를 직접 전달하는 것이 아닌, 참조 값(Value) 자체를 복사해서 전달
Java에서 다형성을 지원하는 2가지 방법 1. Overriding- 상속에서 나온 개념- 부모 클래스의 메소드를 자식 클래스에서 재정의 - 부모 클래스의 기능을 확장할 때 사용 - 메소드 이름, 매개변수, 타입, 반환 타입 모두 동일해야 함- static 메소드는 불허 2. Overloading- 같은 이름의 메소드를 여러 개 정의- 매개변수 타입이나 개수가 달라야 함- 메소드의 재활용성을 높이고, 다양한 유형의 요청을 처리할 수 있음
Garbage- 응용프로그램에서 더 이상 사용되지 않는 메모리- 무효영역- new 연산자를 이용하여 시스템으로부터 할당받아 사용되다가 더 이상 사용되지 않는 객체나 배열 메모리 등 - 더 이상 사용되지 않는다 = 객체나 배열을 가리키는 레퍼런스가 없다- uncreachable 객체 (레퍼런스가 null이거나 메소드 내에서 (stack에) 생성된 객체) 가 대상Garbage Collection- Garbage를 회수하여 사용할 수 있는 메모리 공간을 늘리는 것- Garbage Collector 가 수행- JVM은 Garbage Collector 역할을 수행하는 Garbage Collection Thread를 갖고 있음- JVM 판단하에 동작하므로, 사용자가 강제할 수 없지만 System.gc() 혹은 Ru..
Wrapper Class를 사용하는 이유- 기본 자료형에 대해 객체로서 인식되도록 '포장'을 하기 위함1) 매개변수로 객체가 요구될 때2) 기본형 값이 아닌 객체로 저장해야 할 때3) 객체간의 비교가 필요할 때- 필요시 컴파일러가 자동으로 수행하기 때문에 이를 'autoboxing'이라고 한다Integer i = new Integer(10); -> Integer i = 10; //오토박싱(autoboxing)int i1 = i.intValue(); -> int i1 = i; //언박싱(unboxing)
static - 변수, 함수가 class에 종속non static - 변수, 함수가 class가 아닌 object(instance)에 종속1. static이 붙은 변수, 메소드를 instance 없이 사용가능한 이유- instance의 모태가 되는 class가 메모리에 올라갈 때 class의 member로 메모리에 같이 올라가기 때문 2. static 메소드에서 instance 변수를 사용할 수 없는 이유- static 사용 시점에 instance가 생성되어 있는지 알 수 없기 때문 3. static의 사용 이유- instance를 생성하지 않고 사용할 수 있기 때문에 속도가 빠르다- class 설계 시 멤버 변수 중에 모든 instance에서 공통으로 사용하는 부분을 static으로- class 설계 ..