ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JAVA란?
    기초/JAVA 2017. 1. 2. 10:56

    JAVA란 ?

    sun microsystems에서 1995년에 개발한 [객체 지향 프로그래밍] 언어

    2010년에 오라클이라는 회사에서 sun을 인수해서 저작권자가 오라클로 변경되었습니다.

     

    왜 근데 언어 이름이 자바일까 .....??

    언어 이름에 자바라고 붙은 계기는 여러가지가 있는데요. 그 중하나가 개발자가 커피를 좋아해서 붙었다고 합니다

     

    자바의 특징

    1) 객체지향 언어(OOP- Object oriented Programming Language)

    JAVA C언어에 억지로 끼워넣은 객체지향언어 C++과는 다르게 처음부터 [객체 지향 언어]로 개발되었어요.

     

    이제부터 객체 지향 언어라는 말을 계속 듣게 되실텐데요 그럼 객체 지향은 대체 뭐길래 자바에 꼬리처럼 따라 붙는걸까요??

     

    [객체 지향 언어]

    객체 지향 프로그래밍 환경에서 사용되는 프로그램언어의 명칭입니다.

     

    [객체 지향 프로그래밍]

    무언가를 객체로 만들어서 구현,실현(모델화)하는 것을 말하는데요.

    객체는 실체(데이터)와 실체에 관련되는 동작(절차, 방법, 기능)을 포함하고 있어요

     

    [카페]를 예를 들자면

    실체 : [손님]

    절차 : [아메리카노 한잔 주문]

    이 하나의 객체 이고

     

    실체 : [매니저]

    절차 : [커피 판매]

    라는 하나의 객체가 됩니다

     

    객체 지향 언어의 특징으로는 상속, 캡슐화, 다형성이 있는데 이것은 코딩을 할때 짚어드릴께요!

     

    2)자동 메모리 관리 => Gabage Collection

    쓰레기값 즉,  Gabage

    응용프로그램에서는 더 이상 사용되지 않는 메모리를 말하는데요. 이것을 가비지라고 합니다. 앞으로 프로그램을 만들다보면 객체나 배열을 만들어 놓고 사용하지 않을 때가 있을 수 도있습니다. 이 쓰레기들을 프로그램 상에서 계속 올려놓으면 프로그램은 계속 무거워진 상태를 유지하겠지요?

    예를 들어 오늘은 국어, 수학과목을 듣는 날인데 영어책과 사회책도 가방에 들어있다면 가방만 무거워지겠죠? 이때 영어책과 사회책을 가비지라고  생각하시면 편하실꺼예요!

     

    C/C++을 배우고 오신분들도 있으시겠지만 C에서는 free()라는 소멸자를 통해 메모리사용이 끝나는 지점에서 해제를 해주어야 메모리 할당이 끝이나는데요.

    설계자가 메모리사용이 끝나는 지점까지 계산을 해서 설계를 해야지만 메모리 누수가 없는 프로그램이 완성이 되는데 자바에서는 이러한 복잡한 설계 과정의 역할을 가비지 컬렉션이 해줍니다.

    다음에 설치할 자바 가상 기계(JAVA Virtual Machine)는 가비지 컬렉터 역할을 하는 가비지 컬렉션 스레드를 가지고 있는데요.

    자바에서도 직접 가비지 컬렉션을 요청하고 메모리를 해제할수도 있어요

    http://blog.naver.com/madplay/220875675406

     

    3)운영체제에 독립적

    프로그램을 설치하시다보면 MS용, MAC용 등등 운영체에 맞게 설치해야되는 것을 보신적이 있으시죠???

    개발자는 사용자의 운영체제에 맞게 프로그램을 제작해야 되는데 자바 플로그램은 [JVM]이라는 프로그램을 통하기 때문에 O/S에 영향을 다른 프로그램에 영향을 덜받아요!

    4)멀티 스레드 지원

    이건 C/C++에서도 지원을 하지만 멀티 스레드 부분은 중요하기에 한번 알려드려요!

    단일스레드는 응용프로그램이 한명이 일을 하고있다고 생각한다면

    멀티스레드는 다수가 일을 하고있다고 생각하면되요!

    만약 집 청소를 하는데 한사람이 설거지, 빨래, 청소를 다한다면 설거지-> 빨래-> 청소........ 굉장히 오랜시간이 걸리겠지만 3명이서 각각의 행동들을 한다면

    설거지  ===

    빨래     ===> 청소가 더 빨리 끝나겠죠?

    청소     ===

    이게 멀티스레드의 개념입니다!

    이런것들을 응용해서 프로그램을 짠다면 프로그램시간이 더 줄어들겠죠?

     

    5)동적로딩을 지원

    동적 적재(dynamic loading) 또는 동적 링크(dynamic linking)은 컴퓨터 프로그램이 메모리로 라이브러리 또는 다른 프로그램을 적재/링크하는 방식으로,

    CPU의 메모리 사용량을 줄이기 위해 일부 라이브러리 코드의 적재/링크를 미뤄두고 미뤄진 라이브러리 코드는 생성된 실행 파일에 포함 되지 않으며, 동적 링크 라이브러리(.dll)에 저장된다. 또한 이는 프로그램 실행 도중 필요시, CPU의 호출에 의해 링크, 적재된다. 위키백과 : 동적적재

    .......그렇다고 하네요 ^^^^^^^^^^^^^^

     

    이런 특징을 보면 자바가 얼마나 배우기 쉬운 언어인지 알 수 있어요! 다들 겁먹지말고 같이 공부해요!!!

     

    다음 포스터에서는 자바를 할 수 있는 환경을 만들어보는 포스터를 만들께요

    '기초 > JAVA' 카테고리의 다른 글

    [JAVA] 입출력  (0) 2017.01.11
    [JAVA] 골격 및 주석  (0) 2017.01.10
    [JAVA]final 한정자, 변수와 타입 그리고 형변환(casting)  (0) 2017.01.10
    JAVA 환경변수 설정 win7  (0) 2017.01.04
    자바 시작하기!  (0) 2017.01.04

    댓글

Designed by Tistory.