Collections.sort()
·
Programming/Java
오름차순/ 내림차순/ 대소문자 구분 없이 정렬import java.util.ArrayList;import java.util.Arrays;import java.util.Collections;public class SortArrayList {public static void main(String[] args) {// ArrayList 준비ArrayList list = new ArrayList(Arrays.asList("C", "A", "B", "a"));System.out.println("원본 : " + list); // [C, A, B, a]// 오름차순으로 정렬Collections.sort(list);System.out.println("오름차순 : " + list); // [A, B, C, a]// 내림..
Wildcard <?>
·
Programming/Java
와일드카드란?The wildcard ? in Java is a special kind of type argument[1] that controls the type safety of the use of generic (parameterized) types. It can be used in variable declarations and instantiations as well as in method definitions, but not in the definition of a generic type.[  public static void peekBox(Box box){ System.out.println(box); }// 제네릭 메소드 정의public static void peekBox(Box box){ Sy..
Generic Method (Basic)
·
Programming/Java
제네릭 메소드class BoxFactory{ public static Box makeBox(T o){ Box box= new Box(); box.set(o); return box; } }클래스 전부가 아닌 메소드 하나에 대해 제네릭으로 정의 제네릭 메소드와 제네릭 클래스의 차이- 제네릭 메소드의 T 결정: 호출 시점- 제네릭 클래스의 T 결정: 인스턴스 생성 시점 오토 박싱: 기본 자료형이 인자로 들어와도 오토 박싱을 통해 객체 타입으로 변환
Generic Class (Basic)
·
Programming/Java
제네릭이란?데이터 타입을 컴파일 시 결정 제네릭 클래스- 인스턴스 생성 시 자료형 결정- compiler가 알 수 있게, T로 구분! 제네릭 이전의 코드프로그래머의 실수 발견1. 컴파일 오류2. 예외 발생 제네릭 이전의 코드는 프로그래머의 실수를 컴파일 오류, 예외로 발견하기 어렵다.  제네릭 클래스class Box { private T ob; public void set(T o){ ob= o; } public T get(){ return ob; }} 제네릭의 구성1. Type Parameter(타입 매개변수): Box에서 T2. Type Argument(타입 인자): Box에서 Apple3. Parameterized Type(매개변수화 타입)Box  프로그래머의 실수가..
Collection
·
Programming/Java
Collection- 사전적 의미: 요소를 수집해서 저장하는 것- Java에서는 Collection이란 데이터의 집합, 그룹을 의미 Collection Framework데이터를 저장하는 자료구조와 데이터를 처리하는 알고리즘을 구조화하여 클래스로 구현해놓은 것Keyword- 자료구조- 알고리즘 - 구조화- 클래스 구현주요 인터페이스 간 상속 관계주의Map은 Collection와 독립적이다
process와 thread 구성
·
OS
process 프로세서에 의해 실행되고 있는 프로그램 process의 구조 - code: 프로그램 명령이 위치한 곳 - data: 전역 변수나 static 변수의 할당을 위해 존재하는 공간 - stack: 지연 변수 할당, 함수 호출 시 전달되는 인자 값들을 저장하기 위한 공간(). 제어를 위해 필요한 데이터 - heap: Java의 new를 통한 동적 할당을 위해 존재하는 공간 thread - 프로그램의 실행 단위 - 역할: 프로세스가 할당 받은 자원을 통해 제어 첨언 - CPU 스케줄러는 프로세스가 해야할 일을 CPU에게 전달하고 실제 작업은 CPU가 수행 - 스케줄러가 CPU에 전달하는 일 하나가 스레드! - OS 입장에서 작업 단위는 프로세스이고, CPU 입장에서의 작업 단위는 스레드이다. the..
원시(Primitive) 타입과 참조(Reference) 타입
·
Programming/Java
primitive type- 실제 데이터 값을 저장하는 타입- 스택에 값 존재 reference type- 인스턴스 번지 값(주소 값)을 저장하는 타입- 스택에 번지 값 존재- 힙에 실제 값(인스턴스) 존재 reference 타입을 사용하는 이유는?1. null을 담을 수 있는가?- primitive type: X- reference type: O 2. 제네릭 타입을 사용할 수 있는가?- primitive type: X- reference type: O primitve 타입을 사용하는 이유는? 1. 접근 속도primitive type: 스택에 메모리 존재reference type: 참조 값은 스택, 실제 값은 힙에 존재. 실제 값 필요할 때마다 언박싱 과정 필요. 2. 차지하는 메모리 양primitive..
Concurrency vs Parallelism
·
OS
동시성(Concurrency) - 적어도 2개의 스레드 - time slicing - 코어 내에서 스레드가넹 빠르게 교차 실행 - 동시에 실행하는 것 처럼 보임. 실제로 동시에 수행하는 것은 아님. 병렬성(Parallelism) - 적어도 2개의 코어 - 각 코어 내에 스레드가 실제로 동시에 명령 실행
이미 push한 commit 메시지 변경
·
Git
rebase 명령어 git rebase HEAD~[거슬러 올라가고 싶은 커밋 수] -i 예를 들어, 바로 전 커밋의 메세지를 재작성하길 원한다면 git rebase HEAD~1 -i 1. 이 때 뜨는 화면에서 pick 이라는 단어를 reword 로 변경 2. 커밋 메세지가 기록되어 있는 화면이 보이면 여기서 커밋 메세지를 수정 3. i 를 입력하여 편집 모드로 변경한 후 수정을 진행한다. 수정이 완료되면 ESC키를 누른 후 :wq! 를 입력하여 편집기를 빠져나온다. 4. 강제 push 를 하여 수정 내용을 원격 저장소에 반영합니다. git push --force 참고 https://ssoco.tistory.com/56
[OS] Lecture 6. Process Synchronization and Mutual Exclusion (1/7) - Introduction
·
OS
다중 프로그래밍 시스템 - 여러 개의 프로세스 존재 - 프로세스 서로 독립적 동작 - 프로세스 끼리 자원을 공유-> 문제 발생 가능성 Synchronization(동기화) - 프로세스간 통신 - 프로세스간 서로 정보를 공유하는 것 - 프로세스간 서로 동작을 맞추는 것. Asynchronization(비동기화) - 프로세스간 서로 어떻게 동작하는지 모름 Concurrent(병행적) - 프로세스 동시에 동작 - 병행 수행 중인 비동기적 프로세스들이 자원을 공유-> 문제 발생 가능성 용어정리 1. Shared data(공유 데이터) or Critical data 여러 프로세스들이 공유하는 데이터 2. Critical section(임계 영역) 공유 데이터(자원)를 접근하는 코드 영역(code segment) ..