반응형

[데이터 타입(Data Type)]

1) 기본 타입(Primitive Type)

1 - 정수 타입 : byte, char, short, int, long

2 - 실수 타입 : float, double

3 - 논리 타입 : boolean


2) 참조 타입(Reference Type)

1 - 배열 타입

2 - 열거 타입

3 - 클래스

4 - 인터페이스


기본 타입으로 선언된 변수와 참조 타입으로 선언된 변수의 차이점은 저장되는 값이 무엇인가 입니다.

기본 타입을 이용해서 선언된 변수는 실제 값을 변수 안에 저장하지만,

참조 타입을 이용해서 선언된 변수는 메모리의 번지를 값으로 갖습니다.


-> 번지를 통해 객체를 참조한다는 뜻에서 참조 타입이라 부르게 됩니다.


예) int와 double로 age, price라는 변수 선언, String 클래스로 name과 hobby 라는 선언

[기본타입 변수]

int age = 25;

double price = 100.5;

[참조 타입 변수]

String name = "최진우";

String hobby = "피아노";

(** 변수는 스택영역에 생성되고, 객체는 힙 영역에 생성됩니다. **)

즉, name와 hobby는 힙 영역에 생성된 String 객체를 참조하게 됩니다.

반응형

'Programming > JAVA' 카테고리의 다른 글

Java - (4) Array Type (배열 타입)  (0) 2016.05.04
Java - (3) String Type (문자열 타입)  (0) 2016.05.04
Java - (1) Java언어의 특징  (0) 2016.05.04
Java(Data Structure) - List, Set, Map  (0) 2016.04.22
리스트(List) TestList  (0) 2016.04.22

WRITTEN BY
SiriusJ

,
반응형

Java에 대해 포스팅이 두서없이 이루어진 것 같아서 앞으로 차근차근 중요한 부분 위주로 다시 다뤄보고자 합니다.

먼저 Java언어의 특징부터 다루도록 하겠습니다.


[특징]

1. 이식성이 높은 언어

- 이식성: 서로 다른 실행환경을 가진 시스템 간에 프로그램을 옮겨 실행할 수 있는 것

: Java언어로 개발된 프로그램은 소스 파일을 다시 수정하지 않아도, 자바 실행환경(JRE: Java Runtime Environment)이 설치되어 있는 모든 운영체제에서 실행 가능합니다. 따라서 자바언어는 이식성이 높은 프로그래밍 언어라 할 수 있습니다.


2. 객체 지향 언어

- 객체지향 프로그래밍(OOP) : 프로그램을 개발하는 기법으로 부품에 해당하는 객체들을 먼저 만들고, 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법

: 자바는 100% 객체지향 언어입니다. 객체를 만들기 위해 설계도인 클래스를 작성해야 하고, 객체와 객체를 연결해 목적에 맞는 프로그램을 만들어 냅니다. 자바는 아무리 작은 프로그램이라도 객체를 만들어 사용하게 됩니다.

처음부터 객체를 고려해 설계되었기 때문에 객체지향 언어가 가져야 할 캡슐화, 상속, 다형성 기능을 완벽하게 지원합니다.


3. 함수적 스타일 코딩을 지원

: 자바는 함수적 프로그래밍을 위해 람다식을 자바8 부터 지원합니다. 람다식을 사용하면 컬렉션의 요소를 필터링, 매핑, 집게처리하는데 쉬워지고, 코드가 매우 간결해집니다.


4. 메모리를 자동으로 관리

: C++은 메모리에 생성된 객체를 제거하기 위해 개발자가 직접 코드를 작성해야합니다. 만약 이 작업을 잘 처리하지 않으면 프로그램은 불완전해지고 갑자기 다운되는 현상을 겪게 됩니다. 자바는 개발자가 직접 메모리에 접근할 수 없도록 설계되었으며 메모리는 자바가 직접 관리하게 됩니다. 객체 생성 시 자동적으로 메모리영역을 찾아서 할당하고, 사용이 완료되면 쓰레기 수집기(Garbage Collector) 를 실행시켜 자동적으로 사용하지 않는 객체를 제거시켜줍니다. 따라서 개발자는 메모리 관리의 수고를 덜고, 핵심기능 코드 작성에 집중할 수 있습니다.


5. 다양한 애플리케이션 개발

: 자바는 윈도우, 리눅스, 유닉스 등 다양한 운영체제에서 실행되는 프로그램을 개발 할 수 있습니다. 단순한 콘솔 프로그램부터 클라이언트용 윈도우 애플리케이션, 서버용 웹 애플리케이션 그리고 모바일용 안드로이드 앱에 이르기까지 거의 모든 곳에서 실행되는 프로그램을 개발 할 수 있습니다.


6. 멀티쓰레드를 쉽게 구현 가능

: 하나의 프로그램이 동시에 여러 작업을 처리해야 하는 경우와, 대용량 작업을 빨리 처리하기 위해 서브 작업으로 분리해서 병렬처리하려면 멀티쓰레드 프로그래밍이 필요합니다.

자바는 쓰레드 생성 및 제어와 관련된 라이브러리 API를 제공하고있기 때문에 실행되는 운영체제에 관계없이 멀티 쓰레드를 쉽게 구현 가능합니다.


7. 동적로딩(Dynamic Loading)을 지원

: 자바 애플리케이션은 여러개의 객체가 서로 연결되어 실행되는데, 이 객체들은 클래스로부터 생성됩니다.

애플리케이션이 실행될 때 모든 객체가 생성되지 않고, 객체가 필요한 시점에 클래스를 동적로딩해서 객체를 생성합니다. 또한 개발완료후 유지보수가 발생하더라도 해당 클래스만 수정하면 되므로 전체 애플리케이션을 다시 컴파일 할 필요가 없습니다. 즉, 유지보수를 쉽고 빠르게 진행할 수 있습니다.


8. 오픈 소스 라이브러리가 풍부

: 자바는 오픈소스언어이므로 자바 프로그램에서 사용하는 라이브러리 또한 오픈소스가 많습니다. 고급 기능을 구현하는 코드를 직접 작성할 경우 시간과 노력이 필요하고, 실행 안전성을 보장할 수 없지만 검증된 오픈소스 라이브러리를 이용하면 개발기간을 단축하며 안전성이 높은 애플리케이션을 쉽게 개발할 수 있습니다.

반응형

'Programming > JAVA' 카테고리의 다른 글

Java - (3) String Type (문자열 타입)  (0) 2016.05.04
Java - (2) 데이터타입(Data Type)  (0) 2016.05.04
Java(Data Structure) - List, Set, Map  (0) 2016.04.22
리스트(List) TestList  (0) 2016.04.22
배열(Array) Test_Array  (0) 2016.04.22

WRITTEN BY
SiriusJ

,
반응형

Python2를 이용하여 Web pageURL을 주면 base page(html)을 가져와서 image tag에 기술된 image file들의 path list를 만들어 보는 간단한 실습을 해보도록 하겠습니다.

(Python3 와 Python2는 문법 및 약간의 차이가 있다는 점이 있으나, 사용법은 거의 유사합니다.)


import re, urllib2 

def get_urls(url):

  response = urllib2.urlopen(url)

  page = response.read()

  #print page ->test페이지의 HTML 소스들이 전부 출력됩니다.

  urls = []

 

  linksList = re.findall('<img src=(.*?(gif|jpg|png)")',page)

  for link in linksList:

  urls.append(link)

  return urls

 

if __name__ == '__main__':

  test_url = 'http://mclab.hufs.ac.kr/test/index.html'

  imglist = get_urls(test_url)

  print imglist


해당 test pageurl 로부터 페이지를 read하여 page라는 변수에 저장합니다.

(test_url은 특정 홈페이지로 설정하였습니다.)

이 때, 만약 print page를 하게 되면 test 페이지의 소스들이 전부 출력되는 것 또한 확인할 수 있습니다.

그리고 urls라는 list를 만들어서 이곳에 우리가 원하는 img 태그의 path를 저장하도록 합니.

아래에서 re.findall 함수를 사용하여 이미지 태그를 찾고, 그에 대하여 gif, jpg, png 의 다양한 형식의 이미지 파일들에 대하여 모두 찾아서 추출할 수 있도록 해당식을 표현주었습니다.

이후 for문안에서 urls.append를 사용해 찾은 img 정보들을 리스트에 더해주면 됩니다.


[Python2 IDLE shell 결과화면]


반응형

'Programming > Python' 카테고리의 다른 글

Sorting(4) Selection Sort(선택 정렬)  (0) 2016.10.27
Sorting(3) Insertion Sort(삽입 정렬)  (0) 2016.10.27
Sorting(2) Quick Sort(퀵 정렬)  (0) 2016.10.27
Sorting(1) Bubble Sort(버블 정렬)  (0) 2016.10.27
Python2 설치  (0) 2016.05.14

WRITTEN BY
SiriusJ

,
반응형

먼저 저번에 Virtualbox를 이용하여 우분투 리눅스를 설치하는 부분을 살펴보았습니다.

다음으로 리눅스의 명령어와 그 사용법을 살펴보도록 하겠습니다.


명령어 

사용법 

 passwd

패스워드 변경 

 ls

파일 리스트 보기(dir) 

 cd

디렉토리 변경 

 cp

파일 복사 

 mv

파일이름 / 위치 변경 

 mkdir

디렉토리 생성 

 rm

파일 삭제 

 rmdir

디렉토리 삭제 

 pwd

현재의 디렉토리 경로 보여주기 

 chmod

파일 Permission 변경

 who

현재 시스템에 login하고있는 사용자의 리스트를 보여줌

 vi, touch, cat, nano

새로운 파일을 만드는 방법 

 cat, head, tail

파일 내용만 보기


- 기본명령어


- 고급 명령어



터미널에 $vi. 파일명.c 를 입력해줍니다.

vi는 윈도우로 보면 메모장과 비슷한 텍스트 에디터입니다.

쉽게 생각하면 메모장에 c소스를 입력, 저장한 후 컴파일러로 컴파일 해주는 과정이 됩니다.

Visual C에서 한번에 처리하는 것을 각각의 프로그램을 이용해 분업하는 것과 같습니다.


알파벳 i나 a 키 등을 눌러주면 입력모드로 텍스트를 수정할 수 있게 됩니다.

아래와 같이 소스를 작성 후, 소스를 저장하고 vi에디터를 종료해야 합니다.

입력을 마친 상태에서 esc키를 하번 쿠르고 콜론( : ) 을 눌러준 후 wq를 입력해주고 엔터를 치면 저장 후 vi에디터가 종료됩니다.

(w는 저장을 해주는 명령어, q는 종료를 해주는 명령어. 즉 wq는 저장하고 종료해주는 것)


이제 컴파일 해주기 위해

해당 C소스를 만들어 준 디렉토리에서 터미널에 $gcc -o "만들 파일이름" "만든C소스.c" 를 해준 후 엔터를 치게 되면 해당 c 소스를 gcc 컴파일러가 컴파일해주어 실행파일로 만들어 지는 것을 확인할 수 있습니다.

실행은 $./만들어진파일이름  으로 실행할 수 있습니다.

반응형

'Programming > Linux Programming' 카테고리의 다른 글

VirtualBox, Ubuntu (우분투) 설치  (0) 2016.04.26

WRITTEN BY
SiriusJ

,
반응형

먼저 리눅스의 기초인 가상머신을 활용하여 리눅스를 사용하는 방법을 소개하고자 합니다.

가상머신의 종류에는 대표적으로 많이 사용하는 Virtualbox, VM ware등이 있으며,

사용하는 리눅스의 종류에는 Ubuntu, Fedora, Linux Mint 등이 있습니다.

저는 가장 많이 알려져있고 사용하는 Virtualbox에 Ubuntu를 설치하여 사용하도록 하겠습니다.


먼저 사이트 https://www.virtualbox.org/ 에 접속하게 되면 virtualbox를 설치할 수 있습니다. 현재는 5.0버전이군요.


가장 크게보이는 아이콘 Download 5.0 버튼을 누르게 되면,

다음 화면으로 넘어가게 되는데, 우리는 Windows환경에서 리눅스를 돌릴것이기 때문에 형광칠해진 부분을 클릭하여 설치하도록 합시다!


해서 파일을 다운로드 받은후, 실행하면 아래와 같이 나옵니다.

현재는 5.0버전이지만, 저는 이미 설치한 상태라 예전의 자료들을 토대로 글을 올리다보니 4.3.8버전으로 화면에 나옵니다. 버전은 신경쓰지마시길 바라며 설치방법은 따로 다르지 않습니다. next버튼을 계속 클릭하여 설치를 완료해주시면 됩니다.


마지막으로 install버튼을 누르면 설치가 완료됩니다.

다음으로 우분투를 다운받아 설치하도록 하겠습니다.

우분투의 공식홈페이지는 http://www.ubuntu.com/ 입니다.

이곳에 접속해서 상단바에서 Download를 클릭하면 다음과 같이 나오게 됩니다.

여기서 Ubuntu Desktop을 눌러서 다운로드 페이지로 이동합니다. 현재는 16.04버전이 되었군요..^^


처음에는 $3 씩 기본으로 설정되어있지만, 아래의 형광칠해진 부분을 클릭하여 기부없이 무료로 사용하겠다.. 라고 클릭해준 후, Download버튼을 눌러주면 우분투 이미지를 받을 수 있게 됩니다.

- 이제 Virtualbox에 접속하여, 새로만들기 버튼을 클릭 후, 가상머신에서 사용할 우분투의 이름을 사용자 임의로 정해줍니다. 종류는 Linux, 버전은 Ubuntu (32bit 또는 64bit - 해당 컴퓨터에 따라 맞춰주면 됩니다.) 로 해줍니다.

 

- 우분투의 메모리 크기를 얼마나 해주겠냐는건데, 저는 노트북사양이 좋지못하여..^^ 1G(1024MB)로 설정했습니다.

데스크탑이나 기타 노트북의 사양이 괜찮다면 무난하게 사용하기에 2G면 충분할 듯 싶습니다.


다음을 누르다보면, 동적할당/고정크기를 선택해 줄 수 있습니다. 

* 동적할당은 드라이브의 크기를 가변적으로 설정해줄 수 있습니다. 만약에 사용하다가 지정해 준 크기를 넘게 되면 동적으로 크기를 할당해줍니다.

* 고정크기의 경우에는 드라이브의 크기를 제한하도록 하는 부분입니다.

어떤것을 선택하셔도 상관은 없으나 저는 동적할당으로 설치하도록 하겠습니다. 다음으로 크기를 지정해주는 부분으로 우분투를 어떤 용도로 사용할 것이냐에 따라서 크기가 정해지겠죠.? 저는 20GB로 설치했습니다. 기본이 아마 8GB로 설정되어있을 텐데, 8GB 또는 그 이상으로 해드릴 것을 권하는 바입니다. (우분투 설치 후 터미널 내에서 이것저것 툴이나 다른 것들을 Install할때마다 크기를 잡아먹게 되니까요.)


- 이렇게 설정들을 마쳐주면 왼쪽에 방금 만들어준 우분투이름과 함께 뜨게 됩니다.

우클릭 후, 설정버튼을 눌러준 후 저장소버튼을 클릭해줍니다.


- 현재는 우분투이미지를 넣어주지 않았기 때문에 비어있는것을 확인할 수 있습니다.

속성 CD/DVD 드라이브 ... 옆에 디스크모양이 있습니다. 이 버튼을 눌러주고 이미지를 삽입해주면 되는데,

그 이미지는 위에서 우분투 홈페이지를 다운로드받았던 것을 선택해서 삽입해주면 됩니다.


- 이제 이미지를 넣었고, 더블클릭해 실행하여 우분투 설치를 진행해주면 됩니다.


- 한국어로 하는게 편하다면 언어에서 한국어를 클릭해서 설치를 진행해주고, 도시는 Seoul등과 함께

우분투에서 계정으로 사용할 부분을 사용자에 맞게 입력해줍니다.

이때, 패스워드는 꼭 기억해주셔야 합니다. 아래에서 로그인 할 때 사용되기 때문이죠.^^


- 다음과 같이 로그인 화면에서 해당 패스워드로 로그인 한 후,


- 장치 -> 게스트 확장 설치를 클릭하여 리눅스를 좀 더 사용하기 편리하게 해봅시다!

(마우스 휠 동작이나 화면 해상도 설정 등을 위해 게스트 확장 설치를 이용하게 됩니다.)

설치에도 패스워드가 이용되니 참고하시면 됩니다.


- 이제 터미널로 접속했을 때, 화면과 같이 나오게 됩니다. 

이상 Virtualbox 가상머신에서 우분투 리눅스의 기본 설치와 함께 환경을 구축하는 부분이었습니다.

(참, 이름은 위에서 입력해주는 대로 나옵니다. 전 위에서 Jinwoo Choi로 했는데, 원래대로 설치를 진행했다면 터미널에서도 빨간 네모박스 안에 Jinwoo Choi 라는 이름으로 나오게 될 것입니다. - sirius라고 보이는 것은 예전 자료를 가져왔기때문.. 죄송합니다ㅜㅜ)

반응형

'Programming > Linux Programming' 카테고리의 다른 글

리눅스 (우분투) 명령어 및 사용  (1) 2016.04.26

WRITTEN BY
SiriusJ

,
반응형

이번에는 Java의 자료구조들에 대해서 전체적으로 한번에 다뤄볼까 합니다.


자료구조 : 데이터를 효율적으로 사용할 수있도록 구조를 만들어서 저장해둔 것


(List, Map, Interface)

List

 : 중복이 있고, 순서가 있습니다.


- Vector -> 동기화 : 속도가 느려질 수 있음

- ArrayList -> 비동기화

간단 예시)

*추가) ArrayList 정렬

Collection.sort(this);  -> 올림차순

Collection.sort(this, Collection.reverseOrder()); -> 내림차순


Set

: 중복이 없고 순서도 없습니다.

- HashSet

- TreeSet(정렬)

간단 예시) - TreeSet


TreeSet에서 입력받을 때, 버퍼를 이용해서 입력을 받았습니다.

3번 입력을 받게 하였고, Iterator을 이용하여 출력하게 되었습니다.

TreeSet에서 주요하게 볼 부분은 임의의 값을 넣어주면, 정렬은 기본 오름차순으로 이루어진다는 부분입니다.


Map

: 검색할 때는 가장 빠르고, (Key, Value) 값으로 이루어 진 형태를 가집니다.


- HashTable -> 동기화

- HashMap -> 비동기화

위 TreeSet에서 보았듯이, TreeMap 또한 정렬을 제공합니다.


Map은 기본적으로 객체가 저장되며,

여러가지 타입이 저장 될 수 있습니다.

데이터를 꺼낼 때에는 Object형이기 때문에 적절하게 캐스팅 해줄 수 있습니다.

간단 예시)

- 해쉬맵을 사용하여 map을 생성해 준 후,

map.put() 을 이용하여 각각을 (Key, Value)의 형태로 설정해 줍니다.

이 때, <String, Integer> 형태이므로 Key는 String형태로, Value는 Integer형태로 저장 해주어야 합니다.

다음으로 Set을 이용하여 해쉬맵의 Key 테이블을 가져오게 됩니다. 또한 Key값이 String 형태이므로 Set<String>으로 가져와야 합니다.

그 후, set에 저장된 해쉬맵의 값을 String형태의 str로 값을 추출한 후,

map.get()함수를 이용하여 해당 키에 대한 Value의 값을 출력하게 됩니다.

이 때, HashMap은 정렬을 해주지 않는다는 것이 TreeMap과의 다른점입니다.

TreeMap은 HashMap과 비슷하지만 Key값을 기준으로 정렬됩니다.

HashMap과 사용 방법은 같으므로, 따로 정리하지는 않도록 하겠습니다.


*추가) <String, Integer> 또는 <String> 과 같은 형태를

Generics 라고 합니다. Generics는 간단히 정리하면 미리 들어갈 객체 타입을 넣어주는 것입니다.




마지막으로, 여러 자료구조를 복합하여 사용한 예제를 올려보도록 하겠습니다.

public class Test_HashMap {

public static void main(String[] args) throws IOException{

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

String tmp = br.readLine();

int loop = Integer.parseInt(tmp);

// HashMap에 Data 넣기 (Key , Value) 형태

HashMap<String, Integer> testmap = new HashMap<String, Integer>();

for(int i=0; i<loop; i++) {

String test_s = br.readLine();

String[] test_info = test_s.split(" ");

testmap.put(test_info[0], Integer.parseInt(test_info[1]));

}

// HashMap에 포함된 Key , Value를 Set에 담고 iterator에 값을 Set 정보를 담아 준다.

Set<Entry<String, Integer>> test_set = testmap.entrySet();

Iterator<Entry<String, Integer>> test_iter = test_set.iterator();


        //HashMap에 포함된 Key 중에 "최진우"라는 키를 가질 경우 true 리턴 (없을 경우 false)

if(testmap.containsKey("최진우")) {

System.out.println("최진우 발견!");

System.out.println(testmap.get("최진우"));

}     


        // HashMap에 포함된 key, value 값을 전부 호출 한다.

while(test_iter.hasNext()) {

Map.Entry<String, Integer> test_m = (Map.Entry<String, Integer>)test_iter.next();

System.out.println("이름:"+test_m.getKey() + ", 성적:" + test_m.getValue());

}

//Map에서 저장된 Key들을 가져올 Set을 만든다.

Set<String> test_set2 = testmap.keySet();

System.out.println("사람들"+ test_set2);

// Map에 저장된 value값들 Collection<Interger> 형태로 얻어 오고 iterator에 담는다.

Collection<String> test_name = testmap.keySet();

Collection<Integer> test_grade = testmap.values();

Iterator<String> test_itername = test_name.iterator();

Iterator<Integer> test_itergrade = test_grade.iterator();

while(test_itername.hasNext()) {

String sname = (String)test_itername.next();

Integer sgrade = (Integer)test_itergrade.next();

System.out.println("Name:"+sname);

System.out.println("Grade:"+sgrade);

}

}

}


결과 :

결과창에서, 위의 색있는 부분의 5줄이 입력을 받은 부분이며, 아래로는 출력된 부분입니다.

소스에 주석을 첨부하였으니, 설명은 생략하도록 하겠습니다.

반응형

'Programming > JAVA' 카테고리의 다른 글

Java - (2) 데이터타입(Data Type)  (0) 2016.05.04
Java - (1) Java언어의 특징  (0) 2016.05.04
리스트(List) TestList  (0) 2016.04.22
배열(Array) Test_Array  (0) 2016.04.22
function_test  (2) 2016.04.20

WRITTEN BY
SiriusJ

,
반응형

이번에는 리스트에 대하여 공부해도록 하겠습니다.

제가 간단히 작성해 본 리스트 소스입니다.

s1은 Integer형태의 리스트로, s2는 String형태의 리스트로 각각 new를 이용하여 리스트 객체를 생성해줍니다.

그 후, add() 함수를 이용하여 각각의 리스트에 값들을 저장해 주게 됩니다.

add()함수는 값을 저장해주고, size()함수는 배열의 크기를 출력해주는 함수입니다.

또한 contains(값)라는 함수도 자바에서 제공해주고 있는데, 이는 값이 해당 배열에 존재하는지를 파악하여 boolean값인 true 또는 false로써 return 됩니다.

이를 이용하여 if문 안에서 case를 구분지어줄 때에도 간단히 사용될 수 있겠습니다.

그 후, for()문에서 기존의 for(int i=0; i<s1.size(); i++) 의 형태와는 다소 다른 것을 확인해 볼 수 있습니다.

해당 for()문의 표현은 s1라는 리스트에서 Integer형태의 su로 하나하나 값을 빼내어 System.out으로 출력해주는 모습이고,

아래의 for문에서는 s2라는 리스트에서 String형의 city로 값을 추출해주어 출력해주는 부분입니다.


그 후, s2에서 remove함수를 사용하여 Busan을 리스트에서 제거해 준 후 

이후 결과값을 살펴보면 아래와 같이 나오는 것을 확인할 수 있습니다.


반응형

'Programming > JAVA' 카테고리의 다른 글

Java - (1) Java언어의 특징  (0) 2016.05.04
Java(Data Structure) - List, Set, Map  (0) 2016.04.22
배열(Array) Test_Array  (0) 2016.04.22
function_test  (2) 2016.04.20
Java 기초 코딩.  (0) 2016.04.20

WRITTEN BY
SiriusJ

,
반응형

배열을 이용하는 부분에 대하여 작성해보고자 합니다.

자바에서 배열은 객체이며, 사용하기위해서는 생성을 해주어야 합니다.

기본적으로 int형 배열과 string형 배열을 참고하면,

int[] arr1 = new int[10];

String[] arr2 = "test_string";

과 같이 여러 방법으로 생성 해 줄 수 있습니다.

위의 방법은 new를 이용하여 객체를 생성해주는 부분이며 

아래의 스트링 배열은 arr2라는 String배열을 만들어서 바로 스트링 값을 넣어준 부분입니다.

C와 달리 JAVA에서는 배열에 대해 편리한 함수들을 라이브러리로 제공해주고 있습니다.

TestArrays라는 클래스를 만들어 준 뒤,

main함수에서 su라는 int형 배열을 만들어서 값을 직접 입력해주고, ns라는 배열은 크기만 지정해주어 생성해줍니다.


그 후, su에 저장 된 값들을 ns에 옮겨주기 위해 자바에서는 Arrays.copyOf(배열, 배열의 크기) 함수를 제공해줍니다.

이를 이용하여 ns에 배열을 복사하게 됩니다.


그 후, 배열에 대한 정렬을 위해 Arrays.sort()함수를 이용하여 간단히 내림차순으로 정렬이 됩니다.

그 후, ns배열의 각 원소를 출력으로 찍어내면, 아래와 같은 그림으로 나오게 됩니다.

위쪽 5개의 값이 내림차순으로 정렬된 값이며,

아래쪽 5개의 값이 오름차순으로 재 정렬해본 값입니다.

Java에서 유용하게 쓰이는 함수들을 모아서 추후 정리해보도록 하겠습니다.

반응형

'Programming > JAVA' 카테고리의 다른 글

Java - (1) Java언어의 특징  (0) 2016.05.04
Java(Data Structure) - List, Set, Map  (0) 2016.04.22
리스트(List) TestList  (0) 2016.04.22
function_test  (2) 2016.04.20
Java 기초 코딩.  (0) 2016.04.20

WRITTEN BY
SiriusJ

,