언어/Java 15

자바 싱글톤패턴이란?

자바에서 싱글톤패턴이란 하나의 클래스가 단 하나의 인스턴스만을 가지는 것을 뜻한다. 싱글톤 패턴의 장점유일한 인스턴스 : 하나의 인스턴스만을 만들 수 있다. 때문에 일관된 상태를 유지할 수 있고 전역에서 접근가능하도록 할 수 있다.메모리 절약 : 단 하나의 인스턴스만을 사용하기 때문에 메모리를 절약할 수 있다.지연 초기화 : 인스턴스가 실제 사용되는 시점에 생성하여 초기 비용을 줄일 수 있다. (여기서 초기 비용은 현실에서의 재화를 말하는것은 아니고 메모리의 사용량이나 시간적인 측면에서의 비용을 말하는 것.싱글톤 패턴의 단점의존성이 높아진다 : 객체를 미리 생성하고 정적 메서드를 통해 사용하기 때문에 의존성이 높아지게 되는 문제점이 있다. (높은 결합)기본이 private 기 때문에 상속이 어렵다 : 싱..

언어/Java 2024.10.03

JAVA 예외처리

우선 예외처리 로깅을 하기 전에 "오류" 라는 단어에 대한 정의오류 : 개발자가 의도하지 않은 결과 , 참에서의 거리오류 종류 :- 컴파일 에러 : 문법을 잘못 작성하거나 해서 컴파일을 하기 전에 일어나는 에러. 아예 실행이 되지 않는다 !    그래서 나타나는 오류문으로 오류부분을 파악할 수 있어서 비교적 수정이 쉽다. !- 런타임 에러 : 개발자가 코드를 잘못짜서 실행 도중에 일어나는 에러 (치명적인 에러임!!)    에러 발생시 개발자가 직접 오류가 어디서 났는지 찾아야 한다.    또는 의도치 않은 예외상황으로 일어나는 에러가 있을 수도 있음. 암튼 오류는 무조건 일어나면 안되는 안좋은 문제라는거다 ! 예외 처리 : 프로그램을 실행할 때 일어나는 오류를 대비해 미리 코드를 작성하는것 예외는 오류와..

언어/Java 2024.10.01

24년 09월 23일

자바접근 한정자public : 모든 클래스에서 사용가능private : 오로지 클래스 내에서만 사용가능protected : default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 필드와 메소드를 사용할 수 있도록 합니다. 차이점으로 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면 필드와 메소드를 사용할 수 있습니다.default : 따로 지정하지 않을시에 지정되는 한정자. 같은 패키지 안에서는 제한 없이 필드와 메소드를 사용할 수 있으나 다른 패키지에서는 접근할 수 없음캡슐화 : 생성한 객체를 어떤 메서드와 필드로 어떻게 일을 수행할지 외부에 숨기는 특성특정 목적의 정보가 외부로 노출되는 것을 막기 위해 정보 은닉을 수반한다특정 목적 기능을 구현하는데 필요한 세부 기능들을 묶어서..

언어/Java 2024.09.30

자바의 컬렉션이란?

컬렉션이란 ?데이터의 집합 , 그룹컬렉션들은 이를 구현하는 클래스를 정의하는 인터페이스를 제공한다.ArrayListArrayList 는 interface 인 List 구현(implements) 한 클래스이다그렇기 때문에 선언할 때 List로 업캐스팅을 해서 선언을 많이 한다.List listA = new ArrayList();//이렇게 하면 List 클래스를 참조하는 listA이기 때문에나중에 다른 List 구현체로 변경할 수 있기 때문에 유연성이 높아진다. 생성자)new ArrayList() : 기본 크기가 10인 배열 생성new ArrayList(기본크기) : 기본 크기를 지정 (배열이 다 차면 기본크기만큼 사이즈가 증가함)new ArrayList() : 배열 값의 타입을 지정ArrayList 의 대..

언어/Java 2024.09.30

자바 Property란?

Property 란?Properties는 HashMap의 구버전인 Hashtable을 상속받아 구현한 것으로, Hashtable은 키와 값을 (Object, Object)의 형태로 저장하는데 비해 Properties는 (String, String)형태로 저장하는 보다 단순화된 컬렉션 클래스이다.주로 애플리케이션의 환경설정과 관련된 속성을 저장하는데 사용되며 데이터를 파일로부터 읽고 쓰는 편리한 기능을 제공한다. 그래서 간단한 입출력은 Properties를 활용하면 몇 줄의 코드로 쉽게 해결할 수 있다.

언어/Java 2024.09.30

Java 제네릭이란?

제네릭 (Generic) = 일반적인자료형 정하는거를 객체 생성시점으로 미루는것. 연산자를 사용함.클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법제네릭 타입의 장점 :타입 안정성의도하지 않은 타입의 객체가 저장되는 것을 막는다.저장된 객체를 꺼내올 때 다른 타입으로 잘못 형변환하여 발생할 수 있는 오류를 줄인다.타입 안정성(type safety)코드가 간결해진다단점 : 다운캐스팅을 할 필요는 없지만 정해진 자료형만 사용가능하다. public class Box { private T item ; } //어떤 타입의 item 도 담을 수 있다. 괄호 꺾쇠 안에 타입명을 기재한다. 따로 지정해주지 않으면 String타입으로 지정되어 문자열 데이터만 리스트에 적재할 수 있게 된다. ArrayLi..

언어/Java 2024.09.30

접근한정자란?

접근 한정자 말 그대로 접근을 한정하기 위해 사용한다. 여기서 접근이란 클래스 및 인터페이스 그리고 이들이 가지고 있는 멤버의 접근을 말합니다. 접근 한정자public : 모든 클래스에서 사용가능private : 오로지 클래스 내에서만 사용가능protected : default 접근 제한과 마찬가지로 같은 패키지에 속하는 클래스에서 필드와 메소드를 사용할 수 있도록 합니다. 차이점으로 다른 패키지에 속한 클래스가 해당 클래스의 자식 클래스라면 필드와 메소드를 사용할 수 있습니다.default : 따로 지정하지 않을시에 지정되는 한정자. 같은 패키지 안에서는 제한 없이 필드와 메소드를 사용할 수 있으나 다른 패키지에서는 접근할 수 없음

언어/Java 2024.09.30

업캐스팅 , 다운캐스팅이란?

아마 자바 기본 문법을 배우면서 가장 이해가 안되고 어려운 부분인것 같다.어렵다기보다는 머리로는 이해하겠는데 자꾸 왜?? 라는 질문이 생긴다.대체 왜 이걸 사용해야 하는가 , 이걸 사용하면 어떤 면에서 좋은건가.그래도 머리 좋은 사람들이 만든 것이니 분명 무슨 이유가 있겠지. 그럼 한번 알아보자.  우선 클래스도 자료형이라는 사실을 알고있어야 한다.그렇기 때문에 우리는 자료형을 바꿀 때 형변환(캐스팅)이라는 것을 한다. 하나의 데이터 타입을 다른 타입으로 바꾸는 것을 타입 변환 혹은 형변환(캐스팅) 이라고 한다.출처: https://inpa.tistory.com/entry/JAVA-☕-업캐스팅-다운캐스팅-한방-이해하기 [Inpa Dev 👨‍💻:티스토리]  업캐스팅(Upcasting) : 하위클래스 객..

언어/Java 2024.09.25

추상클래스와 interface 의 차이?

추상클래스 & 추상메서드이때까지 사용한 일반적인 클래스는 구체적 으로 데이터를 담아 인스턴스화 하여 직접 다루는 클래스이다.그 반대로 추상클래스는 구체적이지 않은 추상적인(abstract) 데이터를 담고 있는 클래스이다.그래서 추상클래스는 일반 클래스와 다르게 인스턴스화가 불가능하다.추상 클래스는 클래스에 추상화를 접목 시켜 구조적이게 객체를 설계하고 , 그 프로그램의 유지보수성을 올려주며만일 프로그램에 어떠한 기능을 업그레이드 한다고 하면 수정/추가에 대해 유연하게 만들어주며 더 퀄리티가 높은 프로그램을 개발할 수 있게 해준다.그렇기에 추상 클래스는 개별 프로젝트 보다는 범용 라이브러리나 프레임워크 시스템을 설계하는데 많이 사용된다. 추상클래스 & 추상메서드 기본문법클래스명과 메서드명 앞에 abstra..

언어/Java 2024.09.23

생성자란?

생성자란?생성자는 객체가 생성될 때 자동으로 호출되는 특수 목적의 멤버함수로 객체의 초기화를 위해 사용된다. 생성자의 특징생성자의 이름은 클래스 이름과 동일해야 합니다.생성자는 다른 멤버함수(메소드)와는 다르게 리턴 타입이 없습니다.생성자는 객체가 생성될때 자동으로 한번 호출됩니다.생성자는 매개변수 조건에 따라 여러개를 작성할 수 있습니다. (오버로딩)생성자는 클래스에 최소 1개는 있어야 하며, 생성자 코드가 없을 경우 컴파일러가 기본생성자를 자동으로 생성합니다.(주의할점은, 생성자 코드가 1개라도 작성되어 있다면, 컴파일러는 기본생성자가 없다고 하더라도 기본생성자를 자동으로 생성하지 않습니다.)생성자의 종류생성자에는 기본 값을 초기화시켜주는 기본 생성자와 매개변수를 가진 생성자가 있다.이 때 만드는 객..

언어/Java 2024.09.23