SlideShare a Scribd company logo
1 of 15
java
Andrejs Oliņš
6.10.2016
Par lektoru
• LU datorzinātņu maģistrs
• 12 gadu pieredze programmatūras izstrādē
• Progmeistars pasniedzējs
• StartIT satura idejas autors
Javas vēsture
• Sun Licenzēta valoda ar ierobežojumiem
• JCP, JSR un atvērts kods
• Oracle pārpērk 2008. gadā
Svarīgie jaunumi
• 1.1 – reflection, JDBC, RMI
• 1.2 – Collections, Swing
• 1.3 – JPDA
• 1.4 – JAXP, NIO, Logging, assertions
• 5.0 – viss jauns. Vispār salauza valodu lauskās.
• 6.0 – JAX-WS, JAXB, Compiler API
• 7.0 – JavaFX
Java 8
• Lambda
• Implementācijas interface-tipos
• Plūsmu atbalsts java.util.stream – map, filter, reduce
• Drošība
• Jauna laika un datumu bibliotēka java.time
• PermGen atmiņas apgabala izņemšana
Runnable task1 = new Runnable(){
@Override
public void run(){
log("Task #1 is running");
}
};
new Thread(task1).start();
new Thread(() -> { log("Task #2"); }).start();
OOP
• interface
• abstract
• implements
• extends
• diamond inheritance
OOP
public interface Duckable extends Flyer, Swimmer
public abstract class Aves extends Chordata
implements Wingable, Otherable
public class AnasPlatyrhynchos extends Aves
implements Duckable, Edible, Whateverable
Sabiedrības pienesums
• Liels izstrādātāju skaits
• Liels bibliotēku skaits
• Atkalizmantošana
Javas ekosistēma
• JVM valodas
• Android
• Apache fonds – ant,maven,activeMQ,camel,cassandra,commons,hadoop,jMeter,log4j,spark,tomcat,zooKeeper un citi iekš projects.apache.org
• Eclipse – jetty, hudson un citi iekš projects.eclipse.org
• Spring.io
• PlayFramework.com
• akka.io
Rūpnieciskā ražošana
• Atkalizmantošana
• Design patterns, GoF
• Ziņojumu apmaiņa – ReST, SOAP, RMI, MQ
• Darbs ar DB (ORM) – Hibernate, iBatis, LiquiBase
• Context, Dependency injection
• Testēšana – jUnit, Selenium, Mockito
• TDD, BDD
Konvejers
• VCS – SVN, git
• Continuous integration – Jenkins, CircleCI, Go, TeamCity
• Continuous deployment
• Testi – unit
• Testi – Integracija
• Testi – UI
• Testi - veiktspēja
Kur lietot
• Visur
• Back-end
• Front-end
• Middleware
• CI/CD
• map/reduce
• Big data
Ierobežojumi
• CPU lietošana
• Atmiņas daudzums
• Pārnesamība
• Dzīvību apdraudoša vai uzturoša programmatūra
it is not developed or intended for use in any inherently
dangerous applications, including applications that may create a
risk of personal injury.
• Microskaitļotāji
Salīdzinājumā ar citām valodām
• Otrais lielākais izstrādātāju skaits uz JavaScripta
• Labs kods lēnāks par C, C++
• Slikts kods ātrāks par C, C++
• Tipizēta valoda
• Liekvārdīgs kods
• REPL trūkums
Jautājumi
• Kādi freimvorki jāmācās?
• Spring
• Kas ir slikts Javā?
• Darbs ar laiku, liekvardība
• Vai Java nomirs?
• Protams
• Kādā valodā pats programmē?
• Scala, python
• Kas ir galvenais, rakstot Javā?
• Testi
• Ko iemācījies studējot?
• Draugus, guglēt, formulēt domas
• Vai ir jāturpina studēt?
• Skat. iepriekšējo jautājumu
• Par ko visvairāk maksā?
• Big data map-reduce in cloud
• Kas patīk darbā?
• Labs sadalījums moduļos
• Kas nepatīk darba?
• Atbilde PASS/FAIL ilgāka par 2s

More Related Content

Featured

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationErica Santiago
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellSaba Software
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming LanguageSimplilearn
 

Featured (20)

How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 
Barbie - Brand Strategy Presentation
Barbie - Brand Strategy PresentationBarbie - Brand Strategy Presentation
Barbie - Brand Strategy Presentation
 
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them wellGood Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
Good Stuff Happens in 1:1 Meetings: Why you need them and how to do them well
 
Introduction to C Programming Language
Introduction to C Programming LanguageIntroduction to C Programming Language
Introduction to C Programming Language
 

Java RTU

  • 2. Par lektoru • LU datorzinātņu maģistrs • 12 gadu pieredze programmatūras izstrādē • Progmeistars pasniedzējs • StartIT satura idejas autors
  • 3. Javas vēsture • Sun Licenzēta valoda ar ierobežojumiem • JCP, JSR un atvērts kods • Oracle pārpērk 2008. gadā
  • 4. Svarīgie jaunumi • 1.1 – reflection, JDBC, RMI • 1.2 – Collections, Swing • 1.3 – JPDA • 1.4 – JAXP, NIO, Logging, assertions • 5.0 – viss jauns. Vispār salauza valodu lauskās. • 6.0 – JAX-WS, JAXB, Compiler API • 7.0 – JavaFX
  • 5. Java 8 • Lambda • Implementācijas interface-tipos • Plūsmu atbalsts java.util.stream – map, filter, reduce • Drošība • Jauna laika un datumu bibliotēka java.time • PermGen atmiņas apgabala izņemšana Runnable task1 = new Runnable(){ @Override public void run(){ log("Task #1 is running"); } }; new Thread(task1).start(); new Thread(() -> { log("Task #2"); }).start();
  • 6. OOP • interface • abstract • implements • extends • diamond inheritance
  • 7. OOP public interface Duckable extends Flyer, Swimmer public abstract class Aves extends Chordata implements Wingable, Otherable public class AnasPlatyrhynchos extends Aves implements Duckable, Edible, Whateverable
  • 8. Sabiedrības pienesums • Liels izstrādātāju skaits • Liels bibliotēku skaits • Atkalizmantošana
  • 9. Javas ekosistēma • JVM valodas • Android • Apache fonds – ant,maven,activeMQ,camel,cassandra,commons,hadoop,jMeter,log4j,spark,tomcat,zooKeeper un citi iekš projects.apache.org • Eclipse – jetty, hudson un citi iekš projects.eclipse.org • Spring.io • PlayFramework.com • akka.io
  • 10. Rūpnieciskā ražošana • Atkalizmantošana • Design patterns, GoF • Ziņojumu apmaiņa – ReST, SOAP, RMI, MQ • Darbs ar DB (ORM) – Hibernate, iBatis, LiquiBase • Context, Dependency injection • Testēšana – jUnit, Selenium, Mockito • TDD, BDD
  • 11. Konvejers • VCS – SVN, git • Continuous integration – Jenkins, CircleCI, Go, TeamCity • Continuous deployment • Testi – unit • Testi – Integracija • Testi – UI • Testi - veiktspēja
  • 12. Kur lietot • Visur • Back-end • Front-end • Middleware • CI/CD • map/reduce • Big data
  • 13. Ierobežojumi • CPU lietošana • Atmiņas daudzums • Pārnesamība • Dzīvību apdraudoša vai uzturoša programmatūra it is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. • Microskaitļotāji
  • 14. Salīdzinājumā ar citām valodām • Otrais lielākais izstrādātāju skaits uz JavaScripta • Labs kods lēnāks par C, C++ • Slikts kods ātrāks par C, C++ • Tipizēta valoda • Liekvārdīgs kods • REPL trūkums
  • 15. Jautājumi • Kādi freimvorki jāmācās? • Spring • Kas ir slikts Javā? • Darbs ar laiku, liekvardība • Vai Java nomirs? • Protams • Kādā valodā pats programmē? • Scala, python • Kas ir galvenais, rakstot Javā? • Testi • Ko iemācījies studējot? • Draugus, guglēt, formulēt domas • Vai ir jāturpina studēt? • Skat. iepriekšējo jautājumu • Par ko visvairāk maksā? • Big data map-reduce in cloud • Kas patīk darbā? • Labs sadalījums moduļos • Kas nepatīk darba? • Atbilde PASS/FAIL ilgāka par 2s

Editor's Notes

  1. Kāpēc java? Viena no valodām, kas jau kopš 90. gadu beigām ir brīvi pieejama. Java community process , java spec request 2006 - open sourced
  2. J2SE, J2EE, JPDA - Java Platform Debugger Architecture  5.0 – Generics, enums, annotations, autoboxing, for each, varargs, Compiler API – allows to compile with code 7.0 – 5 gadi starpā
  3. Permgen traucē bieži mainīt klases izstrādes laikā
  4. Kāpēc java? Viena no valodām, kas jau kopš 90. gadu beigām ir brīvi pieejama. Valoda, kas atbalsta OOP
  5. Valoda, kas atbalsta OOP
  6. Kāpēc Java ir pieprasīta? Javas pirmsākumos izdevās izveidot lielu izstrādātāju kopienu – 1997.gadā 500k, 10k piedalās JavaOne konferencē. Vēlāk izdevās saglabāt šo kopienu, tā sāka ražot paplašinājumus tieši javā, un rekursija. Rūpniecībā ir svarīgi samazināt laiku, līdz produkts ir gatavs. Tam arī savu roku pieliek šī rekursija.
  7. Scala, clojure, un vairāk kā 9000 citu valodu visi citi izgudroti divriteņi ir atrodami starp ASF projektiem. Jenkins – 100k gadā – 400 vakances Hadoop dev – 100k gadā – 40 vakances Spark dev – 100k gadā – 80 vakances Spring – de facto standarts lielo aplikāciju uzbūvē 100K+ - 150 vakances Play – otra alternatīva ātro web-app uzbūvē 100k+ - 20 vakances Akka.io – 100k+ - 30 vakances
  8. Write once- use everywhere