본문 바로가기

JAVA

(23)
JAR WAR 특징 및 차이점 JAR 및 WAR > Java 플랫폼에 어플리케이션이나 라이브러리들을 쉽게 배포하고 동작시킬 수 있도록 한 소프트웨어 패키지 파일 포맷 JAR(Java Archive) .class 파일, manifest 파일, 어플리케이션 리소스(이미지, 사운드 클립, 보안 인증서 등)들을 ZIP 파일로 압축 java -jar yourfile.jar WAR(Web Application Archive) 정적 HTML 페이지, JAR파일, 태그 라이브러리 및 유틸리티 클래스뿐만 아니라 서블릿 및 JSP 같은 웹 구성 요소로 구성됨
oracle-java8-installer' has no installation candidate 우분투에 자바를 설치하기 위해 아래와 같이 실행했는데 $ apt-get install oracle-java8-installer >> oracle-java8-installer' has no installation candidate 이런 에러가 발생하였다. 오라클 정책이 변경되어 오라클 홈페이지에서 다운받고 설치해야 하는 것 같다. 파일 다운로드 후 설치 $ sudo apt install default-jdk 자바 환경설정 $ sudo echo "JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64" >> /etc/environment 환경변수 리로드 $ sudo source /etc/environment
[자바의 정석] 8. 예외처리(Exception Handling) 컴파일 에러 : 컴파일 시에 발생하는 에러 런타임 에러 : 실행 시에 발생하는 에러 논리적 에러 : 실행은 되지만, 의도와 다르게 동작하는 것 - 소스코드를 컴파일 하면 컴파일러가 소스코드(*.java)에 대해 오타나 잘못된 구문, 자료형 체크 등의 기본적인 검사를 수행하여 오류가 있는지를 알려줌 - 런타임 에러를 방지하지 위해서는 프로그램의 실행도중 발생할 수 있는 모든 경우의 수를 고려하여 이에 대한 대비를 하는 것이 필요함 > 에러(error) : 발생하면 복구할 수 없는 심각한 오류 > 예외(exception) : 발생하더라도 수습될 수 있는 비교적 덜 심각한 것 -> 적절한 코드로 비정상적 종료 방지 가능 예외 클래스의 계층구조 - Exception 클래스와 그 자손들 - RuntimeExcep..
[자바의 정석] 7-2. 오버라이딩(overriding) 오버라이딩 : 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것 오버라이딩의 조건 자손클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와 - 이름이 같아야 함 - 매개변수가 같아야 함 - 반환타입이 같아야 함 1. 접근 제어자는 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다. ※ 참고 : 접근제어자 넓->좁 : publid, protected, (default), private 2. 조상 클래스의 메서드보다 많은 수의 예외를 선언할 수 없다. 3. 인스턴스메서드를 static 메서드로 또는 그 반대로 변경할 수 없다. 오버로딩 vs 오버라이딩 오버로딩(overloading) : 기존에 없는 새로운 메서드를 정의하는 것(new) 오버라이딩(overriding) : 상속받은 메서드의 내용을..
[자바의 정석] 7-1 상속 상속 상속의 정의와 장점 - 상속이란 : 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 class Child extends Parent { // 상속받고자 하는 클래스의 이름을 키워드 'extneds'와 함께 써줌 // ... } - 조상 클래스 : 부모(parent)클래스, 상위(super) 클래스, 기반(base) 클래스 - 자손 클래스 : 자식(child)클래스, 하위(sub)클래스, 파생된(derived)클래스 - 자손 클래스는 조상 클래스의 멤버를 모두 상속받지만(영향을 줌) 자손 클래스가 변경되는 것은 조상 클래스에 영향을 주지 않음 - 생성자와 초기화 블럭은 상속되지 않음. 멤버만 상속됨. (접근 제어자가 private/default인 멤버들은 상속은 받지만 자손 클래스로부터의 접근..
[자바의 정석] 3-5 생성자 생성자(Constructor) 생성자란? - 생성자는 인스턴스가 생성될 때 호출되는 '인스턴스 초기화(인스턴스변수들을 초기화하는 것) 메서드' 1. 생성자의 이름은 클래스의 이름과 같아야 함 2. 생성자는 리턴 값이 없음 - 생성자도 오버로딩이 가능하므로 하나의 클래스에 여러개의 생성자가 존재할 수 있음 - 연산자 new가 인스턴스를 생성하는 것이지 생성자가 인스턴스를 생성하는 것이 아님! 클래스이름(타입 변수명, 타입 변수명, ... ) { //인스턴스 생성 시 수행될 코드, //주로 인스턴스 변수의 초기화 코드를 적음 } Bus c = new Bus(); // Bus() --> 생성자! 기본 생성자(default constructor) - 컴파일 할 때, 소스파일(*.java)의 클래스에 생성자가 하..
[자바의 정석] 3-4 오버로딩(overloading) 오버로딩(overloading) 오버로딩이란? - 메서드 오버로딩(method overloading) : 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것 오버로딩의 조건 1. 메서드 이름이 같아야 함 2. 매개변수의 개수 또는 타입이 달라야함 ※ 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못함 void println() void println(boolean x) void println(char x) void println(char[] x) void println(double x) void println(float x) void println(int x) void println(long x) void println(Object x) void println(String x) - 같은 일..
[자바의 정석] JVM의 메모리 구조 JVM의 메모리 구조 - 응용프로그램이 실행되면, JVM은 시스템으로부터 프로그램을 수행하는데 필요한 메모리를 할당받고 JVM은 이 메모리를 용도에 따라 여러 영억으로 나누어 관리함 - 주요 영역(method area, call stack, heap) 1. 메서드 영역(method area) · 프로그램 실행 중 어떤 클래스가 사용되면, JVM은 해당 클래스의 클래스파일(*.class)을 읽어서 분석하여 클래스에 대한 정보(클래스 데이터)를 이곳에 저장. 이 때, 그 클래스의 클래스변수(class variable)도 이 영역에 함께 생성됨 2. 힙(heap) · 인스턴스가 생성되는 공간. 프로그램 실행 중 생성되는 인스턴스는 모두 이곳에 생성됨. 인스턴스변수(instance variable)들이 생성되는..