분류 전체보기

· java
1. 패키지 자바에서는 클래스를 체계적으로 관리하기 위해 패키지(package)를 사용한다. 우리가 폴더를 만들어 파일을 저장 관리하듯이 패키지를 만들어 클래스를 저장 관리한다. 패캐지는 클래스를 유일하게 만들어주는 식별자 역할을 한다. 클래스 이름이 동일 하더라도 패키지가 다르면 다른 클래스로 인식한다. 클래스의 전체 이름은 "패키지명+클래스명"인데 패키지가 상, 하위로 구분되어 있다면 도트(.)를 사용해서 다음과 같이 표현한다. 상위패키지.하위패키지.클래스 Person 클래스가 com.mycompany 패키지에 속해 있다면 Person클래스의 전체 이름은 com.mycompany 폴더에 Person.class 가 위치한다. 클래스만 따로 복사해서 다른 곳으로 이동하면 그 클래스는 사용할 수 없기에 클..
· java
final 필드선언 final 타입 필드 [= 초기값]; final 필드는 초기값이 저장되면 이것이 최종적인 값이 되어서 프로그램 실행 도중에 수정 할 수 없다. 제어자 대상 의미 final 클래스 변경될 수 없는 클래스,확장될 수 없는 클래스가 된다. 그래서 final로 지정된 클래스는 다른 클래스의 조상이 될 수 있다. 메서드 변경될 수 없는 메서드, final로 지정된 메서드는 오버라이딩을 통해 재정의 될 수 없다. 멤버변수 변수 앞에 final이 붙으면, 값을 변경할 수 없는 상수가 된다. 지역변수 ▶ 초기값을 줄 수 있는 방법 2가지 필드 선언시 주는 방법 생성자에게 주는 방법 public class Person{ final String nation = "korea"; final String s..
· java
정적멤버는 클래스에 고정된 멤버로서 객체를 생성하지 않고 사용할 수 있는 필드와 메서드를 말한다. 각각 정적필드, 정적 메서드라고 부른다. 정적멤버는 객체(인스턴스)에 소속된 멤버가 아니라 클래스에 소속된 멤버이기 때문에 클래스 멤버라고 한다. 정적멤버선언 public class 클래스 { //정적필드 static 타입 필드 [=초기값]; //정적 메서드 static 리턴타입 메서드 (매개변수선언, ..) {..} } 정적필드와 정적메서드는 클래스에 고정된 멤버로이므로 클래스로더가 클래스(바이트 코드)를 로딩해서 메서드 메모리 영역에 적재할 때 클래스별로 관리된다. 따라서 클래스의 로딩이 끝나면 바로 사용할 수 있다. ▷인스턴스필드 vs 정적필드 필드를 선언할때, 인스턴스 필드로 선언할 것인지 정적필드로..
인스턴스(instance) 멤버란 객체(인스턴스)를 생성한 후 사용할 수 있는 필드와 메서드를 말한다. 각각 인스턴스 필드, 인스턴스 메서드라고 부른다. 스택영역에 생기는 변수인 지역변수는 개발자가 별도로 초기화하지 않으면 쓰레기 값을 갖게 된다. classArea(methodArea)과 Heap은 별도로 초기화해주지 않아도 정수형은 0, 부동소수점은 0.0, 논리형은 false, 객체는 null로 초기화 된다. 지역변수는 별도로 초기화해야 하는데 멤버변수는 왜 자동으로 초기화가 될까? 그것은 지역변수는 한 지역에서만 쓰는 변수이지만 멤버변수는 공유변수의 성격을 가지고 있기 때문이다. public class Car { //필드 int gas; //메서드 void setSpeed(int speed) {} ..
· java
프로세스와 스레드 운영체제에서는 실행중인 하나의 애플리케이션을 프로세스(Process)라고 부른다. 사용자가 애플리케이션을 실행하면 운영체제로부터 실행에 필요한 메모리를 할당받아 애플리케이션의 코드를 실행하는데 이것이 프로세스이다. 스레드는 사전적 의미로 한 가닥의 실이라는 뜻인데, 한 가지 작업을 실행하기 위해 순차적으로 실행할 코드를 실처럼 이어 놓았다고 해서 유래된 이름이다. 하나의 스레드는 하나의 코드 실행 흐름이다. 멀티 스레드는 스레드들이 동시에 실행되는 것처럼 보이는 기술이라고 할 수 있다. 예를 들어보면 A 작업어플 - 프로세스 100개 만들기 B 어플 - 프로세스1개 , 스레드 100개 만들기 A와 B 둘중에 어느 작업이 더 효울적일까? 답은 B의 작업이다. ▷ 멀티 태스킹 멀티 태스킹은..
· java
SOLID 객체지향설계 정의 응집도를 높이고 (High Cohesion) 결합도는 낮추는(Loose Coupling) 는 고전원칙을 객체지향의 관점에서 재정립한 것이 SOLID 5원칙이다. SRP (Single Responsibillity Principle): 단일책임원칙 OCP (Open Closed Prinsipel) : 개방폐쇄원칙 LSP ( Liskov Substitution Principle) :리스코프 치환원칙 ISP (Interface Segregation Principle) : 인터페이스 분리 원칙 DIP (Dependency Inversion Principle ) : 의존역전원칙 SOLID가 개념이긴 하지만 우리가 만드는 제품, 즉 소프트웨어에 녹여내야 하는 개념이다. SOLID 를 잘 ..
· java
객체 입출력 보조 스트림 자바는 메모리에 생성된 객체를 파일 또는 네트워크로 출력할 수 있다. 객체는 문자가 아니기 때문에 바이트 기반 스트림으로 출력해야한다. 객체를 출력하기 위해서 객체의 데이터(필드값)을 일렬로 늘어선 연속적인 바이트로 변경해야 하는데, 이것을 객체 직렬화(serializaion)라고 한다. 반대로 파일에 저장되어 있거나 네트워크에서 전송된 객체를 읽을 수도 있는데, 입력 스트림으로부터 읽어들인 연속적인 바이트를 객체로 복원하는 것을 역직렬화(deserializaion) 라고 한다. 자바의 객체를 입출력할 수있는 두 개의 보조스트림인 ObjectInputSteam과 ObjectOutputStream을 제공한다. ObjectOutputStream은 바이트출력스트림과 연결되어 객체를 직..
· java
Writer는 문자기반출력스트림의 최상위클래스로 추상클래스이다. 모든 문자 기반출력 스트림클래스는 이 클래스를 상속받아서 만들어진다. Writer 클래스에는 모든 문자 기반 출력스트림이 기본적으로 가져야 할 메서드가 정의되어 있다. 리턴타입 메서드 설명 void write(int c) 출력스트림으로 주어진 한 문자를 보낸다 void write(char[ ]cbuf) 출력스트림으로 주어진 문자배열 cbuf의 모든 문자를 보낸다. void write(char[ ] cbuf, int off, int len) 출력스트림으로 주어진 문자 배열cbuf[off]부터 len개까지의 문자를 보낸다. void write(String str) 출력스트림으로 주어진 문자열을 전부 보낸다. void write(String st..
-JUNHEOK-
'분류 전체보기' 카테고리의 글 목록 (17 Page)