![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/bwRLuL/btrxoW7hvj3/F0NcV4XxhamLm9ynfYR2T1/img.png)
싱글톤이란? 프로그램 전체에서 웬만하면 단 하나의 객체가 공유되며 기능을 수행하는 것이, 기능을 수행할 때마다 새로운 객체가 생성되도록 하는 것보다 효율과 성능 측면에서 더 좋은 경우가 있다. 또한 여러 객체가 생성되지 않고 단 하나의 객체만 생성되도록 보장해야 하는 경우가 있다. 이러한 객체를 싱글톤(Singleton) 이라고 한다. 자바에서 객체는 new 연산자에 의해 생성된다. new 연산자를 사용한다는 것은, 객체의 생성자를 호출하여 힙 영역에 객체를 저장한다는 것이다. 이러한 형태의 객체 생성은 객체 생성에 제한을 두지 않으므로, 싱글톤을 사용하기 위해서는 클래스 외부에서 new 연산자로 객체를 생성하는 것을 제한해야 한다. 외부에서 new 연산자를 통한 생성자 호출을 막기 위해서, 싱글톤의 생..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cQS5a0/btrwrGDNUE2/kiAUsdO5b9N8SiMXLOblI0/img.png)
람다식이란? 람다식은 익명 함수를 생성하기 위한 식으로, 객체지향 언어보다 함수지향 언어에 더 가깝다. 람다식은 아래의 형태로 쓰인다. (매개변수, ...) -> { 실행문; } 예를 들면, 보통 Thread 객체에 실제 실행될 코드를 전달하는 Runnable 인터페이스의 익명 구현 객체를 생성할 때 아래처럼 람다식을 이용할 수 있다. // 익명 구현 객체 이용 Runnable runnable = new Runnable() { public void run() { ... } }; // 람다식 이용 Runnable runnable = () -> { ... }; 위의 예시 코드처럼, 람다식의 형태는 매개변수를 갖는 코드 블록이지만, 런타임 시에는 인터페이스의 익명 구현 객체를 생성한다. 함수적 인터페이스 (F..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/czYgLG/btrvoPPJ3oG/BMsnV754CKq92nyboNygb0/img.png)
인스턴스 멤버 인스턴스 멤버는 객체(인스턴스)를 생성한 뒤 사용할 수 있는 필드와 메소드이다. 인스턴스 필드와 메소드는 객체에 소속된 멤버이기 때문에 객체 없이는 사용할 수 없다. public class Student { // field String name; int grade; // method void setName(String name) { ... } void setGrade(int grade) { ... } } Student 클래스의 필드 name과 grade, 메소드 setName()과 setGrade()를 사용하기 위해서는 Student 클래스의 인스턴스를 생성해야 한다. Student student1 = new Student(); student1.name = "밤부"; student1.set..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/H4OZz/btrvxlsAZL5/fLToimuHxaLovkNkQtaZr0/img.png)
JVM (Java Virtual Machine; 자바 가상 머신) 자바가 아닌 C나 C++등으로 작성한 코드를 컴파일하면, 각기 다른 운영체제에서 실행할 수 있는 어셈블리어로 번역된 결과물을 얻을 수 있다. 즉, 컴파일 과정이 운영체제에 종속적이다, 그러나 자바에서는 컴파일 과정이나 컴파일 결과물이 아닌, 이러한 결과물을 실행하는 JVM(Java Virtual Machine)이 운영체제에 종속적이다. 자바 언어로 프로그램 코드를 작성한 뒤 (java 파일), JAVAC 컴파일러를 이용해 컴파일하면 바이트 코드 파일(class 파일)을 생성할 수 있다. 맥이든 윈도우든 class 파일만 있다면 각기 다른 운영체제의 JVM이 이를 기계어로 번역해 실행시켜준다. 따라서 프로그래머가 프로그램을 실행하는 운영체제..
예전에 안드로이드 프로그래밍을 할 때도, @Override와 같은 어노테이션을 많이 쓰기는 했지만, 단순히 오버라이드한 메소드를 체크하도록 하는 표시 정도로만 알고 지나갔었다. 그러나 Spring 프로젝트를 다루다 보면 이보다 훨씬 더 많은 어노테이션을 쓰고, 형태도 좀 더 많아져 제대로 알아볼 필요를 느꼈다. 어노테이션이란? 어노테이션(Annotation)은, 어플리케이션이 처리해야 할 데이터가 아닌 컴파일 과정과 실행 과정에서 코드를 어떻게 컴파일하고 처리할지 알려주는 정보이다. 이런 점에서, 어노테이션은 메타데이터(Metadata)라고 할 수 있다. 어노테이션은 다음 세 가지 용도로 사용된다. 컴파일러에게 코드 문법 에러를 체크하도록 정보를 제공 Framework 또는 Library가 빌드 시 코드..
- Total
- Today
- Yesterday
- JVM 메모리 구조
- Thresholding
- jvm
- hint
- Java
- 1종대형
- 경기지역화폐
- Canny Edge Detector
- M1 맥
- 강남면허시험장
- 오라클 JDBC
- m1 mac
- 코드로 배우는 스프링 웹 프로젝트
- 객체지향
- 경기교통비지원
- IntelliJ
- 싱글톤
- spring
- 경기버스
- pagination
- 오라클 데이터베이스
- runtime data area
- Edge Detector
- 오라클 클라우드
- 경기도 청소년 교통비 지원
- Non Max Suppression
- 인텔리제이
- 실행 계획
- 컴퓨터비젼
- DTO
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |