Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Understanding Java for beginners

Understanding Java for beginners

Osman Ungur

October 08, 2016
Tweet

More Decks by Osman Ungur

Other Decks in Technology

Transcript

  1. Who i am? • software developmer with system-administration background over

    10 years • mostly writes Java and PHP • also working about infrastructure design, system automation, deployment and monitoring • obsessed about clean, well structured, maintainable and scalable architectures. • loves open source github.com/o
  2. My career path • in 2002, i started to learn

    fundamentals of Linux network and security. After that, for years i sold and managed dedicated servers and shared web hosting • after the Linux administration story, in 2005 dived into PHP and learned principles of object-oriented-programming • in 2010, i'd started a company which is uses Java, Spring Framework and SOA architecture. Ported thousands of line PHP code to Java and experienced with very large traffic. Slowly i'd embraced Java, NoSQL, RESTful and micro-services architectures • Since August 2015, i'm working as a freelance consultant, trainer and developer. I'm an active contributor and author of open-source projects.
  3. Java Platform • general-purpose computer programming language • multi-thread concurrent

    • object-oriented (class-based) • compiled • static, strong, safe, error free
  4. there were five primary goals in the creation of the

    Java language: • it must be "simple, object-oriented, and familiar". • it must be "robust and secure". • it must be "architecture-neutral and portable". • it must execute with "high performance". • it must be "interpreted, threaded, and dynamic".
  5. • it is intended to let application developers "write once,

    run anywhere" (WORA) • compiled Java code can run on all platforms that support Java without the need for recompilation • Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of computer architecture
  6. • java syntax borrows heavily from C and C++, but

    object-oriented features are modeled after Smalltalk and Objective-C. • several languages have been designed to run natively on the JVM, including Kotlin, Scala, Clojure and Groovy.
  7. JVM (Java Virtual Machine) • "virtual machine" that executes Java

    bytecode programs • garbage collection • optimizations (compile time and run time)
  8. JIT (Just in time) • compile byte code to native

    code • compile as rules of optimization • at execution / installation
  9. Hotspot • adaptive optimization in runtime (profiling) • method inlining

    • dynamic deoptimization • dead code branchs elimination
  10. Popularity • java is used in a wide variety of

    computing platforms • from embedded devices and mobile phones to enterprise servers and supercomputers
  11. • microservices • restful applications • big data technologies •

    embedded applications • android apps • integrated development enviroments
  12. • financial services • trading engines • online banking •

    telecommunication • e-commerce • portals