본문 바로가기

JAVA/개념정리

(8)
자바/Java 참조변수의 형변환이란? 자바/Java 참조변수의 형변환이란? 기본형 변수와 깉이 참조변수도 형변환이 가능하다. 단, 서로 상속관계에 있는 클래스사이에만 가능하기 때문에 자손타입의 참조변수를 조상타입의 참조변수로, 조상타입의 참조 변수를 자손타입의 참조변수로의 형변환만 가능하다. 기본형 변수의 형변환에서 작은 자료형에서 큰 자료형의 형변환은 생략이 가능하듯이, 참조형 변수의 형변환에서는 자손타입의 참조변수를 조상타입으로 형변환하는 경우에는 형변환을 생략할 수 있다. 자손타입 -> 조상타입 (Up-castion) : 형변환 생략가능 자손타입
자바/Java 자바의 다형성이란? 자바/Java 자바의 다형성이란? 객체지향 개념에서의 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현 하였습니다. 이를 좀 더 구체적으로 말하자면, 조상클래스 타입의 참조변수로 자손클래스의 인스턴스를 참조할 수 있도록 하였다는 것 입니다. 1) CarTest.java package arabiannight.tistory.com.java.test; public class CarTest { public static void main(String[] args) { Car c = new FireEngine(); Car c2 = new Ambulance(); c.drive(); c2.drive..
자바/Java instanceof 연산자란? 자바/Java instanceof 연산자? 자바의 instanceof 연사자란 무엇일까요? 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 instanceof 연산자를 사용합니다. 주로 조건문에 사용되며, instanceof의 왼쪽에는 참조변수를 오른쪽에는 타입(클래스명)이 피연산자로 위치합니다. 그리고 연산의 결과로 boolean값인 true, false 중의 하나를 반환 합니다. instanceof를 이용한 연산결과로 true를 얻었다는 것은 참조변수가 검사한 타입으로 형변환이 가능하다는 것을 뜻합니다. [참고] 값이 null인 참조변수에 대해 instanceof 연산을 수행하면 flase를 결과로 얻는다. 1) Instanceof.java package arabiannight.tist..
자바/Java 자바 용어 정리 ~! 자바/Java 자바 용어 정리 ~! 1) 클래스(Class)클래스란 어떤 특정 종류의 모든 객체들에 대해 일반적으로 적용할 수 있는 변수와 메소드를 정의하고 있는 소프트웨어적인 설계도(blueprint) 또는 프로토타입(prototype). 실세계에 존재하는 객체들이 가질 수 있는 상태와 행동들에 대해 소프트웨어적으로 추상화(abstraction) 해 놓은 것. 2) 추상클래스추상 클래스는 객체가 가지는 특성들을 추상화시켜 놓았을 뿐 아직 구체화 시키지 못한 클래스이므로, 이 추상클래스를 상속하는 하위 클래스에서 좀 더 구체화 시키도록 하는 것이다. 따라서, 추상클래스를 상위 클래스로 하여 상속하는 하위 클래스는 추상클래스 인 상위 클래스에서 완전히 구현하지 못한 부분들을 완전하게 구현해 주어야만 하위 ..
자바/Java break문, contunue문, 이름 붙은 반복문 사용법 자바/Java break문, contunue문, 이름 붙은 반복문 사용법 2.4 break문 switch문에서 이미 배운 것과 같이 break문은 현재 위치에서 가장 가까운 switch문 또는 반복문을 벗어나는데 사용된다. 주로 if문과 함께 사용되어 특정 조건을 만족하면 반복문을 벗어나도록 한다. [실행결과]i=15 sum=105 숫자를 1부터 계속 더해 나가서 몇까지 더하면 합이 100을 넘는지 알아내는 예제이다. i의 값을 1부터 1씩 계속 증가시켜가며 더해서 sum에 저장한다. sum의 값이 100을 넘으면 if문의 조건이 true이므로 break문이 수행되어 자신이 속한 반복문을 즉시 벗어난다. 이처럼 무한 반복문에는 조건문과 break문이 항상 같이 사용된다. 그렇지 않으면 무한히 반복되기 때..
자바/Java JVM 메모리 구조 자바/Java JVM 메모리 구조 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영역으로 나누어 관리한다. 그 중 3가지 주요영역(Method Area, 호출스택, Heap)에 대해서 알아보도록 하자. [참고] cv는 클래스변수, lv는 지역변수, iv는 인스턴스변수를 뜻한다. 1. 메소드영역(Method Area)- 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이타)를 Method Area에 저장한다. 이 때, 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성된다. 2. 힙(Heap)- 인스턴스가 ..
자바/Java static의 사용법과 개념예 자바/Java static의 사용법과 개념예 먼저 결론부터 간단히 정리하면 다음과 같습니다. 1.클래스를 설계할 때, 멤버변수 중 모든 인스턴스에 공통적으로 사용해야하는 것에 static을 붙인다. - 인스턴스를 생성하면, 각 인스턴스들은 서로 독립적이기 때문에 서로 다른 값을 유지한다. 경우에 따라서는 각 인스턴스들이 공통적으로 같은 값이 유지되어야 하는 경우 static을 붙인다. 2. static이 붙은 멤버변수는 인스턴스를 생성하지 않아도 사용할 수 있다. - static이 붙은 멤버변수(클래스변수)는 클래스가 메모리에 올라갈때 이미 자동적으로 생성되기 때문이다. 3. static이 붙은 메서드(함수)에서는 인스턴스 변수를 사용할 수 없다. - static이 붙은 메서드는 인스턴스 생성 없이 호출..
자바/Java ArrayList<T> 제네릭스(Generics)란? 자바/Java ArrayList 제네릭스(Generics)란? 자바로 코딩을 하면서 ArrayList 다음 에 ,,, 라고 쓰여진 형식을 많이 접해 보셨을 겁니다. 저도 처음 자바 공부를 시작하면서 저게 뭐지? 라는 의문을 상당히 길게 품었었던 적이 있습니다. 물론 지금도 없지 않아 있을까요? ㅎㅎ 그럼 과연 제네릭스란 무엇일까요? 제네릭스란 쉽게말해서 ArrayList(컬렉션 클래스에서 사용가능하지만 쉬운 설명을 위해 대표적인 컬렉션 클래스인 ArrayList를 가지고 설명 하겠습니다.) 가 다룰 객체를 미리 명시해줌으로써 형변환을 하지 않고 사용하는 것입니다. 즉 ArrlayList가 사용할 객체의 타입이란 이야기 입니다. 예를 들어 우리가 현실에서 갤럭시S2블랙 를 공동 구매 한다고하면 사람들이 1..