자바
-
[JAVA] 자바 basic 1 - 4 강 요약자바 2024. 11. 19. 09:56
1. 클래스와 데이터 용어: 클래스, 객체, 인스턴스클래스는 설계도이고, 이 설계도를 기반으로 실제 메모리에 만들어진 실체를 객체 또는 인스턴스라 한다- 클래스(Class)는 객체가 가져야 할 속성(변수)과 기능(메서드)을 정의한다- 객체(Object)는 클래스에서 정의한 속성과 기능을 가진 실체이며 서로 독립적인 상태를 가진다- 인스턴스(Instance)는 특정 클래스로부터 생성된 객체를 의미한다 (인스턴스는 주로 객체가 어떤 클래스에 속해 있는지 강조할 때 사용) 2. 기본형과 참조형 용어: 기본형, 참조형기본형(Primitive Type) : int , long, double, boolean처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입기본형은 자바가 기본으로 제공하는 데이터 타입이러..
-
[JAVA] 커스텀 어노테이션 @interface자바 2024. 11. 14. 12:56
@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.FIELD)public @interface DataField {}@interface 어노테이션이 뭘까 찾아봤습니다 어노테이션의 종류Java의 어노테이션은 크게 built-in 어노테이션과 Meta 어노테이션이 존재합니다1. built-in 어노테이션 - Java 코드에 적용되는 어노테이션 @Overrie, @Deprecated, @SuppressWarnings 등2. meta 어노테이션 - 다른 어노테이션에 적용되기 위한 어노테이션 @Retention, @Documneted, @Target, @Inherited, @Repeatable 등 커스텀 어노테이션커스텀 어노테이션은 자바의 리플렉션을 활용하여 특정..
-
[JAVA] Class 클래스자바 2024. 11. 14. 12:42
DataField annotation = field.getAnnotation(DataField.class);새로운 프로젝트를 시작하며 소스를 보고 있던 중 "클래스명.class"을 보고 왜 굳이 .class를 붙였을까 고민하던 중JAVA의 Class 클래스가 생각났고 다시 정리를 해봤습니다. Class 클래스자바에서 ` Class` 클래스는 클래스의 정보(메타데이터)를 다루는데 사용됩니다.`Class` 클래스를 통해 개발자는 실행 중인 자바 애플리케이션 내에서 필요한 클래스의 속성과 메서드에 대한 정보를 조회하고 조작할 수 있습니다. Class 클래스 주요 기능1. 타입 정보 얻기 : 클래스의 이름, 슈퍼클래스, 인터페이스, 접근 제한자 등과 같은 정보를 조회2. 리플렉션 : 클래스에 정의된 메서드, ..
-
[JAVA] Int & Integer 차이점 그리고 wrapper 클래스자바 2024. 8. 22. 16:02
실무를 하다보니 Integer와 Int의 차이점을 제대로 몰라 막힌적이 있었다. 어쨌든 업무를 빨리 끝내는게 우선이니 컴파일 오류가 나지 않도록 코드를 작성했고 이제서야 정리를 해본다. 기본형(Primitive Type)기본형은 객체가 아니기 때문에 다음과 같은 한계가 있다.1) 객체가 아님: 기본형 데이터는 객체가 아니기 때문에, 객체 지향 프로그래밍의 장점을 살릴 수 없다.2) null 값을 가질 수 없음: 기본형 데이터 타입은 null 값을 가질 수 없다. 때로는 데이터가 없음 이라는 상태를 나타내야 할 필요가 있는데, 기본형은 항상 값을 가지기 때문에 이런 표현을 할 수 없다. 래퍼 클래스 - 자바 래퍼 클래스 쉽게 이야기해서 래퍼 클래스는 기본형의 객체 버전이다.자바는 기본형에 대응하는 래..
-
[JAVA] Static 키워드자바 2024. 8. 20. 10:41
[JAVA] Static 키워드코드를 짜면서 static이라는 키워드에 대해 생각을 하지 않았다 면접 준비할 때 static이 뭔지에 대해서 암기만 했을 뿐... 이번에 왜 메서드와 클래스에 static을 넣었냐는 질문을 받으니 그냥...이라gitofjy.tistory.com면접을 위해 단순 암기 했던 static 키워드그리고 면접 때 제대로 된 답변을 못해 한 번 더 공부 후 정리했었다.1년이 지난 지금 실무를 하고 다시 공부를 해보니 더욱 정리가 되는 느낌이다.정말 마지막 정리 ! 자바 메모리 구조1) 메서드 영역(Method Area)- 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다. 1. 클래스 정보 : 클래스의 ..
-
[JAVA] 불변 객체자바 2024. 8. 19. 13:27
아직까지 실무에서 불변 객체 사용할 일이 없었지만 언젠간 마주칠 것 같아 정리한다. 자바의 데이터 타입은 크게 기본형과 참조형으로 나눌 수 있다.조심해야 할 점은 참조형의 공유 참조로 인한 사이드 이펙트이다.( 사이드 이펙트(Side Effect)는 프로그래밍에서 어떤 계산이 주된 작업 외에 추가적인 부수 효과를 일으키는 것 ) public class RefMain1_1 { public static void main(String[] args) { // 참조형 변수는 하나의 인스턴스를 공유할 수 있다. Address a = new Address("서울"); Address b = a; System.out.println("a = " + a); System.out.pr..
-
[JAVA] equals() - 동일성과 동등성자바 2024. 8. 19. 12:51
자바는 두 객체가 같다는 표현을 2가지로 분리해서 제공한다.1) 동일성(Identity) : == 연산자를 사용해서 두 객체의 참조가 동일한 객체를 가리키고 있는지 확인 (물리적으로 같은 메모리에 있는 객체 인스턴스인지 참조값을 확인하는 것)2) 동등성(Equality) : equals() 메서드를 사용하여 두 객체가 논리적으로 동등한 지 확인 package lang.object.equals;public class UserV1 { private String id; public UserV1(String id) { this.id = id; }}package lang.object.equals;public class ..
-
[JAVA] Object 클래스자바 2024. 8. 19. 11:28
java.lang 패키지자바가 기본으로 제공하는 라이브러리(클래스 모음) 중에 가장 기본이 되는 것 [ java.lang 패키지의 대표적인 클래스들 ]Object : 모든 자바 객체의 부모 클래스 String : 문자열 Integer , Long , Double : 래퍼 타입, 기본형 데이터 타입을 객체로 만든 것 Class : 클래스 메타 정보 System : 시스템과 관련된 기본 기능들을 제공 Object 클래스 자바에서 모든 클래스의 최상위 부모 클래스는 항상 Object 클래스이다.package lang.object;// 부모가 없으면 묵시적으로 Object 클래스를 상속받는다.// public class Parent extends Object {public class Parent { ..