본문 바로가기

JAVA

(12)
[JAVA] ArrayList Collection 인터페이스 구조 더보기 ArrayList란? 객체 배열을 구현한 클래스이며 컬렉션 인터페이스와 그 하위 List 인터페이스를 구현하였습니다. 객체 순서를 기반으로 순차적으로 자료를 관리하는 프로그램을 구현할 때 사용합니다. ArrayList 생성자 ArrayList는 3가지 형태의 생성자가 있다. transient Object[] elementData; private static final Object[] DEFAULTCAPACITY_EMPTY_ELEMENTDATA = {}; // 초기 크기를 갖는 생성자 public ArrayList(int initialCapacity) { if (initialCapacity > 0) { this.elementData = new Object[init..
[JAVA] 추상클래스와 인터페이스 추상메서드 // 추상클래스 (불안전한 객체) public abstract class Animal{ // 추상메서드 (불안전한 메서드) public abstract void eat(){} // 일반 메서드 public void movie(){} } 추상 메서드는 객체를 만들 수 없습니다. Animal ani = new Animal(); // 만들 수 없다 자신의 혼자서는 사용을 하지 못하며, 부모의 역할로만 사용할 수 있습니다. public class Dog extends Animal{ public void eat(){} } public class Cat extends Animal{ public void eat(){} } 추상 클래스인 부모에 추상 메서드가 있다면, 구현 클래스에는 반드시 추상 메서드를 구..
[JAVA] 메서드 오버로딩(Method Overloading) 과 오버라이딩(Method Overriding) 1. 메서드 오버 로딩이란? 같은 이름의 메서드를 여러 개 가지면서 매개변수의 유형과 개수가 다르도록 하는 기술입니다. 즉, 메서드의 signature가 다르면 된다. ( signature : 매개변수의 타입, 개수) public class Test( public static void main(String[] args){ Overload ov = new Overload(); ov.hap(34.6f, 46); ov.hap(34, 62); ov.hap(74.6f, 26.6f); } ) 예를 들어, Overload라는 클래스가 있고 hap이라는 메서드가 있다고 가정합니다. 위의 코드에서 Overload인스턴스를 만들고 hap이라는 메서드를 호출하는데, 3개의 메서드 모두 매개변수의 타입이 다르다는 것을 알 수..
[JAVA] 메서드가 메모리에 저장되는 과정 1. Static Mehtod의 경우 코드 다음과 같이 static으로 정의된 main과 add 메서드가 있다고 해봅니다. main메서드는 변수 a와 b를 30, 50으로 선어하였고 add메서드를 통해 v를 선언하였습니다. Method Area Method Area는 byte code가 저장되는 영역으로 static zone, non-static zone으로 나누어 집니다. 클래스파일을 실행시키면 JVM은 main메서드를 제일먼저 찾습니다. main과 add는 static으로 선언된 메서드이기 때문에 static zone에 저장이 됩니다. Statck Area Stack Area는 Stack으로 되어있기 때문에 LIFO( Last In First Out )구조 입니다. 그래서 제일 먼저 실행된 main메..
[JAVA] 변수선언과 할당 1. 변수(Variable) 데이터를 저장할 메모리 공간의 이름(symbol)입니다. 2. 자료형(Data Type) 변수의 크기와 변수에 저장될 데이터의 종류를 결정하는 것입니다. Symbol Table(변수목록표) 변수가 기억공간을 할당 받으면 변수의 번지가 등록되는 테이블입니다. symbol table을 거쳐 memory에 접근합니다. symbol table에 변수가 없으면 can not find symbol 에러가 발생합니다. 사용자 설정 자료형 예를 들어 책(Book)을 데이터화 하고 싶다고 가정합니다. 하지만 책(Book)은 자바에서 제공해주는 자료형이 아니기 때문에 직접 만들어 주어야 합니다. 우선, 책을 구성하고 있는 것들을 생각해 봅니다. 1. 책 2. 가격 3. 회사 4.페이지 등이 있..
[JAVA] 자바 구동방식 A.java 확장자 .java는 실행파일이 아닙니다( .exe 가 아님 ) 소스파일입니다. javac.exe 에 의하여 컴파일됩니다. 컴파일된 파일은 확장자가 .java가 아닌 .class가 됩니다. A.class .class 파일은 실행가능한 byte code 파일입니다. 즉, 실행하기 전 단계로만 만들어 놓은 어정쩡한 코드이며 이것 자체로 바로 실행 할 수 없습니다. 그래서 별도로 클래스파일을 실행해주는 엔진이 필요합니다. java.exe에 의해 실행됩니다. JVM Java Virtual Machine .class 파일을 실행해주는 엔진입니다. 가상머신에 의해서 클래스파일을 메모리에 로딩하고, 메모리에 로딩함과 동시에 자기 운영체제 플랫폼에 맞게 리소스를 재 컴파일해서 실행을 하게됩니다. JDK를 설..
[JAVA] 하나의 폴더로 이클립스 동작하기 집에서 혼자 개발하다가 회사 혹은 학교에서 작업할 일이 생긴다면, 하지만 그 곳에는 내가 세팅한 개발환경이 아니라면 우리는 JDK혹은 이클립스를 새로 깔아야 합니다. 이것을 방지하기 위해 하나의 폴더안에 JDK, 이클립스를 넣어 어느 장소를 가든 폴더 하나로 작업을 할 수 있게끔 할 수 있습니다. 폴더 구성 폴더는 C드라이브에서 JavaTCP폴더를 만들었습니다. 어느곳이든 이 폴더만 있으면 이클립스가 실행하도록 하려고 합니다. eclipse 폴더 홈페이지에서 eclipse설치하여 압축을 해제한 폴더입니다. sw 폴더 JDK는 11버전이지만 버전은 아무거나 상관없습니다. jdk-11.0.13 폴더 위의 sw 폴더에서 jdk파일을 설치합니다. workspace eclipse의 저장공간입니다. 이클립스 바로가..
[JAVA] JavaSE, JavaEE, JavaME Java 개발환경 플랫폼 1. JavaSE 2. JavaEE 3. JavaMe 4. JavaAndroid JavaSE Java Standard Edition 흔히 자바 언어라고하는 대부분의 패키지가 포함된 에디션입니다. JavaEE Java Enterprise Edition JavaSE 플랫폼을 기반으로 그 위에 탑재됩니다. 웹 프로그래밍에 필요한 기능을 다수 포함하고 있습니다. - JSP, Servlet, JNDI, JTA, EJB 등 대규모, 다계층, 확장성, 신뢰성, 보안 네트워킹 API 등을 제공합니다. JavaME Java Micro Edition JavaEE와 마찬가지로 JavaSE 플랫폼을 기반으로 그 위에 탑재됩니다. 작은 장치에서 동작하는 전용 클래스 라이브러리들을 제공합니다. JavaS..