Programming/Java

1. 소스파일 vs 클래스파일 vs jar 파일a. 소스 파일 (xxx.java)개발자가 작성한 소스코드 파일이다. b. 바이트 코드 파일 (xxx.class).java 파일을 자바 컴파일를 통해 바이트 코드로 변환한 파일이다. c. jar 파일 (xxx.jar).class 파일을 압축한 파일로 압축을 풀면 .class 파일 상태가 된다.jar파일 자체가 실행 가능한 애플리케이션이며, jar 파일 형식으로 쉽게 배포할 수 있다. 빌드를 진행해보겠다.2. 빌드1. 아래의 .java 파일을 빌드를 진행한다. 2. 빌드를 진행하면 jar 파일이 생성된다.  3. jar 파일을 압축을 풀면 패키지와 동일한 디렉토리에 .class 파일로 압축을 풀게된다.
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다.1. 에러의 종류에러의 종류에는 논리적 에러,컴파일 에러, 런타입 에러가 있다. a. 논리적 에러개발자 실수(논리적 오류)로 인해 실행은 되지만, 의도와 다르게 동작하는 것b. 컴파일 에러컴파일 시점에 발생하는 에러ex) 문법을 잘못 작성해서 발생하는 에러ex) 타입체크 에러c. 런타임 에러실행 시 발생하는 에러런타임 시 발생할 수 있는 오류에는 2가지가 있다.에러(error)프로그램 코드에 의해서 수습될 수 없는 심각한 오류로 시스템이 종료되어야 할 수준ex) StackOverflowError: 재귀가 지속되어 호출 깊이가 깊어져 발생하는 오류ex) OutOfMemoryError: JVM 메모리 부족으로 객체를 할당할 수 없을 때..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 내부 클래스(inner class)?두 클래스간의 긴밀한 관계를 가지며, 두 클래스의 멤버들 간에 서로 쉽게 접근할 수 있다.내부 클래스의 종류에는 인스턴스 클래스, static 클래스, Local 클래스, 익명 클래스가 있다.내부 클래스도 클래스이므로 abstract나 final과 같은 제어자를 사용할 수 있다.내부 클래스도 멤버변수처럼 접근제어자도 사용할 수 있다.a. 인스턴스(instance) 클래스?외부 클래스의 멤버변수 선언 위치에 선언인스턴스 멤버처럼 사용주로 외부 클래스의 인스턴스 멤버들과 관련된 작업접근제어자도 인스턴스 멤버처럼 동일하게 적용된다.class Cart { // 장바구니 클래스 ArrayList list..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다.  추상클래스와 인터페이스를 알아보기 전에 객체지향의 핵심 원리인 다형성에 대해서 정리해보자.1. 다형성(polymorphism)이란?부모 타입의 참조변수로 자식타입의 객체를 다룰 수 있는 것자식타입의 참조변수로는 부모타입의 인스턴스를 참조할 수 없다.다형성을 사용하면 유지보수에 큰 이점을 가져올 수 있으면 객체지향의 핵심 원리이다.public class Main { public static void main(String[] args) { Parent parent = new Child(); // => 다형성 Child child = new Parent(); // 에러. 자식은 부모의 모든..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 제어자클래스, 변수, 메서드의 선언부에 사용되며, 부가적인 의미를 부여한다.하나의 대상에 여러 개의 제어자를 조합해서 사용할 수 있다.(접근제어자는 하나만 사용 가능)접근제어자와 그 외 제어자로 나눌 수 있다. 2. 접근제어자public: 접근제한이 없음.protected: 같은 패키지 내에서, 다른 패키지의 자식클래스에서 접근 가능default: 같은 패키지 내에서 접근 가능private: 같은 클래스 내에서 접근 가능접근 제어자를 사용하는 이유는 외부로부터 데이터를 보호하며, 외부에는 불필요한, 내부적으로만 사용되는 부분을 감추기 위해 사용한다. ⇒ 캡슐화  3. 그 외 제어자(static, final, abstarct,..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. package란? 서로 관련된 클래스들끼리 그룹 단위를 package로 묶어서 효율적으로 관리 클래스의 이름이 동일해도 서로 다른 package이면 다른 클래스로 인식 package는 물리적으로 하나의 디렉토리이며, package에 다른 package를 포함시킬 수 있다. 2. package 네이밍 규칙 pacakge 명은 소문자로 사용하는 것이 원칙 java로 시작하는 패키지 금지(자바 표준 api에서만사용) 자바 예약어 금지 패키지는 .(dot)로 구분 한다. package 상위패키지명.하위패키지명 package org.example.pck; 3. import문 다른 패키지의 클래스를 사용할 경우 패키지명과 클래스를 모두..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 상속이란? 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것 두 클래스를 부모와 자식의 관계를 맺어주는 것 자식은 부모의 모든 멤버를 상속받는다.(생성자, 초기화블럭 제외) 상속을 사용한 2가지 경우를 살펴보자. a. 상속 사용1 class Child extends Parent { void play() { System.out.println("play~~~~"); } } class Parent { int age; } 상속을 구현하는 방법은 extends키워드만 함께 써주기만 하면 된다. Child는 Parent를 상속받기 때문에 Parent의 모든 멤버(age)를 상속 받는다. play() 메서드는 오직 Child의 멤버..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. this와 super를 알아보기 전에 생성자에 대해서 알아보자. 1. 생성자(Constructor)란?인스턴스가 생성될 때 호출되는 메서드(인스턴스 초기화 메서드)인스턴스 변수 초기화 또는 인스턴스생성시 수행할 작업에 사용모든 클래스는 하나 이상의   생성자가 있어야 한다.생성자 이름은 클래스 이름과 같다.생성자는 리턴값이 없다.(void는 쓰지 않음)접근제한자 클래스이름(매개변수) { // 수행될 코드(인스턴스 변수 초기화 등)} 2. 생성자의 종류기본 생성자매개변수가 없는 생성자생성자가하나도 없으면 컴파일러가 기본 생성자를 추가한다class Data { int value; Data() { } // 기본 생성자(생성자가 하나도 ..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 오버로딩(Overloading)기존에 없는 새로운 메서드를 정의하는 것메서드 명은 같지만 매개변수 타입, 개수, 순서가 다른 것같은 클래스 내에서 적용된다.int add(int a, int b) { return a + b; }int add(int a, int b, int c) { return a + b + c; } int add(int x, int y) { return x + y; } // 매개변수의 식별자만 다른 경우 => 오버로딩 xshort add(int a, int b) {return a + b; } // 반환 타입이 다른 경우 => 오버로딩 a. 가변인자 오버로딩기존에는 메서드의 매개변수가 고정적이었으나, JDK1..
남궁성님의 Java의 정석(3rd Edition)을 보고 정리한 글입니다. 1. 매개변수를 전달하는 방법Java에서 메서드 매개변수를 전달할 때 두가지 방법이 있다. 기본타입을 매개변수로 넘기는 경우 이를 Call by Value라고 하고, 참조타입을 넘기는 경우 Call by Reference라고 한다.Call by ValueCall by Reference a. Call by Value(값에 의한 전달)Call by Value는 값에 의한 전달을 뜻한다. Call by Value는 단순히 변수의 값만 읽어 올 수 가 있어 변수의 값을 변경 할 수 없다.(Read Only)public class Class1 { public static void main(String[] args) { int a = 9;..
kmindev
'Programming/Java' 카테고리의 글 목록 (4 Page)