Details

Practical Java Programming for IoT, AI, and Blockchain


Practical Java Programming for IoT, AI, and Blockchain


1. Aufl.

von: Perry Xiao

25,99 €

Verlag: Wiley
Format: PDF
Veröffentl.: 02.07.2019
ISBN/EAN: 9781119560005
Sprache: englisch
Anzahl Seiten: 480

DRM-geschütztes eBook, Sie benötigen z.B. Adobe Digital Editions und eine Adobe ID zum Lesen.

Beschreibungen

<p><b>Learn practical uses for some of the hottest tech applications trending among technology professionals</b><b> </b></p> <p>We are living in an era of digital revolution. On the horizon, many emerging digital technologies are being developed at a breathtaking speed. Whether we like it or not, whether we are ready or not, digital technologies are going to penetrate more and more, deeper and deeper, into every aspect of our lives. This is going to fundamentally change how we live, how we work, and how we socialize.</p> <p>Java, as a modern high-level programming language, is an excellent tool for helping us to learn these digital technologies, as well as to develop digital applications, such as IoT, AI, Cybersecurity, Blockchain and more. <i>Practical Java Programming</i> uses Java as a tool to help you learn these new digital technologies and to be better prepared for the future changes.</p> <ul> <li>Gives you a brief overview for getting started with Java Programming</li> <li>Dives into how you can apply your new knowledge to some of the biggest trending applications today</li> <li>Helps you understand how to program Java to interact with operating systems, networking, and mobile applications</li> <li>Shows you how Java can be used in trending tech applications such as IoT (Internet of Things), AI (Artificial Intelligence), Cybersecurity, and Blockchain</li> </ul> <p>Get ready to find out firsthand how Java can be used for connected home devices, healthcare, the cloud, and all the hottest tech applications. </p>
<p>Preface xix</p> <p>Introduction xxi</p> <p><b>Part I 1<br /><br />Chapter 1 Introduction to Java 3</b></p> <p>1.1 What is Java? 3</p> <p>1.2 Versions of Java 5</p> <p>1.3 Java Architecture 7</p> <p>1.4 Editions of Java 8</p> <p>1.5 The Java Spring Framework 9</p> <p>1.6 Advantages and Disadvantages of Java 10</p> <p>1.6.1 Advantages 10</p> <p>1.6.2 Disadvantages 11</p> <p>1.7 Java Certification 11</p> <p>1.8 Summary 12</p> <p>1.9 Chapter Review Questions 12</p> <p><b>Chapter 2 Getting Started with Java Programming 13</b></p> <p>2.1 Downloading and Installing Java 13</p> <p>2.2 Java IDEs 17</p> <p>2.3 Java Hello World Program 20</p> <p>2.4 Java Online Compilers 25</p> <p>2.5 Java Online Code Converters 31</p> <p>2.6 Java Free Online Courses and Tutorials 31</p> <p>2.7 Java Version Control 36</p> <p>2.8 Summary 37</p> <p>2.9 Chapter Review Questions 38</p> <p><b>Part II 39 <br /><br />Chapter 3 Basic Java Programming 41</b></p> <p>3.1 Introduction 42</p> <p>3.2 Variables 42</p> <p>3.2.1 Constants 44</p> <p>3.2.2 The String and StringBuffer Types 45</p> <p>3.2.3 The VAR Variable Type 46</p> <p>3.3 Operators 47</p> <p>3.4 Reserved Words 48</p> <p>3.5 Input and Output 48</p> <p>3.6 Loops and Selections 51</p> <p>3.7 Arrays, Matrices, and ArrayLists 54</p> <p>3.8 Reading and Writing Files 58</p> <p>3.9 Methods 60</p> <p>3.10 Object-Oriented Programming 62</p> <p>3.10.1 Classes and Objects 62</p> <p>3.10.2 Instantiation 63</p> <p>3.10.3 Encapsulation 63</p> <p>3.10.4 Inheritance 63</p> <p>3.10.5 Overriding and Overloading 63</p> <p>3.10.6 Polymorphism 63</p> <p>3.10.7 Object Accessibility 64</p> <p>3.10.8 Anonymous Inner Classes 64</p> <p>3.11 Multithreading 68</p> <p>3.11.1 The Life Cycle of a Thread 73</p> <p>3.11.2 Thread Priorities 76</p> <p>3.11.3 Thread Scheduling 76</p> <p>3.11.4 Thread Synchronization 77</p> <p>3.12 Date, Time, Timer, and Sleep Methods 78</p> <p>3.13 Executing System Commands 83</p> <p>3.14 Packages and Programming on a Large Scale 86</p> <p>3.15 Software Engineering 88</p> <p>3.15.1 The Software Development Cycle 89</p> <p>3.15.2 Indentation 90</p> <p>3.15.3 Comments 91</p> <p>3.15.4 Naming Conventions 92</p> <p>3.16 Deploying Java Applications 93</p> <p>3.16.1 Using a Windows Batch File 93</p> <p>3.16.2 Using an Executable JAR File 94</p> <p>3.16.3 Using Microsoft Visual Studio 95</p> <p>3.16.4 Java Application Installations 96</p> <p>3.17 Summary 98</p> <p>3.18 Chapter Review Questions 98</p> <p><b>Chapter 4 Java Programming for Windows Applications 99</b></p> <p>4.1 Introduction 99</p> <p>4.2 Java Swing Applications 100</p> <p>4.2.1 For More Information 105</p> <p>4.3 JavaFX Applications 105</p> <p>4.3.1 JavaFX Window 106</p> <p>4.3.2 Creating a Label and Button in JavaFX 108</p> <p>4.3.3 JavaFX Charts 110</p> <p>4.3.4 Handling Logins in JavaFX 112</p> <p>4.3.5 Creating an Image Viewer in JavaFX 115</p> <p>4.3.6 Creating a JavaFX Web Viewer 117</p> <p>4.3.7 Creating a Menu in JavaFX 118</p> <p>4.3.8 Creating a JavaFX File Chooser 120</p> <p>4.3.9 JavaFX Tutorials 122</p> <p>4.4 Deploying JavaFX Applications 125</p> <p>4.5 Summary 127</p> <p>4.6 Chapter Review Questions 127</p> <p><b>Chapter 5 Java Programming for Networking Applications 129</b></p> <p>5.1 Introduction 129</p> <p>5.1.1 Local Area Network and Wide Area Network 132</p> <p>5.1.2 The Cisco Three-Tier Enterprise Network Architecture 132</p> <p>5.1.3 Key Network Components 133</p> <p>5.1.4 Traditional Networks vs. Software-Defined Networking 134</p> <p>5.2 Java Network Information Programming 136</p> <p>5.3 Java Socket Programming 143</p> <p>5.3.1 Java UDP Client-Server Programming 143</p> <p>5.3.2 Java TCP Client-Server Programming 146</p> <p>5.3.3 Java Multithreaded EchoServer Programming 148</p> <p>5.4 Java HTTP Programming 151</p> <p>5.4.1 A Java HTTP/HTTPS Client 151</p> <p>5.4.2 A Java HTTP Server 158</p> <p>5.4.3 Java Multithreaded HTTP Server 159</p> <p>5.5 Java Email SMTP Programming 164</p> <p>5.6 Java RMI Client-Server Programming 168</p> <p>5.7 Getting Started with SDN 172</p> <p>5.7.1 Getting Started with OpenFlow 172</p> <p>5.7.2 Getting Started with Floodlight 181</p> <p>5.7.3 Getting Started with OpenDaylight 181</p> <p>5.8 Java Network Programming Resources 181</p> <p>5.9 Summary 182</p> <p>5.10 Chapter Review Questions 182</p> <p><b>Chapter 6 Java Programming for Mobile Applications 183</b></p> <p>6.1 Introduction 183</p> <p>6.2 Android Studio 184</p> <p>6.3 The Hello World App 186</p> <p>6.4 The Button and TextView Apps 192</p> <p>6.5 The Sensor App 196</p> <p>6.6 Deploying Android Apps 200</p> <p>6.7 The Activity Life Cycle of an Android App 202</p> <p>6.8 MIT App Inventor 204</p> <p>Speech Recognition App 204</p> <p>Translation App 208</p> <p>6.9 5G 213</p> <p>6.9.1 Millimeter Waves 217</p> <p>6.9.2 Small Cells 217</p> <p>6.9.3 Massive MIMO 217</p> <p>6.9.4 Beamforming 218</p> <p>6.9.5 Full Duplex 218</p> <p>6.9.6 Future 6G and 7G 218</p> <p>6.10 Summary 219</p> <p>6.11 Chapter Review Questions 219</p> <p><b>Part III 221</b></p> <p><b>Chapter 7 Java Programming for IoT Applications 223</b></p> <p>7.1 What is the Internet of Things? 223</p> <p>7.2 IoT Communication Protocols 227</p> <p>7.2.1 MQTT 228</p> <p>7.2.2 CoAP 229</p> <p>7.2.3 XMPP 229</p> <p>7.2.4 SOAP 229</p> <p>7.2.5 REST 229</p> <p>7.3 IoT Platforms 230</p> <p>7.4 IoT Security 230</p> <p>7.5 Why Java? 230</p> <p>7.6 Java IoT with Raspberry Pi 231</p> <p>7.6.1 Raspberry Pi Setup 232</p> <p>7.6.2 Java GPIO Examples 237</p> <p>7.6.3 Running Python Programs from Java 244</p> <p>7.6.4 Java PWM Example 246</p> <p>7.6.5 Java PIR and LED Example 248</p> <p>7.6.6 Java I2C Example 251</p> <p>7.6.7 Java ADC Examples 255</p> <p>7.6.8 Java Digital Sensor Examples 259</p> <p>7.6.9 Java MQTT Example 263</p> <p>7.6.10 Java REST Example 266</p> <p>7.7 An Oracle Java ME Embedded Client 270</p> <p>7.8 Other Java IoT Uses 271</p> <p>7.8.1 Eclipse Open IoT Stack for Java 271</p> <p>7.8.2 IBM Watson IoT for Java 271</p> <p>7.8.3 Amazon IoT for Java 272</p> <p>7.8.4 Microsoft Azure IoT for Java 272</p> <p>7.9 Summary 273</p> <p>7.10 Chapter Review Questions 273</p> <p><b>Chapter 8 Java Programming for AI Applications 275</b></p> <p>8.1 What is Artificial Intelligence? 275</p> <p>8.1.1 History of AI 277</p> <p>8.1.2 Cloud AI vs. Edge AI 279</p> <p>8.2 Neural Networks 280</p> <p>8.2.1 The Perceptron 280</p> <p>8.2.2 MultiLayered Perceptron/Backpropagation/Feedforward 284</p> <p>8.3 Machine Learning 286</p> <p>8.4 Deep Learning 288</p> <p>8.5 Java AI Libraries 292</p> <p>8.6 Java Examples for Neural Networks 293</p> <p>8.6.1 Java Perceptron Example 293</p> <p>8.6.2 Java Neural Network Backpropagation Example 296</p> <p>8.7 Java Examples for Machine Learning 300</p> <p>8.8 Java Examples for Deep Learning 303</p> <p>8.9 TensorFlow for Java 309</p> <p>8.10 AI Resources 313</p> <p>8.11 Summary 313</p> <p>8.12 Chapter Review Questions 314</p> <p><b>Chapter 9 Java Programming for Cybersecurity Applications 315</b></p> <p>9.1 What is Cybersecurity? 315</p> <p>9.2 What is Encryption? 316</p> <p>9.2.1 Private Key Encryption 317</p> <p>9.2.2 Public Key Encryption 319</p> <p>9.3 Hash Functions and Message Digests 321</p> <p>9.4 Digital Signatures 323</p> <p>9.5 Digital Certificates 325</p> <p>9.6 Case Study 1: Secure Email 327</p> <p>9.7 Case Study 2: Secure Web 328</p> <p>9.8 Java Private Key Encryption Example 329</p> <p>9.9 Java Public Key Encryption Example 330</p> <p>9.10 Java Digital Signature/Message Digest Example 332</p> <p>9.11 Java Digital Certificate Example 338</p> <p>9.12 Other Java Examples 342</p> <p>9.13 Summary 345</p> <p>9.14 Chapter Review Questions 346</p> <p><b>Chapter 10 Java Programming for Blockchain Applications 347</b></p> <p>10.1 What is Blockchain? 347</p> <p>10.2 How Do You Validate a Blockchain? 349</p> <p>10.3 How Do You Mine the Blocks? 350</p> <p>10.4 How Does Blockchain Work? 350</p> <p>10.5 Uses of Blockchain 352</p> <p>10.5.1 Bitcoin 353</p> <p>10.5.2 Smart Contracts 358</p> <p>10.5.3 Healthcare 358</p> <p>10.5.4 Manufacture and Supply Chains 359</p> <p>10.5.5 Internet of Things 359</p> <p>10.5.6 Government 360</p> <p>10.6 Issues with Blockchain 360</p> <p>10.7 Java Blockchain Examples 361</p> <p>10.8 Java Blockchain Transaction Examples 367</p> <p>10.9 Java BitcoinJ Example 373</p> <p>10.9.1 The Testnet 375</p> <p>10.10 Java Web3j Examples 375</p> <p>10.11 Java EthereumJ Examples 378</p> <p>10.12 Java Ethereum Smart Contract Example 380</p> <p>10.13 Go Further: Choosing a Blockchain Platform 386</p> <p>10.14 Summary 387</p> <p>10.15 Chapter Review Questions 388</p> <p><b>Chapter 11 Java Programming for Big Data Applications 389</b></p> <p>11.1 What is Big Data? 389</p> <p>11.2 Sources of Big Data 390</p> <p>11.3 The Three Vs of Big Data 391</p> <p>11.4 Benefits of Big Data 392</p> <p>11.5 What is Hadoop? 392</p> <p>11.6 Key Components of Hadoop 393</p> <p>11.6.1 HDFS 393</p> <p>11.6.2 MapReduce 394</p> <p>11.6.3 Hadoop Common 395</p> <p>11.6.4 Hadoop YARN 395</p> <p>11.6.5 Overview of a Hadoop Cluster 395</p> <p>11.7 Implementing Hadoop on a Raspberry Pi Cluster 396</p> <p>11.7.1 Raspberry Pi Installation and Configuration 397</p> <p>11.7.2 Hadoop Installation and Configuration 397</p> <p>Prepare the Hadoop User Account and Group 398</p> <p>Configure SSH 398</p> <p>Download and Install Hadoop 398</p> <p>Configure Environment Variables 399</p> <p>Configure Hadoop 399</p> <p>Start and Stop Hadoop Services 401</p> <p>Test Hadoop 401</p> <p>Hadoop on a Web Browser 403</p> <p>11.8 Java Hadoop Example 406</p> <p>11.9 Summary 412</p> <p>11.10 Chapter Review Questions 412</p> <p><b>Appendix A Java Documentation and Archiving Tools and Online Resources 413</b></p> <p>Javadoc Tutorial 413</p> <p>JAR Tutorial 418</p> <p>Useful Java Resources 420</p> <p><b>Appendix B Apache Maven Tutorial 423</b></p> <p>Downloading Maven 423</p> <p>Creating a Maven Project 424</p> <p>Compiling and Building the Maven Project 428</p> <p>Running the Maven Project 428</p> <p><b>Appendix C Git and GitHub Tutorial 431</b></p> <p>Terms and Definitions 440</p> <p>Cheat Sheet 442</p> <p>Index 445</p>
<p><b>PERRY XIAO, P<small>H</small>D,</b> is an Associate Professor and Course Director of London South Bank University. He teaches undergraduate and postgraduate students in the areas of electronics, software programming, and computer networks. Dr. Xiao has designed and taught several modules focused on Java programming. He is also a director and cofounder of Biox Systems Ltd, a university spin-out company that designs and manufactures the AquaFlux and Epsilon Permittivity Imaging systems.
<p><b>Learn to use Java in today's many trending applications</b> <p>As the digital revolution rolls on, emerging technologies continue to develop at breakneck speed. They are fundamentally changing how we live and work, and even how we socialize. As a Java programmer, you can position yourself in the forefront of these developments, creating digital applications for IoT, AI, cybersecurity, Blockchain, and more. Dr. Perry Xiao, who has been working with Java since 1997, shows you how in this comprehensive guide. <p>After briefly reviewing how to get started with Java programming, <i>Practical Java Programming for IoT, AI, and Blockchain</i> helps you put this knowledge to work on some of the hottest emerging applications. You will learn how to program Java to interact with operating systems, networking, and mobile applications, fully supported by examples. Then you will dive into how Java can be used for connected home devices, healthcare, the cloud, and some of the hottest AI applications. You'll be introduced to Java AI libraries and follow along with practical Java deep learning and neural network examples. You'll learn how to encrypt your data using Java and protect it from hackers. Finally, you'll discover how to implement Java with smart contracts and digital currencies using blockchain, as well as how to use Java for big data applications. <p>As a modern, high-level programming language that is simple to learn and use, Java is an excellent tool for developing digital applications. <i>Practical Java Programming</i> will help you: <ul> <li>Refresh your understanding of Java basics</li> <li>Use Git and GitHub for Java version control</li> <li>Program Java to interact with operating systems, networking, and mobile applications</li> <li>Use Java with IoT (Internet of Things) and AI projects</li> <li>Encrypt data using Java with public and private keys and digital signatures</li> <li>Explore how Java is growing blockchain technologies</li> <li>Use Java for big data applications</li> </ul>

Diese Produkte könnten Sie auch interessieren:

Domain Architectures
Domain Architectures
von: Daniel J. Duffy
PDF ebook
31,99 €