java 36

java (StringBuffer)

*StringBuffer -문자열을 추가하거나 변경 할 때 사용되는 자료형 -append 메소드를 사용하여 문자열을 추가 -toString() 메소드를 이용하면 String 자료형으로 변경할 수 있다. StringBuilder StringBuffer와 비슷한 자료형으로 StringBuilder가 있다. StringBuilder의 사용법은 StringBuffer의 사용법과 동일 StringBuffer는 멀티 스레드 환경에서 안전하다는 장점이 있고 StringBuilder는 StringBuffer보다 성능이 우수한 장점이 있다. 따라서 동기화를 고려할 필요가 없는 상황에서는 StringBuffer 보다는 StringBuilder를 사용하는 것이 유리 append() 문자열 추가에 사용 됩니다. delete(..

java 2022.09.28

java (object 클래스)

*java.lang.Object 클래스 java.lang 패키지 중에서도 가장 많이 사용되는 클래스 모든 자바 클래스의 최고 조상 클래스 자바의 모든 클래스는 Object 클래스의 모든 메소드를 바로 사용할 수 있다. 필드를 가지지 않으며, 총 11개의 메소드만으로 구성 toString()메소드 -해당 인스턴스에 대한 정보를 문자열로 반환 -이때 반환되는 문자열은 클래스 이름과 함께 구분자로 '@'가 사용되며, 그 뒤로 16진수 해시 코드(hash code)가 추가(객체의 메모리 번지를 이용해 해시 코드 생성) - HashSet, HashMap, Hashtable 등 -16진수 해시 코드 값은 인스턴스의 주소를 가리키는 값으로, 인스턴스마다 모두 다르게 반환 equals() 메소드 -해당 인스턴스를 매개..

java 2022.09.28

java (API 클래스)

*자바 API 자바에서 제공하는 다양한 API는 라이브러리라고도 부른다. java.lang 패키지 -java.lang과 java.util 패키지가 가장 많이 사용 -java.lang 패키지는 자바에서 가장 기본적인 동작을 수행하는 클래스들의 집합 -java.lang 패키지의 클래스들은 import 문을 사용하지 않아도 클래스 이름만으로 바로 사용할 수 있다. Object 자바의 최상위 클래스 System - 표준 입출력 장치로 부터 데이터를 입력 받거나 출력 할 때 사용, 자바의 JVM을 종료 시킬 때 사용, 쓰레기 수집기를 실행 요청 할 때 사용 Class - 클래스를 메모리로 로딩 할 때 사용 String - 문자열을 저장하고 여러가지 정보를 얻을 때 사용 StringBuffer, StringBuld..

java 2022.09.28

java (package, import문)

*패키지(package) -클래스와 인터페이스의 집합 -클래스와 인터페이스를 함께 묶음으로 파일을 효율적으로 관리 -협업 시 서로 작업한 클래스 사이에서 발생 할 수 있는 이름의 충돌 문제도 패키지를 사용하면 피할 수 있다. -자바에서 패키지는 물리적으로 하나의 디렉토리를 의미 -클래스 이름이 동일하더라도 패키지가 다르면 다른 클래스 인식 -자바에서 자주 사용되는 패키지 중 하나인 String 클래스의 패키지 이름은 java.lang.String (java.lang 패키지에 속한 클래스) 패키지의 선언 -패키지 이름은 관례상 소문자로 작성 -숫자로 시작하면 안되고 특수문자는 _와 $만 사용 가능 -java로 시작하는 패키지는 자바 표준 API를 의미 하므로 사용해서는 안됨. 패키지를 사용하는 이유 -비슷..

java 2022.09.27

java (default method, annotation)

*Default Method -인터페이스에 있는 구현 메서드를 의미 -기존의 추상 메서드와 다른 점은 메서드 앞에 default 예약어를 붙인다. -구현부 { }가 있어야 한다. -인터페이스에 선언되지만, 인터페이스에서 사용 할 수 없다. *annotation -어노테이션은 메타데이터라고 볼 수 있다. -메타데이터란 애플리케이션이 처리해야 할 데이터가 아니라, 컴파일 과정과 실행과정에서 코드를 어떻게 컴파일하고 처리 할 것인지 알려 주는 정보이다. @AnnotationName -컴파일러에게 코드 문법의 에러를 체크하도록 정보를 제공 -소프트웨어 개발 툴이 빌드나 배치 시 코드를 자동으로 생성 할 수 있도록 정보를 제공 -실행 시 특정 기능을 실행하도록 정보를 제공 어노테이션의 종류 -표준(내장)어노테이션..

java 2022.09.27

java (인터페이스)

*인터페이스 -자식 클래스가 여러 부모 클래스를 상속받을 수 있다면, 다양한 동작을 수행할 수 있다는 장점을 가지게 될 것이다. 하지만 클래스를 이용하여 다중 상속을 할 경우 메소드 출처의 모호성 등 여러 가지 문제가 발생할 수 있어 자바에서는 클래스를 통한 다중 상속은 지원하지 않는다. -하지만 다중 상속의 이점을 버릴 수는 없기에 자바에서는 인터페이스라는 것을 통해 다중 상속을 지원하고 있다. -인터페이스(interface)란 다른 클래스를 작성할 때 기본이 되는 틀을 제공하면서, 다른 클래스 사이의 중간 매개 역할까지 담당하는 일종의 추상 클래스를 의미한다. -자바에서 추상 클래스는 추상 메소드뿐만 아니라 생성자, 필드, 일반 메소드도 포함할 수 있다. -인터페이스(interface)는 오로지 추상..

java 2022.09.26

java(추상 클래스)

*추상 메소드(abstract method) -자식 클래스에서 반드시 오버라이딩해야만 사용할 수 있는 메소드 -추상 메소드를 선언하여 사용하는 목적은 추상 메소드가 포함된 클래스를 상속받는 자식 클래스가 반드시 추상 메소드를 구현하도록 하기 위해 -예를 들면 모듈처럼 중복되는 부분이나 공통적인 부분은 미리 다 만들어진 것을 사용하고, 이를 받아 사용하는 쪽에서는 자신에게 필요한 부분만을 재정의하여 사용함으로써 생산성이 향상되고 배포 등이 쉬워진다. -추상 메소드는 선언부만이 존재하며, 구현부는 작성되어 있지 않다. -작성되어 있지 않은 구현부를 자식 클래스에서 오버라이딩하여 사용하는 것 -추상 메소드 선언 : abstract 반환타입 메소드이름(); *추상 클래스 -하나 이상의 추상 메소드를 포함하는 클..

java 2022.09.26

java (싱글톤)

*싱글톤 프로그램 전체에서 단 하나의 객체만 만들도록 보장해야 하는 경우가 있다. 단 하나만 생성된다고 해서 이 객체를 싱글톤이라고 한다. 싱글톤 패턴을 사용하는 이유 -메모리 측면 최초 한번의 new 연산자를 통해서 고정된 메모리 영역을 사용하기 때문에 추후 해당 객체에 접근할 때 메모리 낭비를 방지할 수 있다. 뿐만 아니라 이미 생성된 인스턴스를 활용하니 속도 측면에서도 이점이 있다고 볼 수 있다. -다른 클래스 간에 데이터 공유가 쉽다 싱글톤 인스턴스가 전역으로 사용되는 인스턴스이기 때문에 다른 클래스의 인스턴스들이 접근하여 사용할 수 있다. 하지만 여러 클래스의 인스턴스에서 싱글톤 인스턴스의 데이터에 동시에 접근하게 되면 동시성 문제가 발생할 수 있으니 이점을 유의해서 설계하는 것이 좋다. 예제

java 2022.09.22

java (getter, setter, 정적 멤버와 메소드)

*Getter와 Setter 메소드 객체지향 프로그래밍에서는 객체 내부의 데이터를 객체 외부에서 접근하는 것을 막는다. 이에 대한 정해진 정상적인 접근을 허용하기 위한 개념으로 게터와 세터라는 개념이 있다. 예제 *정적 멤버와 메소드 -정적 멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용 할수 있는 필드와 메소드를 의미 -개체 소속이 아니고 인스턴스 소속 -정적메소드 내부에서는 인스턴스 필드나 인스턴스 매소드를 사용 할 수 없다. -static 변수와 메소드는 클래스를 통해 호출 예제 결과

java 2022.09.21

java (접근제한자)

*접근제한자 -클래스 및 인터페이스 그리고 멤버에 대한 접근을 제한 -클래스와 인터페이스를 다른 패키지나 클래스에서의 접근을 제한하는 용도로 사용 -두 개 이상 같이 사용 할 수 없다 -데이터은닉 혹은 캡슐화에 대한 핵심 개념 (데이터은닉 : 사용자가 알 필요 없는 정보나 숨겨야 할 정보를 보이지 않도록 한다는 개념) private -private 접근 제어자를 사용하여 선언된 클래스 멤버는 외부에 공개되지 않으며, 외부에서는 직접 접근할 수 없다. -자바 프로그램은 private 멤버에 직접 접근할 수 없으며, 해당 객체의 public 메소드를 통해서만 접근할 수 있다. protected -클래스 내부에서의 접근을 허용 -부모로 부터 상속받은 클래스에 대해서 접근을 허용 default -접근 제한자가 ..

java 2022.09.20