1.1 자바

2020. 9. 30. 16:37Programming Language/Java

1.1.1 역사

  1991년 썬 마이크로시스템즈에서 Green Project 시작  
  1993년 썬 마이크로시스템즈에서 Green Project 폐기 및 Oak Project 시작  
  1995년 썬 마이크로시스템즈에서 James Gosling 개발한 객체 지향 프로그래밍 언어  
  1995년 ~1999년 윈도우 프로그램 개발이 주류였기 때문에 C++ 우세  
                          JAVA는 메모리 및 CPU를 지나치게 많이 사용해  부적합
  1999년 인터넷 활성화로 인해 웹 애플리케이션 구축용 언어로 떠올라   

             JAVA는 기업체 및 공공기관의 다양한 서버 운영체제에서 단 한번의 작성으로                                   모든 곳에서 실행 가능  
  2010년 오라클이 썬 마이크로시스템즈를 인수하며 Java의 저작권 소유  

1.1.2 특징  
   A. 이식성 높다  
       ♣ 이식성 : 서로 다른 실행 환경을 가진 시스템 간에 프로그램을 옮겨 실행  

   - JAVA 언어로 개발된 프로그램은 소스 파일을 다시 수정하지 않아도 자바실행환경                            (JRE  Java Runtime Environment)이 설치되어 있는 모든 운영체제에서 실행 가능

      JAVA = 이식성 높은 언어

   

   B. 객체 지향 언어  
      ♣ 객체 지향 프로그래밍 =OOP ( Object Oriented Programming)

        -> 프로그램을 개발하는 기법 중 하나로 부품에 해당하는 객체들을 먼저 만들고

         이것들을 하나씩 조립 및 연결해서 전체 프로그램 완성 
       - JAVA는 100% 객체 지향 언어라서 객체를 만들기 위해 설계도인 클래스 작성

         객체와 객체를 연결해 목적에 맞는 프로그램을 만들어 사용  
       - 객체 지향 언어가 가져야 할 캡슐화, 속성, 다형성 기능 지원  

     C. 함수적 스타일 코딩 지원  
        - 대용량 데이터의 병렬처리와 이벤트 지향 프로그래밍에 적합 
        - JAVA는 함수적 프로그래밍을 위해 람다식을 JAVA8 부터 지원  
      ♣ 람다식 : 컬렉션의 요소를 필터링 맵핑, 집계 처리하는데 쉬워지고 코드가 간결

      D. 메모리를 자동으로 관리  
        - JAVA는 개발자가 직접 메모리에 접근할 수 없도록 설계

        - 사용이 완료되면 쓰레기 수집기 실행해 자동으로 사용하지 않는 객체 제거  
       

      E. 다양한 어플리케이션 개발  
           - JAVA는 윈도우 리눅스 등 다양한 운영체제에서 실행되는 프로그램 개발  
           - 단순한 콘솔 프로그램에서부터 클라이언트용 윈도우 애플리케이션,

             서버용 웹 애플리케이션, 모바일용 안드로이드 앱에 이르기까지 거의

              모든 곳에서 실행되는 프로그램 개발 가능