※ 메소드 오버로딩(Overloading) - 클래스 내에 같은 이름의 메소드를 여러 개 선언하는 것을 말한다. - 하나의 메소드 이름으로 다양한 매개값을 받기 위해 메소드를 오버로딩한다. - 오버로딩의 조건 : 매개변수 타입, 개수, 순서가 달라야 한다. ※ Call By Value : 값을 복사해서 사용하기 때문에 한 쪽에서 값을 변경하더라도 영향을 받지 않는다. Changer changer = new Changer(); // Call by value (값을 복사해서 호출) int v1 = 1; changer.change(v1); // void change(int value) { value = 10; } // int value = 1 -> v1이 가지고 있는 "값"을 value 변수에 저장 한다. S..
※ 객체지향이 무엇인가? - 부품 객체를 먼저 만들고 이것들을 하나씩 조립해서 완성된 프로그램을 만드는 기법이다. 여기서 부품도 객체이고, 전체로 만들어진 것도 객체이다. -> 여기서 아래에 나올 객체의 특징과 객체의 상호 작용, 객체의 관계3가지를 모두 설명한 뒤에 이 모든것이 객체 지향 프로그래밍이라고 말해야 한다. ※ 객체(Object) - 객체는 이름이 있어야 한다. - 속성 : 데이터 속성은 반드시 있어야 한다. (필드) - 동작 : 동작은 있을수도 없을 수도 있다. 현실객체를 프로그래밍하는 것을 객체지향 모델링이라고 한다. ※ 객체의 상호 작용 ▶객체를 사용한다 - 객체가 가진 동작이나 속성을 이용한다. ▶기능을 실행하도록 요청하는 것 ==> 메소드 호출(객체가 다른 객체가 가진 메소드를 호출..
※ 배열 복사 - 배열은 한 번 생성하면 크기를 변경할 수 없다. - 더 많은 저장 공간이 필요하다면 보다 큰 배열을 새로 만들고 이전 배열로부터 항목값들을 복사해야 한다. -> 그렇다면 배열 복사 방법은? 1. for문을 이용하는 방법 int[] oldStrArray = {1, 2, 3}; String[] newStrArray = new String[5]; for(int i = 0; i < oldStrArray.length; i++){ newStrArray[i] = oldStrArray[i]; } 2. System.arrayCopy() 메소드를 이용하는 방법 String[] oldStrArray = {"java", "array", "copy"}; String[] newStrArray = new Stri..
public static void main(String[] args) {} -> 메인 메소드이다. (함수와는 다르다.) - 위의 메인 메소드의 종료 시점이 마지막 괄호가 닫힐때까지 인데, return을 주게 되면 그 시점에 프로그램을 종료한다. [데이터 타입] 1. 기본 타입(primitive type) : 값 자체를 저장함 정수 타입 byte char short int long 실수 타입 float double 논리 타입 boolean 2. 참조 타입 (reference type) : 값 자체가 아닌 값이 저장되어 있는 메모리 주소를 저장하는 타입 - 참조 타입 변수는 객체를 참조하는 변수이다. 배열 타입 열거 타입 클래스 - String 인터페이스 [기본 타입과 참조 타입의 메모리 위치 비교] - 참..
[문제] www.acmicpc.net/problem/1655 1655번: 가운데를 말해요 첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -1 www.acmicpc.net [풀이] 정수를 하나씩 외칠때마다 동생은 지금까지 수중에서 중간값을 말해야 한다. sol-1) 이진 탐색으로 풀었는데 시간초과 발생.. sol-2) 우선순위 큐로 접근하여 해결하였다. - 아이디어 : 중앙값 기준으로 왼쪽은 maxheap, 오른쪽은 minheap - 중간값 기준으로 왼쪽에 맥스힙(작은 수 중에 제일 큰거), 오른쪽에 민힙(큰 수 중에 제일 작은 값 ) : 수를 정렬했다고..
자바는 컴파일을 한 번하게 되면 -> 컴파일된 클래스 파일로 여러 운영체제에서 실행할 수 있다는 장점이 있다. 즉, 이식성이 높은 언어이다. - 파이썬과 자바스크립트는 컴파일이 필요 없다. - 자바는 함수적 스타일 코딩을 지원한다. (람다식) - 자바는 메모리(주기억장치)를 자동으로 관리한다. - 이클립스와 STS(Spring Tool Suite)는 주 언어로 JAVA를 이용하여 만들었다. - 멀티스레드를 쉽게 구현할 수 있다. - 동적 로딩을 지원한다. ※ 자바의 3가지 영역 - Java SE - Standard Editioin : 기본 에디션, 자바 프로그램을 실행시키는 JVM 정의 자바 프로그램들이 공통으로 사용하는 개발 도구와 API 정의 구현체 -> JDK - Java EE - Enterpris..
※ 개요 초기에는 메모리 하나에 현재 프로그램의 코드와 데이터만 존재하였다. 시간이 흐른 후 멀티프로그래밍 시대가 오면서 메모리에 변화가 생겼다. (여러 프로세스를 가진 공유 메모리 개념) 즉, 여러 프로세스가 실행 준비 상태에 있고 운영체제는 그들을 전환하면서 실행함으로써 CPU 이용률을 증가시켰다. 시분할을 하려면 현재 프로세스를 중단하고, 중단 시점의 모든 상태를 디스크 종류의 장치(물리 메모리)에 저장하고 다른 프로세스의 상태를 탑재하여야 한다. 이때 레지스터 상태를 저장하고 복원하는 것은 빠르지만 메모리의 내용 전체를 디스크에 저장하는 것은 엄청나게 느리다. 따라서 프로세스 전환 시 프로세스를 메모리에 그대로 유지하면서, 운영체제가 시분할 시스템을 효율적으로 구현할 수 있게 해야 한다. 시분할 ..
※ 개요 다중 CPU 시대가 오면서 많은 문제가 발생하였다. 가장 중요한 것은 전통적 응용프로그램은 오직 하나의 CPU만 사용한다는 것이다. 더 많은 CPU를 추가해도 더 빨리 실행되지 않는다. 이 문제를 해결하려면 응용 프로그램을 병렬(parallel)로 실행되도록 다시 작성해야 한다. 보통 쓰레드를 이용한다. - 멀티 쓰레드 응용 프로그램은 작업을 여러 CPU에 할당하며, 따라서 더 많은 수의 CPU가 주어지면 더 빠르게 실행된다. - 응용 프로그램뿐 아니라 운영체제가 새로 직면한 문제는 멀티프로세서 스케줄링이다. - 지금까지 단일프로세서 스케줄링의 많은 원칙들을 여러 CPU에서 동작하도록 어떻게 확장할 수 있을까? ※ 단일 CPU 하드웨어 vs 멀티 CPU 하드웨어 [단일 CPU 시스템] - 하드웨..
◈ 비례 배분 스케줄러 : 반환시간이나 응답시간을 최적화하는 대신 스케줄러가 각 작업에게 CPU의 일정 비율을 보장한다. ex) 추첨 스케줄링 (lottery scheduling) : 다음 실행될 프로세스를 추첨을 통해 결정한다. 더 자주 수행되어야 할 프로세스는 추첨권(티켓)을 많이 준다. ◈ 추첨권 스케줄링 [장점] ▶ 무작위성이다. 1. 무작위 방식은 관리해야 할 상태 정보가 거의 없다. (프로세스의 상태 정보만 필요하다. 예. 각 프로세스가 가진 추첨권의 개수) 그에 반해 전통적인 공정 배분 스케줄링 알고리즘에서는 각 프로세스가 사용한 CPU 양을 기록해야 한다. 이 정보는 각 프로세스를 실행시킬 때마다 갱신된다. 2. 무작위 방식은 매우 빠르다. 난수 발생 시간이 빠르기만 하면 결정 역시 빠르게..
- Total
- Today
- Yesterday
- @functools.lru_cache
- 정적멤버
- os
- 클래스와객체
- jre
- yarn start
- 생성자필드메소드
- jdk
- 자바스크립트Call-back
- nodejs
- nunjucks
- @functools.wraps
- ES6
- 자바빌드도구
- Git
- es6모듈
- method와 function
- dynamic-project
- java
- 자바스레드
- 객체지향개념
- sequelize.fn
- 백준
- 메이븐 저장소
- 자바스크립트Promise
- 인스턴스멤버
- 익명자식객체
- 백준2206 파이썬 풀이
- @functools.singledispatch
- 사용자정의예외클래스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |