본문 바로가기

프로그래밍(TA, AA)

(251)
[자바성능] static의 올바른 사용 static에는 static 초기화 블럭이라는 것이 있습니다. static 초기화 블록은 위와 같이 클래스 어느 곳에나 지정할 수 있습니다. 이 static 블록은 클래스가 최초 로딩될 때 수행되므로 생성자 실행과 상관없이 수행됩니다. 위의 코드처럼 사용했을 때, staticVal의 값은 마지막에 지정한 값이 됩니다. static 블록은 순차적으로 읽혀집니다. package com.perf.statics; public class StaticBasicSample2 { static String staticVal; static { staticVal = "Static Value"; staticVal = StaticBasicSample.staticInt + ""; } public static void main(S..
[자바성능] for 루프 성능 1. 조건문에서의 속도 조건문은 성능에 얼마나 많이 영향을 줄까요? 먼저 조건문에 어떤 것들이 있는지 보고, 조건문이 얼마나 성능에 영향을 주는지 알아보면, 조건문의 종류는 다음과 같습니다. if-else if-else switch if문 안에는 boolean 형태의 결과값만 사용할 수 있습니다. switch문은 byte, short, char, int, string 등을 사용한 조건 분기가 가능합니다. 일반적으로 if문에서 분기를 많이 하면 시간이 많이 소요된다고 생각하는데, 실제로는 그렇지 않습니다. if문 조건 안에 들어가는 비교 구문에서 속도를 잡아먹지 않는 한, if 문장 자체에서는 그리 많은 시간이 소요되지 않습니다. StopWatchAverage s1 = new StopWatchAverage..
[자바성능] 자료형 성능 비교 일반적인 프로젝트에서 VO객체 패턴을 많이 사용합니다. 그 객체 안에는 대부분 Collection이나 Map 등의 인터페이스를 상속받는 객체가 많이 사용됩니다. 대부분 목록 데이터를 가장 담기 좋은 것이 배열이고, 그 다음으로 Collection 연관된 객체이기 때문에 그렇습니다. 배열은 처음부터 크기를 지정해야 하지만, Collection의 대부분의 객체들은 그럴 필요가 없이 객체들이 채워질 때마다 자동으로 크기가 증가됩니다. 어떤 객체를 써야 성능상 좋은지에 대해 알아보겠습니다. 1. Collection 및 Map 인터페이스의 이해 배열을 제외하고 데이터를 담기 가장 좋은 객체는 Collection 및 Map 인터페이스를 상속한 객체입니다. 사진 출처 ( http://foratgweb.blogspot..
[알고리즘] 코딩테스트 문제 대비 기술 면접 대비 문제 대비 훈련법1. 직접 풀도록 노력해야합니다. 진실로 노력해야합니다. 많은 문제들은 까다롭게 만들어졌습니다. 문제를 풀때는 공간과 시간 효율에 대해서 반드시 생각해야 합니다. 공간효율을 희생해서 시간 효율을 높일 수 있는지, 아니면 반대로 할 수 있는지 자문해 보아야 합니다.2. 알고리즘 코드를 종이에 적어봅니다. 여러분은 아마 지금껏 컴퓨터 앞에서 코딩을 해왔을 것이고, 컴퓨터가 주는 편리함에 익숙해져 있을 것입니다. 하지만 면접을 보는 동안에는 문법 강조 기능이나 코드 완성, 컴파일링 기능이 갖추어진 도구의 도움을 받을 수 없습니다. 종이에 코딩하면서 같은 상황에 대비하여야 합니다.3. 코드를 테스트해봅니다. 역시 종이 위에. 일반적인 경우뿐 아니라, 기본 조건 그리고 오류 발생 ..
[파일I/O] 자바 Path 및 메타데이터 파일 속성 NIO.2 Path 클래스 NIO.2 API(JSR 203: More New I/O APIs for the Java Platform)를 시작하기에는 새 추상 클래스 java.nio.file.Path 가 좋습니다. I/O 작업과 관련된 모든 애플리케이션은 Path 클래스의 강력한 기능을 이용합니다. 모든 I/O 작업이 Path 리소스에 기반하므로 Path 클래스는 NIO.2에서 가장 널리 사용하는 클래스입니다.Path 클래스 사용 용도는 1) 문법적인 용도로 파일시스템에 접근하지 않고 경로를 조작하는 작업에 주로 사용됩니다. 이는 메모리상에서 행해지는 논리적 조작입니다. 2) 경로를 참조하는 파일에 대한 작업에서 쓰이게 됩니다. NIO.2 API 메타데이터 파일 속성 파일이나 디렉토리가 숨김(Hidden)..