728x90
반응형
728x90
반응형
Java SE(Standard Edition)
 자바 스탠다드 에디션은 가장 보편적으로 쓰이는 자바 API집합체입니다. 예전에는 J2SE로 불렸으나 버전 6.0이후에 Java SE로 변경되었습니다. 이전에는 썬 마이크로시스템즈에서 관리했으나 현재는 JCP 주도하에 개발되고 있습니다. 일반 자바 프로그램 개발을 위한 용도로 사용되며 스윙이나 AWT와 같은 GUI 방식의 기본 기능이 포함됩니다.

Java EE(Enterprise Edition)
 자바 엔터프라이즈 에디션은 자바를 이용한 서버측 개발을 위한 플랫폼입니다. Java EE는 표준 플랫폼인 Java SE를 사용하는 서버를 위한 플랫폼입니다. 엔터프라이즈 환경을 위한 도구로 EJB, JSP, Servlet, JNDI 같은 기능을 지원하며 WAS를 이용하는 프로그램 개발 시 사용됩니다.
 *EJB(Enterprise JavaBeans): 기업환경의 시스템을 구현하기 위한 서버측 컴포넌트 모델이다. 즉, EJB는 애플리케이션의 업무 로직을 가지고 있는 서버 애플리케이션이다. EJB 사양은 Java EE의 자바 API 중 하나로, 주로 웹 시스템에서 JSP는 화면 로직을 처리하고, EJB는 업무 로직을 처리하는 역할을 한다.

Java ME(Micro Edition)
자바 마이크로 에디션은 제한된 자원을 가진 휴대폰, PDA, 셋탑박스 등에서 Java프로그래밍 언어를 지원하기 위해 만들어진 플랫폼입니다. 임베디드 시스템에서 자바로 프로그램을 개발할 떄 이용합니다.

SDK(Standard Development Kit or Softeware Development Kit)

 개발 언어의 소프트웨어 개발 킷으로, 프로그램을 개발하려면 개발하는 프로그램있어야 하는데 이를 의미합니다.


JDK(Java Development Kit)

 자바 개발을 위한 필수 도구입니다. JDK는 JRE를 포함하고 있습니다.


JRE(Java Runtime Environment)

 JDK로 만들어진 프로그램을 실행할 수 있도록 합니다. 파일 용량이 적은 대신 개발을 할 수 없습니다. 예를 들어 한글 뷰어의 경우 한글 파일을 읽을 수 있지만 작성하지는 못하는 기능과 비슷합니다.


JVM(Java Virtual Machine)

 자바가상머신의 약자로, 사용자가 자바 파일을 생성한 후 JDK의 컴파일을 커쳐 바이트 코드인 .class가 되어서 JVM을 거치면 컴퓨터가 사용할 수 있는 기계언어로 변경해주는 역할입니다.



728x90
반응형
728x90
반응형

오늘은 오버로딩과 오버라이딩의 차이점을 알아보도록 하겠습니다.

면접 질문에서 자주 나오는 유형의 질문이라고 하는데요.

자바의 다형성 특징을 나타내는 방법으로 오버로딩오버라이딩이 있습니다.


오버로딩 : 같은 이름의 메소드를 여러 개 가지면서 매개 변수를 다르게 정의하는 것

오버라이딩 : 상위 클래스(부모 클래스)가 갖고 있는 메소드(자식 클래스)를 하위 클래스에서 재정의해 사용하는 것


오버로딩(Overloading)에 대해 자세히 알아 보겠습니다.

-메소드 이름은 같다.

-오버로딩은 매개 변수 타입, 매개변수가 다르다.



오버로딩은 실제로 프로젝트를 진행하면 여러 개발자 분들과 같이 개발하기 때문에 오버로딩을

사용해 작성자와 사용자가 알아보기 쉽게 하여 개발의 효율성을 높이기 위해 사용합니다.


예제를 통해 알아보겠습니다.

class OverloadingTestClass{ void overloadingTest(){ System.out.println("매개변수가 없는 메소드"); } void overloadingTest(int a){ System.out.println("매개변수가 "+a+"인 메소드"); } void overloadingTest(int a, int b){ System.out.println("매개변수가 "+a+"와 "+b+"인 메소드"); } } public class OverloadingTestMain { public static void main(String[] args) { OverloadingTestClass oltc = new OverloadingTestClass(); oltc.overloadingTest(); oltc.overloadingTest(100); oltc.overloadingTest(100, 200); } }


결과는 다음과 같습니다.



사전과 비교하자면 끄다라는 단어가 있습니다. 끄다라는 단어를 통해 스위치를 끄다, 불을 끄다, 담배를 끄다

등 표현을 할 수 있는데요. 만약 끄다라는 단어를 정의하지 않았다면 위에 표현을 일일이 정의해야 하는 번거로움이

있습니다. 우리나라 사전이 지금도 두껍지만 두께의 양은 수 십 배로 많아 질 것입니다. 

조금이나마 이해가 되셨기를 바랍니다.ㅎㅎ


다음은 오버라이딩(Overriding)에 대해 자세히 알아 보겠습니다.

먼저 오버라이딩을 알기위해 상속이라는 개념을 알아야 하는데요.

상속이라는 의미는 부모님이 자식에서 재산을 상속하듯이 무언가를 물려준다는 뜻인데요.

프로그래밍에서도 의미가 비슷합니다.

-상속 관계에 있는 클래스 간에 같은 이름의 메소드를 정의하는 기술입니다.

-메소드 이름은 같다.

-오버라이딩은 매개 변수 타입과 매개변수가 같다.


예제를 통해 알아보겠습니다.

class Employee{
	String name;
	int age;
	
	public void overridingTest(){
		System.out.println("사원의 이름은 "+name+"이고 나이는"+age+"입니다.");
	}
}
class Manager extends Employee{
	String jobId;
	
	public void overridingTest(){
		System.out.println("사원의 이름은 "+name+"이고 나이는 "+age+"입니다.");
		System.out.println("그의 직업은 "+jobId+"입니다.");
	}
}

public class OverridingTestMain {
	public static void main(String[] args) {
		Manager shin = new Manager();
		shin.name="신자바";
		shin.age=27;
		shin.jobId ="웹 프로그래머";
		
		shin.overridingTest();
	}
}

결과는 다음과 같습니다.



Manager클래스에 employee클래스를 상속함으로써 name과 age변수를 따로 정의하지 않아도 객체 생성 후에

 값을 입력하는 데 문제가 없음을 확인할 수 있습니다.

overridingTest() 메소드를 실행하면 콘솔 창에 잘 출력됨을 확인할 수 있습니다.






728x90
반응형
728x90
반응형

+ Recent posts