자바

객체지향의 4대 특성 - 캡!상추다 캡슐화 (Encapsultation): 정보 은닉(information hiding) 상속 (Inheriance) 재사용 추상화 (Abstaction) : 모델링 다형성 (Polymorphism) : 사용 편의 클래스 vs. 객체 = 붕어빵틀 vs.붕어빵? 금형기계 붕어빵틀 = new 금형기계(); 붕어빵틀은 붕어빵을 만드는 팩터리 클래스와 객체를 구분하는 간단한 방법 - 나이 물어보기 사람의 나이는 몇살인가 -> 클래스 김연아의 나이는 몇살인가 -> 객체 뽀로로의 나이는 몇살인가 -> 객체 펭귄의 나이는 몇살인가 -> 클래스 클래스는 분류에 대한 개념이지 실체가 아니다! 클래스 : 객체 = 펭귄 : 뽀로로 = 사람: 김연아 추상화 : 모델링 여러가지 사물이나 개념에서..
자바 프로그램의 개발과 구동 현실 세계 가상 세계(자바 월드) 소프트웨어 개발 도구 JDK - 자바 개발 도구 JVM용 소프르웨어 개발 도구 운영체제 JRE - 자바 실행 환경 JVM용 OS 하드웨어 - 물리적 컴퓨터 JVM - 자바 가상 기계 가상의 컴퓨터 JDK < JRE < JVM Write Once Run Everywhere JVM이 중재자로서 각 플랫폼(윈도우, 유닉스, 리눅스 등)에서 프로그램을 구동하게끔 해줌 기계어를 포함한 모든 프로그래밍 언어의 메모리 사용 방식 코드 실행 영역 데이터 저장 영역 객체지향 프로그래밍 언어의 메모리 사용 방식 코드 실행 영역 스태틱 (static) 영역 스택 (stack) 영역 힙(Heap) 영역 자바에 존재하는 절차적 / 구조적 프로그래밍의 유산 함수 -..
스프링을 이해하기 위한 이전의 기술 SOA (Service Oriented Architecture) - 서비스 지향구조 CBD (Component Based Development) - 컴포넌트 기반 개발 OOP (Object Oriented Programming) 절자적 / 구조적 프로그래밍 기계어 / 어셈블리어 기계어 -> 객체지향 프로그래밍 언어로 0과 1의 행진 (에드삭, 유니박) 애드삭 전욕, 유니박 전용 기계어가 필요하며 호환이 불가능 어셈블리어 인간지향적 니모닉 (add, plus)과 기계어의 일대일 코드 매칭표 cpu별 어셈블리어 필요 C언어 - 강력한 이식성 one source multi object use anywhere 컴파일러로 cpu별 소스 번역 그러나 컴파일전 기종에 맞게 소스 변..
자원 반납 자바 라이브러리에는 close메소드를 호출하여 직접 닫아줘야 하는 자원이 있다 ex) 대표적으로 InputStream, OutputStream, java.sql.Connection 자원반납을 해야하는 이유 접근할 때, File Descriptor를 생성해서 소모하는데 자원을 반납하지 않는경우 File Descriptor가 재활용이 되지않아 File Descriptor leak이 발생될 수 있으며 이는 어플리케이션의 문제로 이어질 수 있음 참고 멘토님 & https://docs.oracle.com/cd/E23095_01/Platform.93/ATGInstallGuide/html/s0607detectingfiledescriptorleaks01.html try-finally 방식의 코드 static..
Goal 함수형 프로그래밍에 대해 알아본다 함수형 프로그래밍의 특징에 대해 알아본다. 함수형 프로그래밍 이란? 함수형 프로그래밍(Functional Programming)은 프로그래밍 패러다임 중 하나로, 프로그램을 수학적 함수의 조합으로 생각하고 이를 구현하는 방식이다. 함수형 프로그래밍의 특징 순수 함수 (Pure Functions): 순수 함수는 함수의 반환 값이 입력 값에만 의존하며, 외부의 상태를 변경하지 않는 함수를 일컫는다. 같은 입력에 대해서는 항상 같은 결과를 반환하며, 부작용(side effect)이 없다. 이러한 순수 함수는 예측 가능하고 테스트하기 쉬우며, 병렬 처리와 같은 최적화가 가능하다. private int c = 1; // 순수 함수 예제: 두 정수의 합을 계산하는 함수 p..
Goal stream에 대해 알아본다 stream의 구조와 연산 종류에 대해 알아본다 stream의 특징에 대해 알아본다 stream 이란? 연속되 정보를 처리하는데 사용된다. 즉, 컬렉션, 배열 등의 데이터 요소를 처리하는 기능을 제공한다. 배열에는 스트림을 사용할 수 없지만 배열을 컬렉션의 List로 변환하는 방법이 존재한다. 배열 to 컬렉션의 List Integer[] values = {1,3,5}; List list = new ArrayList(Arrays.asList(values)); List list = Arrays.stream(values).collect(Collectors.toList()); stream 구조 list.stream().filter(x-> x>10).count() 1. 스트..
Goal static 메모리 구조 static 이란? static 을 사용하는 이유 static 변수란? static 메소드란? static 블록이란? 참고 static 블록, static 메소드, static 변수 초기화 시점 [Class Loader] 클래스 로딩 시점 / 클래스 로딩 / 클래스 초기화 시작하기 전 ... 싱글턴을 생성하는 방법 중 Eager Initialization의 단점은 인스턴스를 미리 생성하기 때문에, 사용하지 않을 경우 메모리 점유로 인한 자원낭비가 된다였다. 여기서 나의 의문의 시작 dev-rosiepoise.tistory.com static 메모리 구조 static 영역 heap 영역 우리가 만든 클래스 new 연산을 통해 생성한 객체 모든 객체가 공유하는 메모리로 gc..
24장 자바랭 다음으로 많이 쓰는 애들은 컬랙션 - Part3(Map) Map 형태의 자료 구조는 무엇과 무엇으로 구성되어 있는가? key, value Map 에서 데이터를 저장하는 메소드는? put() Map 에서 특정 키에 할당된 값을 가져오는 메소드는? get() Map 에서 특정 키와 관련된 키와 데이터를 지우는 메소드는? remove() Map 에서 키의 목록을 가져오는 메소드는? keySet() Map 에 저장되어 잇는 데이터의 크기를 가져오는 메소드는? size() HashMap과 HashTable 중에서 키나 값에 null을 저장할 수 있는 것은? HashMap HashMap과 HashTable 중에서 여러 쓰레드에서 동시에 접근해도 문제가 없는 것은? HashTable HashMap에서 ..
22장 자바랭 다음으로 많이 쓰는 애들은 컬랙션 - Part1(List) Collection 인터페이스를 구현하는 대표적인 3개의 자료구조는? List, Set, Queue 배열과 같이 순서가 있는 목록형을 나타내는 대표 인터페이스는? List ArrayList라는 클래스의 생성자 중 매개 변수가 없는 기본 생성자를 사용하면 기본적으로 몇개의 저장 공간을 가지는가? 10개 만약 ArrayList 클래스의 저장 공간 개수를 처음부터 지정하려면 어떤 생성자를 사용하면 되나요? 기본 생성자 ArrayList 객체를 생성할 때 제네릭을 사용하는 이유는? 크기를 지정하는 것은 메모리 낭비로 이어지므로 ArrayList에 데이터를 담는 메소드 이름 두가지는? add(), addAll() Collection 인터페이..
21장 실수를 방지하기 위한 제네릭이라는 것도 있어요 제네릭이 자바에 추가된 이유는? 타입 형변환에서 발생할 수 있는 문제를 방지하기 위해서 제네릭 타입의 이름은 T나 E처럼 하나의 캐릭터로 선언해야 하는가? x 메소드에서 제네릭 타입을 명시적으로 지정하기 애매할 경우에는 안에 어떤 기호를 넣어 주어야 하는가? ? 메소드에서 제네릭 타입을 명시적으로 지정하기에는 애매하지만 어떤 클래스의 상속을 받은 특정 타입만 가능하다는 것을 나타내려면 안에 어떤 기호를 넣어야 하는가? ? extends 타입 제네릭 선언시 wildcard라는 것을 선언했을 때 어떤 제약사항이 있는지? 매개변수에 사용해서 값을 얻을 때는 상관없지만, wildcard로 객체를 생성하고, 특정 타입을 세팅할 수는 없다 메소드를 제네릭하게 선..
dev_rosieposie
'자바' 태그의 글 목록 (4 Page)