자바(Java)

자바(Java)

자바 enum(열거형)

상수는 원래 final static string과 같이 만든다. 하지만 이렇게 상수를 정의해서 코딩하는 경우 다양한 문제가 발생되어 자바 1.5버전부터 새롭게 추가된 것이 바로 "Enum" 이다. Enum은 열거형이라고 불리며, 서로 연관된 상수들의 집합을 의미한다. Enum 장점 코드가 단순해지며, 가독성이 좋다. 또한 리펙토링 변경 범위가 최소화된다. 자바의 열거형은 값과 타입을 모두 체크하기 때문에 하나라도 다르면 컴파일 시점에서 에러가 발생한다. 즉, type safe, 타입에 안정한 열거형을 제공한다. 키워드 enum을 사용하기 때문에 구현의 의도가 열거임을 분명하게 알 수 있다. EnumClass는 다른 클래스와 마찬가지로 별도의 java파일, 클래스 안, 클래스 밖에 선언 가능하다. Enum..

자바(Java)

자바 제네릭(Generic)

정적언어(C, C++, C#, Java)을 다뤄봤다면 제네릭(Generic)에 대해 한 번쯤은 들어봤을 것이다. 특히 자료구조 같이 구조체를 직접 만들어 사용할 때 많이 쓰이기도 하고 매우 유용하기도 하다. ArrayList나 LinkedList 등을 만들 때 보통 객체 객체명 = new 객체(); 같이 만든다. 안에 타입을 지정해줌으로써 특정 타입만 받아들이게 하는 것이다. 여기서 제네릭(Generic)은 타입이 클래스 내부에서 지정하는 것이 아닌 외부에서 사용자에 의해 지정되는 것을 의미한다. 즉, 특정 타입을 지정해주는 것이 아닌 필요에 의해 지정할 수 있도록 한다는 것이다. 컴파일 때 해당 타입으로 캐스팅하여 매개변수화 된 유형을 삭제하는 것이다. 제네릭 장점 잘못된 타입이 들어올 수 있는 것을 ..

자바(Java)

자바 this, this(), super, super()

자바 프로그래밍을 하다보면 자식생성자와 부모생성자의 변수 혹은 메서드의 이름이 같은 경우 구분을 해줘야한다. 그럴 때 this와 super를 사용한다. this와 this() 그리고, super와 super()는 맥락은 같지만 조금씩 쓰임새는 다르다. this() -> this 메소드는 생성자 첫 문장에서만 사용 가능하다. 같은 클래스 내부의 다른 생성자를 호출할 때 사용한다. this -> this 키워드는 인스턴스 자신을 가리키는 참조변수이다. 인스턴스의 주소가 저장되어, 숨겨진 채로 존재한다. static 메소드에서는 사용이 불가능하다. 왜냐하면 this 키워드는 인스턴스에서 사용이 가능한데 static 키워드는 객체를 생성하지 않아도 사용이 가능하기 때문이다. super() -> Object클래스..

자바(Java)

자바 컬렉션 프레임워크(Collection Framework)

컬렉션 프레임워크(Collection Framework) 컬렉션 프레임워크는 자료구조와 알고리즘을 구조화해서 여러 데이터를 편리하게 관리할 수 있게 만들어 놓은 것의 기능들의 집합체같은 것이다. JDK 1.5부터는 Queue interface도 추가되었다. 이들을 쉽게 다루기 위한 Collections 클래스도 존재한다. 대표 인터페이스로는 List, Set, Map 인터페이스가 있다. https://nukoori.tistory.com/10 자바 자료형(Data type) + 자료구조 자료형은 아주 기초적인 개념이라 넘어가려고 했지만, 새로이 자바를 공부하면서 생각보다 모르는 부분이 많았기에 따로 정리해두려고 한다. 자료형(Data Type) 숫자(Number), 부울(Boolean), 문자(Charac..

자바(Java)

자바 JDK / JRE / JVM 구조

JDK ( Java Development Kit ) 자바로 개발하는데 필요한 도구들의 환경설정같은 것이다. JDK 버전은 여러 가지가 있는데, 나중에 쓸일이 있으면 추가적으로 해당 버전을 선택해서 적용해주면 된다. 자바를 개발함에 있어서 필요한 모든 것들의 집합체라고 보면 된다. JRE를 포함하고 있으며 javadoc, 컴파일러(javac)도 있다. JRE는 java를 실행함에 있어 필요한 환경을 말한다. JVM, java class library, java 명령어 등을 포함하고 있다. 즉 JDK > JRE > JVM같은 느낌이다. JVM은 클래스파일을 실행할 수 있다. 자바 클래스 로더와 자바 실행 엔진에 의존한다. 자바로 작성된 프로그램의 메모리 관리 및 최적화를 수행한다. 한번 컴파일된 파일은 어떤..

자바(Java)

자바 getter setter

자바에서는 private, public, protected, public과 같은 접근 제한자가 존재한다. 이를 통해 데이터를 외부로부터 숨기거나, 접근을 막고, 또는 접근에 처리를 강제화한다. 여기서 getter와 setter는 클래스 변수를 private으로 하고, 다른 메소드를 통해 제어하는 역할을 맡는다. private이 되면 해당 변수는 클래스 안에서만 노출되게 된다. getter getter는 다른 사람들로 하여금 사용할 필요가 있는 변수값을 가져올 수 있게 해주는 함수라고 보면 된다. 클래스 안에 private 변수 age, name이 있으면 바깥에서는 getAge(), getName()이라는 getter함수를 통해 private 변수임에도 값을 가져올 수 있게 도와주는 역할을 한다. 이렇게 ..

자바(Java)

자바 단축키 + 자동완성함수

잘 쓰이거나 유용할 것 같은 단축키 및 자동완성함수들을 기록해둘 예정이다 자동완성함수 아래를 입력 후 tab 혹은 나온것에서 엔터, 직접클릭하면 된다. 자동완성함수 뜻 sout System.out.println(); soutv System.out.println("변수명 = " + 변수명); 같이 포맷을 맞춰준다. fori for(int i=0;i find usage(모든참조찾기)도 가능. ctrl + alt + ↑ ctrl + alt + ↓ 앞으로 탐색, 뒤로 탐색 shift + enter 커서가 어디에 있든 새로운 줄을 만들어 다음줄로 넘어감. tab 다음 내용 입력하는 곳으로 넘어감. 자동완성이 아닌 직접 입력시 괄호 바깥으로 나갈 수 있음. ctrl + alt + o import문 최적화 ctrl ..

자바(Java)

자바 시간, 날짜 클래스

자바에는 시간, 날짜를 제공하는 클래스가 여럿 있다. 대표적으로는 Date, Calendar, Time이 있다고 한다. 과거에 사용되던 Date, Calendar 클래스(java.util)는 사용이 불편하고 문제가 좀 있어서 요즘에는 java.time의 LocalDate, LocalTime, LocalDateTime을 쓰는 추세라고 한다. Date는 아주 간단하게만 보고 넘어가자. 현재는 대부분 deprecate 되었다. 더보기 Date date = new Date(); System.out.println(date.toString()); // Sun Feb 05 16:49:10 KST 2023 이런식으로 나온다. 원하는 형태로 출력하기 위해 java.util.SimpleDateFormat 클래스를 이용하면..

자바(Java)

자바 입출력(Input/Output)

입력은 물론이고 출력에 대한 자세한 부분을 알아보자. 콘솔입력은 키보드입력을 받는것을 말한다. 콘솔 출력 콘솔 출력은 우리가 자주 쓰는데 3가지 정도가 있다. System.out.println(); - 출력 + 엔터(공백) System.out.print(); - 출력 System.out.printf(); - 서식문자를 통한 출력이 가능(포맷을 지정한 출력) System.out.print(String.format());도 System.out.printf()와 같다. printf는 C언어로 입문한 사람들이라면 익숙할만한 그런 것이다. 여기서 서식문자는 %d, %o 등등을 말한다. 자주 쓰이는 서식문자는 서식문자 뜻 정수 %d 10진수 %o 8진수 %x 16진수 실수 %f 실수(f를 붙이면 float, 아니면..

자바(Java)

자바 자료형(Data type) + 자료구조

자료형은 아주 기초적인 개념이라 넘어가려고 했지만, 새로이 자바를 공부하면서 생각보다 모르는 부분이 많았기에 따로 정리해두려고 한다. 자료형(Data Type) 숫자(Number), 부울(Boolean), 문자(Character, 작은 따옴표로 만듦(' '), 유니코드(2byte) 문자체계 사용)(여기까지 기본형), 문자열(String, 큰 따옴표로 만듦(" ")) 등등이 있다. primitive type(기본 자료형)으로는 boolean | byte, int, short, long | float, double | char 의 8개가 있다. 나머지는 reference type이다. 그 외 자료 형태와 자료에 대한 연산을 정의하고, 구체적인 구현 방법은 명시하지 않은 것을 추상 자료형(Abstract Da..

넉우리
'자바(Java)' 카테고리의 글 목록