본문 바로가기
728x90
반응형

Java39

[Java] 변수의 초기화 멤버변수(클래스 변수, 인스턴스 변수)와 배열의 초기화는 선택적이지만 지연변수의 초기화는 필수적 멤버변수의 초기화 방법 명시적 초기화: 변수를 선언과 동시에 초기화 하는 것 생성자 초기화 블럭 인스턴스 초기화 블럭 - 인스턴스변수를 초기화 하는데 사용 클래스 내에 블럭 { } 을 만들고 그 안에 코드를 작성 클래스 초기화 블럭 - 클래스 변수를 초기화 하는데 사용 인스턴스 초기화 블럭 앞에 static을 붙임 초기화 시기와 순서 클래스변수의 초기화시점 : 클래스가 처음 로딩될 때 단 한번 초기화됨 인스턴스변수의 초기화시점 : 인스턴스가 생성될 때마다 각 인스턴스별로 초기화가 이루어짐 클래스변수의 초기화순서 : 기본값 -> 명시적초기화 -> 클래스 초기화 블럭 인스턴스변수의 초기화순서 : 기본값 -> 명시.. 2021. 3. 7.
[Java] 생성자 생성자 : 인스턴스가 생성될 때 호출되는 인스턴스 초기화 메서드 클래스 이름과 같아야함. 리턴값이 없음(항상 리턴값이 없기때문에 void는 안붙인다.) 모든 클래스에는 생성자가 1개이상 존재해야한다. 생성자가 하나도 없을땐 컴파일러에 의해 기본 생성자가 자동으로 추가된다. 매개변수가 있는 생성자를 사용하면 인스턴스를 생성하는 동시에 원하는 값으로 초기화 할 수 있다. 더보기 출처, 자바의정석 2021. 3. 6.
[Java] 오버로딩 overloading 오버로딩 (overloading) : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것. (메서드 오버로딩) 오버로딩의 조건 1. 메서드 이름이 같아야 한다. 2. 매개변수의 개수 또는 타입이 달라야 한다. ※ 반환 타입(리턴 타입)은 오버로딩을 구현하는데 아무런 영향을 주지 못한다. 오버로딩이 아닌 예시 int add(int a, int b){ return a+b; } int add(int x, int y){ return x+y; } //메서드의 이름이 같지만, 매개변수의 개수, 타입이 같아 오버로딩 조건이 성립하지 못한다. int add(int a, int b){ return a+b; } long add(int a, int b){ return (long)(a+b); } // 리턴타입만 다른경.. 2021. 3. 6.
[Java] indexOf 문자열에서 문자 찾기 int indexOf(int ch) / int indexOf(String str) 주어진 문자(ch)가 문자열에 존재하는지 확인하여 위치(index)를 알려준다. 못 찾으면 -1을 반환한다(index는 0부터 시작) int indexOf(int ch, int pos) 주어진 문자(ch)가 문자열에 존재하는지 지정된 위치(pos)부터 확인하여 위치(index)를 알려준다. 못 찾으면 -1을 반환한다(index는 0부터 시작) 2021. 3. 6.
[Java] Scanner로 char 입력하기 / charAt(i); Scanner엔 문자를 입력받는 기능이 없어서 문자열을 입력받아 문자로 변환해줘야한다. 어떻게? charAt(i); 을 사용하면 된다. Scanner sc = new Scanner(System.in); String str = sc.next(); char ch1 = str.charAt(0); // 첫번째 문자 2021. 3. 5.
[Java] 클래스 메서드와 인스턴스 메서드 메서드 앞에 static이 붙어 있으면 클래스메서드이고 붙어 있지 않으면 인스턴스 메서드이다. 인스턴스 메서드는 인스턴스 변수와 관련된 작업을 하는, 즉 메서드의 작업을 수행하는데 인스턴스 변수를 필요로 하는 메서드이다. 인스턴스 변수는 인스턴스(객체)를 생성해야만 만들어지므로 인스턴스 메서드 역시 인스턴스를 생성해야만 호출할 수 있는 것이다. 인스턴스와 관계없는(인스턴스 변수나 인스턴스 메서드를 사용하지 않는) 메서드를 클래스 메서드(static 메서드)로 정의한다. 1. 모든 인스턴스에서 같은 값이 유지되어야 하는 변수는 static을 붙여서 클래스변수로 정의 2. 클래스 변수는 인스턴스를 생성하지 않아도 사용할 수 있다. 3. 클래스 메서드는 인스턴스 변수를 사용할 수 없다. 4. 메서드 내에서 인.. 2021. 3. 5.
[Java] 기본형 매개변수와 참조형 매개변수 기본형 매개변수 : 기본형 값이 복사된다. 변수의 값을 읽기만 할 수 있다. 참조형 매개변수 : 인스턴스의 주소가 복사된다. 변수의 값을 읽고 변경할 수 있다. 더보기 출처, 자바의정석 2021. 3. 5.
[Java] JVM의 메모리 구조 1. 메서드 영역 (method area) - 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일을 읽어서 분석, 클래스에 대한 정보(클래스 데이터)를 이곳에 저장한다. 이 때 그 클래스의 클래스변수도 이 영역에 함께 생성된다. 2. 힙 (heap) - 인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성. 인스턴스변수들이 생성되는 공간이다. 3. 호출스택 (call stack 또는 execution stack) - 메서드의 작업에 필요한 메모리 공간을 제공한다. 메서드가 작업을 수행하는 동안 지역변수(매개변수 포함)들과 연산의 중간결과 등을 저장하는데 사용. 호출된 메서드를 위한 메모리가 할당되며 작업을 마치면 할당 된 메모리 공간은 비워진다. 더보기 2021. 3. 5.
[Java] 변수와 메서드 1) 변수 선언 위치에 따른 변수의 종류 1. 인스턴스변수 (instance variable) 클래스 영역에 생성, 클래스의 인스턴스를 생성할 때 만들어진다. 독립적인 저장공간을 가지며 서로 다른 값을 가질 수 있다. 인스턴스마다 고유한 상태를 유지해야하는 속성의 경우, 인스턴스변수로 선언한다. 2. 클래스변수 (class variable) 인스턴스변수 앞에 static을 붙여주면 된다. 클래스변수는 모든 인스턴스가 공통된 저장공간(변수)을 공유한다. 인스턴스변수와 달리 인스턴스를 생성하지 않고도 사용할 수 있다. '클래스이름.클래스변수'와 같은 형식으로 사용한다. 3. 지역변수 (local variable) 메서드 내에 선언되어 메서드 내에서만 사용 가능하다. 메서드가 종료되면 소멸되어 사용할 수 없게.. 2021. 3. 3.
728x90
반응형