Michael Safyan

Java programming

Java programming language

High level, bytecode compiled, object-oriented

Java is a mature, powerful, industrial-grade, and extremeliy popular programming language with a rich, extensive, and well-written standard library as well as a plethora of opensource libraries for additional, readily reusable functionality. Java may be found in everything from native phone applications to server software running in the Cloud.

  • Commonly used for
    • Android applications
    • servers
    • commandline applications
    • web applications (server-side logic)
    • data processing pipelines
    • desktop GUIs
    • web crawling
    • database interoperation / querying
    • others
  • Rarely used for
    • web app UIs (possible with GWT, but not particularly common or recommended)
    • iOS apps (parts can be written in Java by using j2objc, but Obj-C or Swift is preferred/needed for iOS apps)
    • OS kernels (infeasible on typical hardware or without significant, non-standard extensions/modifications to the language)
    • drivers
    • other systems software
  • Execution and distribution
    • bytecode compiled; ordinarily, code is translated to platform-independent byte code, which is distributed to all target CPU architectures; this bytecode is then just-in-time (JIT) or ahead-of-time (AOT) compiled to native instructions for the given target architecture such that there may be a mix of code that is executed directly by the CPU and bytecode that is executed indirectly by a program called an "interpreter" or "virtual machine"
  • Memory management
    • automatic (garbage collected)



My statements are my own and do not necessarily reflect the opinions of Google Inc.