반응형

Archive/JAVA 17

[JAVA] Generic(제너릭) 이란?

[JAVA] Generic(제너릭) 이란? Generic제네릭은 자바에서 안정성을 맡고 있다고 할 수 있다. 다양한 타입의 객체들을 다루는 메서드나 컬렉션 클래스에서 사용하는 것으로, 컴파일 과정에서 타입체크를 해주는 기능이다. 객체의 타입을 컴파일 시에 체크하기 때문에 객체의 타입 안전성을 높이고 형변환의 번거로움이 줄어든다. 자연스럽게 코드도 더 간결해진다. 예를 들면, Collection 에 특정 객체만 추가될 수 있도록, 또는 특정한 클래스의 특징을 갖고 있는 경우에만 추가될 수 있도록 하는 것이 제네릭이다. 이로 인한 장점은 collection 내부에서 들어온 값이 내가 원하는 값인지 별도의 로직처리를 구현할 필요가 없어진다. 또한 api 를 설계하는데 있어서 보다 명확한 의사전달이 가능해진다.

Archive/JAVA 2018.07.12

[JAVA] Annotation(어노테이션) 이란?

[JAVA] Annotation(어노테이션) 이란? Annotation어노테이션이란 본래 주석이란 뜻으로, 인터페이스를 기반으로 한 문법이다. 주석과는 그 역할이 다르지만 주석처럼 코드에 달아 클래스에 특별한 의미를 부여하거나 기능을 주입할 수 있다. 또 해석되는 시점을 정할 수도 있다.(Retention Policy) 어노테이션에는 크게 세 가지 종류가 존재한다. JDK 에 내장되어 있는 built-in annotation과 어노테이션에 대한 정보를 나타내기 위한 어노테이션인 Meta annotation 그리고 개발자가 직접 만들어 내는 Custom Annotation이 있다. built-in annotation 은 상속받아서 메소드를 오버라이드 할 때 나타나는 @Override 어노테이션이 그 대표적..

Archive/JAVA 2018.07.12

[JAVA] Collection(컬렉션) 이란?

[JAVA] Collection(컬렉션) 이란? CollectionJava Collection 에는 List, Map, Set 인터페이스를 기준으로 여러 구현체가 존재한다. 이에 더해 Stack과 Queue 인터페이스도 존재한다. 왜 이러한 Collection 을 사용하는 것일까? 그것은 다수의 Data 를 다루는데 표준화된 클래스들을 제공해주기 때문에 편하게 DataStructure 를 직접 구현하지 않고 사용할 수 있는 것이며, 배열과는 다르게 객체를 보관하기 위한 공간을 미리 정하지 않아도 되므로, 상황에 따라 객체의 수를 동적으로 정할 수 있음으로서 프로그램의 공간적인 효율성 또한 높여준다.List List 인터페이스를 직접 @Override를 통해 사용자가 정의하여 사용할 수도 있으며, 대표적인..

Archive/JAVA 2018.07.12

[JAVA] 클래스, 변수명 네이밍 규칙

[JAVA] 클래스, 변수명 네이밍 규칙 자바의 식별자자바의 식별자는 변수나 상수, 메서드, 사용자가 정의하는 클래스 등을 구분할 수 있는 이름입니다.자바 식별자 규칙첫 문자가 문자나 '_', '$'의 특수문자로 시작되어야 한다. 숫자로 시작할 수 없다.첫 문자가 아니라면, 문자나 '_', '$'의 특수문자 그리고 숫자로 구성될 수 있다.자바의 예약어는 식별자로 사용할 수 없다.자바의 식별자는 대소문자를 구분한다.식별자 길이는 제한이 없고 공백은 포함할 수 없다.일반적 관례클래스 이름은 대문자의 명사로 시작메서드 이름은 소문자의 동사변수는 소문자의 명사상수는 대문자의 명사올바른 예클래스 이름 : ClassName메서드 이름 : getValue, get_Value변수 이름 : $value, variable..

Archive/JAVA 2018.07.06

[JAVA] 객체 지향 프로그래밍이란?

[JAVA] 객체 지향 프로그래밍이란? Object Oriented Programming (OOP) 객체 지향 프로그래밍 이전의 프로그래밍 패러다임을 살펴보면, 중심이 컴퓨터에 있었다. 컴퓨터가 사고하는대로 프로그래밍을 하는 것이다. 하지만 객체지향 프로그래밍이란 인간 중심적 프로그래밍 패러다임이라고 할 수 있다. 즉, 현실 세계를 프로그래밍으로 옮겨와 프로그래밍하는 것을 말한다. 현실 세계의 사물들을 객체라고 보고 그 객체로부터 개발하고자 하는 애플리케이션에 필요한 특징들을 뽑아와 프로그래밍 하는 것이다. 이것을 추상화라한다. OOP 로 코드를 작성하면 이미 작성한 코드에 대한 재사용성이 높다. 자주 사용되는 로직을 라이브러리로 만들어두면 계속해서 사용할 수 있으며 그 신뢰성을 확보 할 수 있다. 또한..

Archive/JAVA 2018.07.06

[JAVA] String vs StringBuffer vs StringBuilder 비교

[JAVA] String vs StringBuffer vs StringBuilder 비교 □ String- Immutable(불변함)- 한 번 생성되면 할당된 메모리 공간이 변하지 않는다.- 문자열 연산(+, concat) 시, 새로운 String 객체 생성 후 연결된 문자열 저장 및 참조- Heap 메모리 영역(가비지 컬렉션이 동작하는 영역)에 생성- 한 번 생성된 객체의 내부 내용을 변화시킬 수 없다.- 문자열 연산이 많은 경우, 성능이 좋지 않다.- 간단하고 동기화에 대해 신경쓰지 않아도 된다.(Thread-Safe), 내부 데이터를 자유롭게 공유 가능 □ StringBuffer, StringBuilder- Mutable(변함, 변하기쉬움)- 문자열 연산 등으로 기존 객체에 공간이 부족하게 되는 경..

Archive/JAVA 2018.07.04

[JAVA] 데이터 입출력 방법 (Scanner vs BufferedReader & BufferedWriter 클래스)

데이터 입출력 방법(Scanner vs BufferedReader & BufferedWriter 클래스) ① BufferedReader & BufferedWriter 123456789101112131415161718192021222324252627import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.InputStreamReader;import java.io.OutputStreamWriter;import java.util.StringTokenizer; public class Main { static BufferedReader br = new BufferedReader(new InputStreamReader(System.in))..

Archive/JAVA 2018.07.04
반응형