The Java(TM) Language - An Overview


Published on

The Java(TM) Language - An Overview

Published in: Technology
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide
  • 종종 발표자는 주제나 어휘에 익숙하지 않은 청중에게 기술적 성격의 자료를 전달해야 합니다. 자료는 복잡하거나 많은 양의 상세 정보를 나타낼 수 있습니다. 기술적인 자료를 효과적으로 발표하려면 Dale Carnegie Training®의 지침 따라 하기를 이용하십시오.
    사용 가능한 시간의 양을 고려하여 자료를 구성하도록 준비하십시오. 주제의 범위를 좁히십시오. 프레젠테이션을 명확하게 부분으로 나누십시오. 논리적으로 진행하십시오. 처음부터 끝까지 요점을 유지하십시오. 요약, 주요 단계의 반복, 논리적 결론으로 프레젠테이션을 끝맺음 하십시오.
    청중이 시종일관 집중할 수 있도록 하십시오. 예를 들어, 반드시 데이터는 명확하고 정보는 관련이 있도록 하십시오. 상세 정보와 어휘의 수준이 청중에 적합하도록 유지하십시오. 주요 요점과 단계를 뒷받침 하기 위해 시각적 요소를 사용하십시오. 청중의 욕구에 주의를 기울이십시오. 그러면 청중이 이해하는 데 도움이 될 것입니다.
  • <number>
    소개에서 청중과 주제의 관련성을 전달하십시오. 프레젠테이션의 간략한 시연을 제공하고 이 프레젠테이션이 청중에게 얼마나 중요한지를 입증하십시오. 어휘, 예제, 설명을 선택할 때는 청중의 관심사와 전문가적 지식 수준을 고려하십시오. 주제가 청중에게 중요하다는 점을 강조하면 청중의 주의를 끄는 데 도움을 줍니다.
  • <number>
    만약 요점, 단계, 주요 아이디어가 여러 개 있으면 여러 장의 슬라이드를 이용하십시오. 청중이 새로운 아이디어를 이해하고, 수행 과정을 배우거나 친숙한 개념에 대해 좀 더 깊이 있게 받아들이는 지를 결정하십시오. 적절한 설명으로 각 요점을 뒷받침하십시오. 책자, 디스크, 전자 메일 또는 인터넷의 기술 지원 데이터를 이용해서 프레젠테이션을 보완하십시오. 청중과 의사 소통을 할 수 있도록 각 각의 요점을 적절히 개발하십시오.
  • <number>
    청중과 프레젠테이션 모두에게 최선이 될 끝맺음을 결정하십시오. 옵션의 제공, 전략의 추천, 계획의 제안, 목표 설정 등의 요약으로 끝맺으십시오. 프레젠테이션을 하는 동안 당신의 요점을 끝까지 유지하면 당신의 목적을 이룰 수 있을 것입니다.
  • The Java(TM) Language - An Overview

    1. 1. The JavaTM Language - An Overview 2000. 3. 13. Kwang Shin Oh Dept. of Research & Development Copyright 2000 © Kwang Shin Oh
    2. 2. 2JavaTM Overview ©2000KwangShinOh Http:// Introduction  Java Programming language  designed to solve a number of problems in modern programming practice  started as a part of a larger project to develop advanced software for consumer electronics  to devices are small, reliable, portable, distributed, real-time embedded systems
    3. 3. 3JavaTM Overview ©2000KwangShinOh Http:// Java  Java is a simple, object-oriented, distributed, interpreted, robust, secure, architecture neutral, portable, high- performance, multithreaded, and dynamic language.
    4. 4. 4JavaTM Overview ©2000KwangShinOh Http:// Java – Simple  without a lot of esoteric training and which leveraged today’s standard practice  designed as closely to C++ as possible in order to make the system more comprehensible  omits many rarely used, poorly understood, confusing features of C++
    5. 5. 5JavaTM Overview ©2000KwangShinOh Http:// Java – Simple  omitted features  operator overloading(although the Java language does have method overloading)  multiple inheritance  extensive automatic coercions  added auto garbage collection  simplifying the task of Java Programming  making the system somewhat more complicated
    6. 6. 6JavaTM Overview ©2000KwangShinOh Http:// Java – Simple  complexity in many C and C++ applications  storage management : the allocation and freeing of memory  automatic garbage collection benefits  makes the programming task easier  dramatically cuts down on bugs
    7. 7. 7JavaTM Overview ©2000KwangShinOh Http:// Java – Simple  small  enable the construction of software that can run stand-alone in small machines  the size of the basic interpreter and class support  about 40K bytes  basic standard libraries and thread support  additional 175K bytes
    8. 8. 8JavaTM Overview ©2000KwangShinOh Http:// Java – Object Oriented  Object Oriented design  technique that focuses design on the data(=objects) and on the interfaces to it  OO design is very powerful  facilitates the clean definition of interface  makes it possible to provide reusable software
    9. 9. 9JavaTM Overview ©2000KwangShinOh Http:// Java – Object Oriented  analogy with carpentry  “object-oriented” carpenter  mostly concerned with the chair he was building  secondarily with the tools used to make it  “non-object-oriented” carpenter  think primarily of his tools  mechanism for defining how modules “plug and play”
    10. 10. 10JavaTM Overview ©2000KwangShinOh Http:// Java – Distributed  extensive library of routines  coping easily with TCP/IP protocols like HTTP and FTP  open and access objects across the net via URLs  same when accessing a local file system
    11. 11. 11JavaTM Overview ©2000KwangShinOh Http:// Java – Robust  must be reliable in a variety of ways  a lot of emphasis  early checking for possible problems  later dynamic(runtime) checking  eliminating situations that are error prone  advantages of a strongly typed language(like C++)  allows extensive compile-time checking so bugs can be found early
    12. 12. 12JavaTM Overview ©2000KwangShinOh Http:// Java – Robust  C++ inherits a number of loopholes in compile-time checking from C  relatively lax(particularly method / procedure declarations)  in Java  require declarations and do not support C-style implicit declarations
    13. 13. 13JavaTM Overview ©2000KwangShinOh Http:// Java – Robust  single biggest difference between Java and C/C++  java has a pointer model that eliminates the possibility of overwriting memory and corrupting data  not possible to turn an arbitrary integer into a pointer by casting  you don’t have to worry about freeing or corrupting memory
    14. 14. 14JavaTM Overview ©2000KwangShinOh Http:// Java – Secure  java enables the construction of virus-free, tamper-free systems  authentication technique are based on public-key encryption  changes to the semantics of pointers make it impossible for applications  to forge access to data structures  to access private data in objects that they do have access to  closes the door on most activities of viruses
    15. 15. 15JavaTM Overview ©2000KwangShinOh Http:// Java – Architecture Neutral  designed to support applications on networks  variety of systems with a variety of CPU and operating system architectures  to enable a Java application to execute anywhere on the network  the compiler generates an architecture neutral object file format  the compiled code is executable on many processors, given the presence of the Java runtime system
    16. 16. 16JavaTM Overview ©2000KwangShinOh Http:// Java – Architecture Neutral  useful not only for networks but also for single system software distribution  makes the production of software that runs on all platforms  Java compiler generating bytecode instructions  easy to interpret on any machine  easily translated into native machine code on the fly
    17. 17. 17JavaTM Overview ©2000KwangShinOh Http:// Java – Portable  being architecture neutral is a big chunk of being portable  but there’s more to it than that  unlike C and C++, there are no “implementation dependent” aspects of the specification  sizes of the primitive data types are specified, as is the behavior of arithmetic on them(examples are int, float)
    18. 18. 18JavaTM Overview ©2000KwangShinOh Http:// Java – Interpreted  Java interpreter  execute Java bytecodes directly on any machine to which the interpreter has been ported  linking is a more incremental and lightweight process  so, the development process can be much more rapid and exploratory
    19. 19. 19JavaTM Overview ©2000KwangShinOh Http:// Java – High Performance  bytecode format was designed with generating machine codes in mind  so, the actual process of generating machine code is generally simple  Reasonably good code is produced  does automatic register allocation and the compiler does some optimization when it produces the bytecodes
    20. 20. 20JavaTM Overview ©2000KwangShinOh Http:// Java – High Performance  in interpreted code  about 300,00 method calls per second  on an Sun Microsystems SPARCStation 10  performance of bytecodes converted to machine code  almost indistinguishable from native C or C++
    21. 21. 21JavaTM Overview ©2000KwangShinOh Http:// Java – Multithreaded  there are many things going on at the same time in the world around us  multithreading  a way of building applications with multiple threads  Java has a sophisticated set of synchronization primitives that are based on the widely used monitor and condition variable paradigm that was introduced by C.A.R.Hoare
    22. 22. 22JavaTM Overview ©2000KwangShinOh Http:// Java – Dynamic  In a number of ways, Java is a more dynamic language than C or C++  for example, one major problem with using C++ in a production environment is a side-effect of the way that code is always implemented  company A  produces a class library(a library of plug and play components)
    23. 23. 23JavaTM Overview ©2000KwangShinOh Http:// Java – Dynamic  company B  buys it and uses it tin their product  company A  changes its library and distributes a new release  company B  will almost certainly have to recompile and redistribute their own software  problems can result when the end user gets A and B’s software independently (say A is an OS vendor and B is an application vendor)
    24. 24. 24JavaTM Overview ©2000KwangShinOh Http:// Java – Dynamic  A distributes an upgrade to its libraries  then all of the software from B will break  it is possible to avoid this problem in C++, but  it is extraordinarily difficult  it effectively means not using any of the language’s OO features directly
    25. 25. 25JavaTM Overview ©2000KwangShinOh Http:// Java – Dynamic  by making these interconnections between modules later  Java completely avoids these problems  makes the use of the object-oriented paradigm much more straightforward  libraries can freely add new methods and instance variables without any effect on their clients
    26. 26. 26JavaTM Overview ©2000KwangShinOh Http:// Java – Dynamic  Java uses interfaces  a concept borrowed from Objective C which is similar to a class  simply a specification of a set of methods that an object responds to  not include any instance variables or implementations  can be multiply-inherited(unlike classes) and they can be used in a more flexible way than the usual rigid class inheritance structure
    27. 27. 27JavaTM Overview ©2000KwangShinOh Http:// Java – Dynamic  classes have a runtime representation  there is a class named Class, instances of which contain runtime class definitions  in a C or C++ program  have a pointer to an object  don’t know that type of object it is  there is no way to find out
    28. 28. 28JavaTM Overview ©2000KwangShinOh Http:// Java – Dynamic  in Java  finding out based on the runtime type information is straightforward  because casts are checked at both compile-time and runtime  trust a cast in Java on the other hand in C and C++  compiler just trusts that you’re doing the right thing
    29. 29. 29JavaTM Overview ©2000KwangShinOh Http:// Java – Dynamic  possible to look up the definition of a class given a string containing its name  this means that you can compute a data type name and have it easily dynamically-linked into the running system
    30. 30. 30JavaTM Overview ©2000KwangShinOh Http:// Summary  The Java language provides a powerful addition to the tools that programmers have at their disposal  Java makes programming easier  it is object-oriented  has automatic garbage collection  compiled Java code is architecture- neutral  Java applications are ideal for a diverse environment like the Internet
    31. 31. 31JavaTM Overview ©2000KwangShinOh Http:// Reference  Sun Microsystems  The JAVATM Language:An Overview