자바 5

[자료구조] 스택과 큐

이전에 정리한 내용이 있지만, 책을 보며 예제 풀이를 진행하는 것이라 한 번 더 포스팅한다. [4장. 스택과 큐] 1. 스택 스택이란? 스택은 데이터를 일시적으로 저장하기 위한 자료구조이다. 후입 선출 방식(LIFO)으로 가장 나중에 넣은 데이터를 가장 먼저 꺼낸다. push : 스택에 데이터를 넣는 작업 pop : 스택에서 데이터를 꺼내는 작업 top : push와 pop을 하는 위치 bottom : 스택의 가장 아랫부분 스택 만들기 생성자 IntStack : 생성자는 스택 본체용 배열을 생성하는 등 준비작업을 수행한다. 생성시 스택은 비어있으므로 스택 포인터는 0을 가리킨다. 푸시 메소드 push : 스택에 데이터를 넣는 메소드이다. 스택이 가득차서 푸시할 수 없을 경우는 예외처리를 해준다. 포인터값..

CS/Data Structure 2020.02.02

[effective-java] 동시성

[11장. 동시성] 스레드는 여러 활동을 동시에 수행할 수 있게 해준다. 단일 스레드 프로그래밍보다 동시성 프로그래밍은 어렵다. 공유중인 가변 데이터는 동기화해 사용하라 synchronized 키워드는 메소드나 블록을 한번에 한 스레드씩 수행하도록 보장한다. (=synchronized가 붙으면 단 하나의 스레드만 실행가능) 동기화는 배타적 실행뿐 아니라 스레드 사이의 안정적인 통신에 꼭 필요하다. Thread.stop은 사용하지 말자 쓰기와 읽기 모두가 동기화되지 않으면 동작을 보장하지 않는다. 이 문제들을 피하는 가장 좋은 방법은 가변 데이터를 공유하지 않는 것이다. (가변 데이터는 단일 스레드에서만 쓰도록 하자) 여러 스레드가 가변 데이터를 공유한다면 그 데이터를 읽고 쓰는 동작은 반드시 동기화해야 ..

Dev/Java 2020.01.15

[effective-java] 일반적인 프로그래밍 원칙

[9장. 일반적인 프로그래밍 원칙] 1. 지역변수의 범위를 최소화하라 - 지역변수의 범위를 줄이는 가장 강력한 기법은 가장 처음 쓰일 때 선언하기 지역번수의 범위는 선언된 지점부터 그 지점을 포함한 블록이 끝날 때 까지. - 거의 모든 지역변수는 선언과 동시에 초기화. try-catch문은 이 규칙에서 예외. 변수를 초기화하는 표현식이 검사예외를 던질 가능성이 있을 경우 try 블록안에서 초기화. 예외가 블록을 넘어 메소드까지 전파할 수 있으므로) 변수 값을 try 블록 바깥에서도 사용해야한다면 try 블록 앞에서 선언. 반복문에서는 반복변수의 범위가 반복문의 몸체 그리고 for 키워드와 몸체 사이의 괄호 안으로 제한된다. 반복 변수의 값을 반복문이 종료된 이후에 써야 하는 상황이 아니라면, while문..

Dev/Java 2020.01.14

[java] CSV 파싱하기

CSV PARSER 이용해서 확장자가. csv인 파일을 파싱해서 처리해야 하는 일이 생겼다. 그런데 테스트 진행중에 CSV 파싱 오류가 계속해서 발생했다. 구글링 해본 결과 윈도우 OS에서 파일이 편집되었을 경우 인코딩 방식을 'ISO-8859-1'로 지정해야 한다는 것을 알게 되었다! 자바 코드 /** * * getParsingCsvData * */ private List getParsingCsvData(File file){ List csvList = new ArrayList(); // try with resources try (BufferedReader reader = Files.newBufferedReader(file.toPath(), Charset.forName("ISO-8859-1"))) { /..

Dev/Java 2019.12.13

[자료구조] 기본 자료구조(배열, 클래스)

자료구조와 함께 배우는 알고리즘 입문을 통해 자료구조 기초를 쌓아보자! [2장. 기본 자료구조] 1. 배열 자료구조 : 데이터 단위와 데이터 자체 사이의 물리적 또는 논리적인 관계 데이터 단위는 데이터를 구성하는 한 덩어리. 자료구조는 쉽게 말해 자료를 효율적으로 이용할 수 있도록 컴퓨터에 저장하는 방법. 배열 : 같은 자료형의 변수로 이루어진 구성요소가 모인 것 배열 본체를 생성하는 본체에 대한 참조를 생성. 본체를 참조하는 배열변수. 인덱스. 배열은 같은 형의 구성요소가 직선 모양으로 속하여 줄지어 있는 단순한 자료구조. 배열의 구성요솟수를 알고 있는 경우 int[] a = new int[5];와 같이 선언한다. 또는 배열의 변수 선언과 본체 생성을 따로 수행하는 것도 가능하다. //선언하기 int[..

CS/Data Structure 2019.11.26
반응형