안드로이드 개발 환경 구축하기 - 자바 jdk 설치하고 환경변수 설정

컴퓨터/Android 2012. 11. 7. 22:32

안드로이드 개발 환경 구축하기 - 자바 jdk 와 환경변수 설정

안녕하세요. 요즘 안드로이드 개발 시장에 뛰어드시는분들이 많습니다.

이제는 아이디어만 있으면 바로 어플리케이션을 개발 할 수 있을만큼 개발이 쉬워졌는데요. 그중 안드로이드의 기반언어인 자바 jdk를 설치하고 개발툴인 eclipse를 이용해 윈도우나 리눅스에서 모두 개발할 수 있지만 이번에는 윈도우에서 설치해보겠습니다.


자바 jdk 설치하기

http://www.oracle.com/technetwork/java/javase/downloads/index.html

자신에게 맞는 운영체제를 선택하여 설치합니다. 


* x64는 64비트이고 x86은 32비트입니다. 자신이 무엇을 쓰고있는지 모른다면 

내컴퓨터 -> 오른쪽마우스 -> 속성 -> 시스템 종류를 보시면 32비트인지 64비트인지 나와있습니다.


자바 설치 확인하고 환경변수 설정하기

cmd로 들어가서 java를 입력합니다.


자바가 정상적으로 설치되었다면 java를 입력했을때 저렇게 나타나야합니다.

이번엔 javac를 입력합니다. 내부 또는 외부 명령이 아니라고 뜨시나요? 

그렇다면 환경변수 설정을 해야합니다.


내컴퓨터 -> 속성 -> 고급 -> 환경변수 로 들어갑니다.


시스템 변수에서 새로만들기를 클릭합니다.


변수이름에는 JAVA_HOME 이라고 입력하고 변수 값에는 자신이 jdk를 설치한 경로를 입력하시면 됩니다.

예) C:\Program Files\Java\jdk1.7.0_04


이제 시스템변수에서 Path를 찾아서 편집을 클릭합니다.


변수 값 맨 뒤에 ;%JAVA_HOME%\bin; 를 추가합니다.


다 되셨다면 확인을 누르시고 다시 cmd에서 javac를 입력합니다.

제대로 적용이 되셨다면 javac를 입력하시면 이런 화면이 나옵니다.


수고하셨습니다.

다음 게시물에서는 개발툴인 eclipse를 설치해보겠습니다.

설정

트랙백

댓글

자바 Vector 와 ArrayList , LinkedList의 차이점

컴퓨터/Java 2012. 11. 4. 01:23

자바에서 리스트 인터페이스를 구현한 클래스는 ArrayList와 LinkedList

Stack 과 Vector등이 있습니다. 그 중  Vector와 ArrayList , LinkedList의 차이를 알아볼까요?

Stack은 말 그대로 자료구조중 하나인 Stack이고요.

Vector클래스와 List클래스들의 다른점은 동기화(synchronize)처리에 있습니다.

동기화란 한 스레드에서 공유자원에 작업을 마치기 전 까지는 다른 스레드에서 공유자원에 접근 하지 못하

게 약속하는것인데요. 안전성은 정말 좋은 일이지만 만약 하나의 스레드에서 작업을 한다고 하면 오히려 

성능의 저하를 가져오게 됩니다. Vector의 경우 무조건 동기화를 하기 때문에 단일 스레드 처리에서는 

ArrayList나 LinkedList보다 성능이 떨어집니다. Vector는 그래서 자바1.2 이후로는 거의 쓰이지 않는 비운

의 자료구조형이 되어버렸죠... ㅜㅜ

동기화가 필요할때는 Collection.synchronizedCollection(Collection c)를 이용하는것이 성능상 바람직 하겠습니다.

그럼 이제 ArrayList 와 LinkedList의 차이에 대해 알아볼까요? 

LinkedList에는 여러가지가 있지만 자바에서는 환형 더블 링크드리스트를 구현하였습니다. 링크드리스트에 대한 소개는 자료구조에서 따로 하겠습니다.


ArrayList는 배열로 구조가 간단하며 데이터를 읽어오는데 걸리는 시간이 가장 빠릅니다. 하지만 크기를 변경할 수 없고 비순차적인 데이터의 추가 또는 삭제에 시간이 많이 걸립니다.


반면 LinkedList는 중간 데이터를 추가/삭제하는 경우 ArrayList보다 빠릅니다. 그러나 순차적으로 데이터를 추가/삭제 하는 경우에는 ArrayList가 LinkedList가 더 빠릅니다.

그러므로 ArrayList에는 순차적으로 데이터를 추가/삭제하거나 읽어오는 작업이 많을 때 사용하고

LinkedList는 비순차적으로 랜덤하게 데이터의 추가 또는 삭제가 필요할 때 사용해야합니다. 

때에 맞는 자료구조의 사용으로 인한 성능 향상은 조그마한 차이지만 매우 큰 결과를 나타냅니다.


이야기를 정리하자면,

Vector - 구버전 호환용으로 잘 사용되지 않고 동기화 처리가 내부적으로 일어나서 다른 객체들 보다 무겁다. 고로 왠만하면 다른 List클래스를 사용하는것이 좋습니다.

ArrayList - 배열의 복사에 의한 데이터 저장처리를 내부적으로 행하며, 각 데이터에 대한 인덱스를 가지고 있기 때문에 검색이 매우 빠르지만 많은 데이터의 추가 / 삭제시에는 배열의 복사가 빈번하게 일어나 성능이 떨어지는 단점이있습니다.

LinkedList - 다음 자료의 위치정보를 가지며, 내부적인 인덱스 가지고 있지않다. 데이터의 추가 / 삭제는 위치정보의 수정만으로 가능하기 때문에 많은 정보의 추가 / 삭제처리가 필요할때 유용하지만 데이터가 많은 경우의 검색시 처음 자료부터 순차적으로 찾아 나가야 하기 때문에 느려지는 단점이 있습니다.



'컴퓨터 > Java' 카테고리의 다른 글

제네릭스(Generics)와 와일드 카드  (0) 2012.11.08
나의 첫 자바프로그램 단어암기장  (0) 2012.11.08

설정

트랙백

댓글

재귀함수의 묘미 - 하노이의 탑

하노이의 탑 이란?

퍼즐의 일종으로 세 개의 기둥과 이 기둥에 꽂을 수 있는 크기가 다양한 원판이 있고, 퍼즐을 시작하기 전에는 한 기둥에 원판들이 작은 것이 위에 있도록 순서대로 쌓여 있다.

게임의 목적은 다음 두 가지 조건을 만족시키면서, 한 기둥에 꽂힌 원판들을 그 순서대로 그대로 다른 기둥으로 옮겨서 다시 쌓는 것이다.

1. 한번에 하나의 원판만 옮길 수 있다.

2. 큰 원판이 작은 원판 위에 있어서는 안된다.


일반적으로 원판이 n개 일 때, 2n -1번의 이동으로 원판을 모두 옮길 수 있다.

C언어로 소스를 구성해 보면

#include<stdio.h>
void hanoi(int n,char a,char b,char c){
 if(n>1){
  hanoi(n-1,a,c,b);
  printf("원반 %d : %c => %c\n",n,a,c);
  hanoi(n-1,b,a,c);
 }
}
void main(void){
 hanoi(6,'a','b','c');
}

'컴퓨터 > 자료구조 / 알고리즘' 카테고리의 다른 글

Quick Sort - PPT 자료  (0) 2012.11.07

설정

트랙백

댓글