Index

  • Numbers and Symbols
  • . (current directory), 24
  • ; (semicolon)
    • separating directories in Windows, 24
    • statements, 21
  • /* */ (multiple comment lines), 21
  • // (double forward slashes), comments, 21
  • : (colon), separating directories in Linux, 24
  • == (double equals sign), comparing numerical values, 48
  • { } braces, code blocks, 21
  • ? (question mark) operator, conditional assignment, 53
  • <> (angle braces), generic ArrayList class, 56
  • 1G (mobile applications), 216
  • 2G (mobile applications), 216
  • 3G (mobile applications), 216–217
  • 4G (mobile applications), 216–217
  • 5G (mobile applications)
    • beamforming, 218
    • benefits, 213–216
    • cell size, 217
    • frequency ranges, 217
    • full duplex technology, 218
    • Multiple-Input, Multiple-Output (MIMO), 217–218
    • overview, 213
    • 6G (mobile applications), 218
    • 7G (mobile applications), 218
  • A
  • Access layer (Cisco network architecture), 132–133
  • activation.jar file, 165
  • activities (Android apps), 202–204
  • activity_main.xml file, Android Studio, 188
  • ADB (Android Debug Bridge), 191–192
  • add() method, dynamic arrays, 57
  • Advanced Installer application deployment tool, 96–97
  • advantages of Java, 10
  • AES 256-bit encryption, 318
  • AI (artificial intelligence)
    • Cloud compared to Edge, 279
    • deep learning, 288–292
    • history, 277–278
    • Java libraries, 292–293
    • machine learning, 286–288
    • neural networks, 280–286
    • overview, 275–277
    • resources, 313
  • Amazon AWS. See AWS (Amazon Web Services)
  • American Standard Code for Information Interchange (ASCII), 45
  • analog-to-digital converter (ADC), Raspberry Pi examples, 255–259
  • Android app life cycle, 202–204
  • Android Debug Bridge (ADB), 191–192
  • Android developer web site, 184–185
  • Android Package Kit (APK), 200–202
  • Android SDK, 184
  • Android smartphones, 184
  • Android Studio
    • Android Debug Bridge (ADB), 191–192
    • app characteristics, defining, 190
    • Button and TextView app, 192–196
    • deploying apps, 200–202
    • HelloWorld app, 186–192
    • installation and configuration, 184–185
    • new projects, 186
    • overview, 184
    • project files, 186–188
    • projects, running, 191
    • Sensor app, 196–200
  • Android Virtual Device (AVD), 184
  • AndroidManifest.xml file, 190
  • angle braces (<>), generic ArrayList class, 56
  • anonymous inner classes
    • multithreading, 70
    • OOP (object-oriented programming), 64–67
  • Apache Maven
    • compiling andf building projects, 428
    • downloading, 423–424
    • project creation, 424–428
    • running projects, 428–429
  • APK (Android Package Kit), 200–202
  • App Inventor 2., See MIT App Inventor
  • application layer (TCP/IP), 130
  • applications, deploying
    • batch files, 93–94
    • JAR files, 94–95
    • Microsoft Visual Studio, 95–96
    • overview, 93
    • professional tools, 96–97
  • architecture, 7–8
  • archives, creating JAR files, 418–420
  • args.length, 52
  • arithmetic operators, 47
  • ArrayList class, 56
    • generic, 56
    • nongeneric, 57
  • arrays
    • declaring dynamic, 56
    • types, 54
  • artificial intelligence (AI), overview, 275–277
  • artificial neural network (ANN). See neural networks
  • ASCII (American Standard Code for Information Interchange), 45
  • assignment operators, 47–48
  • Associate certification, 11
  • asymmetric key encryption, 319
  • authentication, 316
    • key stores, 200–202
  • availability, 316
    • blockchain, 352
  • AVD (Android Virtual Device), 184
  • AWS (Amazon Web Services), 230
    • Java and, 272
  • B
  • backpropagation (AI), example code, 296–300
  • banks, big data and, 391
  • Bash shell, setting environment variables, 14–15
  • batch files, deploying applications, 93–94
  • big data
    • benefits, 392
    • characteristics, 391–392
    • Hadoop, 392–395
    • overview, 389–390
    • sources, 390–391
  • Bitcoin. See blockchain
  • bitwise operators, 47
  • blockchain
    • Bitcoin testnet, 375
    • BitcoinJ example, 373–375
    • cryptocurrency, 353–358
    • Ethereum Smart Contract example, 380–386
    • EthereumJ examples, 378–379
    • example programs, 361–367
    • government data, 360
    • healthcare data, 358
    • IoT (Internet of Things), 359–360
    • limitations, 360–361
    • manufacturing and supply chains, 359
    • mining, 350
    • operation of, 350–352
    • overview, 347–349
    • platforms, 386–387
    • smart contracts, 358
    • transaction example programs, 367–373
    • validating, 349–350
    • Web3j examples, 375–378
  • blocking state, threads, 73
  • boilerplate code, VAR variable type, 46
  • braces ({}), code blocks, 21
  • browsers. See web browsers
  • Browxy Java online compiler, 27–28
  • BufferedReader object, 50, 59–60
  • BufferedWriter object, 58–60
  • buffers, flushing, 58
  • Button and TextView app, Android Studio, 192–196
  • bytecode, 4
    • compiling, 23
  • C
  • C programming language, support, 27
  • C++ programming language, support, 27
  • CA (certificate authority), 326
  • caching, String objects, 45–46
  • Carlosag online code translator, 31–32
  • catch blocks, 50–51
  • CaveofProgramming, Java courses, 35
  • centralized version control system (CVCS), 37
  • certificate authority (CA), 326
  • certification, 11
  • Cisco three-tiered enterprise network architecture, 132–133
  • class files
    • saving, selecting directories (folders), 24
    • setting destination path, 24
  • .class files, 4
  • classes. see also objects
    • Date(), 78
    • FileReader, 59–60
    • FileWriter, 58–60
    • generating, 23
    • inetAddress, 137
    • LocalDateTime(), 79
    • NetworkInterface, 137–140
    • OOP (object-oriented programming), 62–63
    • reusable, creating, 86–88
    • Runtime.getRuntime().exec(), 83–85
    • source code filenames and, 21
    • Thread.sleep(), implementing delays, 82–83
    • timer(), 80
  • -classpath option, 24
  • ClickTeam application deployment tool, 96–97
  • Cloud AI, 279
  • Cloud block, IoT (Internet of Things), 225–226
  • cloud computing, 226
  • cmd.exe program, executing, 84–85
  • CoAP (Constrained Application Protocol), 229
  • code blocks, grouping with braces ({}), 21
  • Codecademy, Java courses, 33–34
  • code.makery, JavaFX deployment guide, 125
  • Codiva Java online compiler, 25–27
  • Collect block, IoT (Internet of Things), 225
  • colon (:), separating directories in Linux, 24
  • command-line parameters, printing, 52
  • commands
    • executing system commands, 83–85
    • Git, 442–443
    • ipconfig, 140–142, 176–177
    • javac, 24
    • javac -help, 25
    • ping, 177–178
    • ps, 177
    • setting the destination path, 24
    • setting the source path, 24
  • comment lines, 21
  • comments
    • maintenance tutorial (Javadoc), 413–418
    • software engineering, 91–92
  • Communication protocols, ioT (Internet of Things), 227–229
  • comparison operators, 47
  • CompileJava.net online compiler, 27
  • compiler, checking in Windows, 15
  • compilers, online, 25–31
  • compiling
    • batch files and, 93–94
    • bytecode, 23
    • JAR files and, 94–95
    • programs, from current directory, 88
  • compressed archives, creating JAR files, 418–420
  • conditional statements, 53
  • confidentiality, 316
  • configuring Java, 14–16
  • Connectivity block, IoT (Internet of Things), 225
  • constants, 44. See also variables
  • Constrained Application Protocol (CoAP), 229
  • Control block, IoT (Internet of Things), 225
  • control structures, 51–54
  • converters, source code, 31
  • Core layer (Cisco network architecture), 133
  • Coursera, Java courses, 32–33
  • courses and tutorials. See tutorials and courses
  • -cp option, 24
  • cryptocurrency, 353–358. See also blockchain
  • current directory (.), 24
  • CVCS (centralized version control system), 37
  • cybersecurity. See also security
    • digital certificate example, 338–342
    • digital certificates, 325–327
    • digital signatures, 323–325
    • digital signatures example, 334–335
    • encryption, 316–321
    • hash functions, 322–323
    • message-digest example, 332–334
    • message-digest algorithm (MD5), 323
    • overview, 315–316
    • private key encryption example, 329–330
    • public key encryption example, 330–332
    • resources, 342–345
  • D
  • -d option, 24
  • Date() class, 78
  • debugging, Android Studio projects, 191–192
  • decentralization (blockchain), 351
  • deep learning (AI), 278, 288–292
    • examples, 303–309
  • default gateway (networking), 133, 134
  • default package, 21
  • design, software engineering, 89–90
  • destination path, setting, 24
  • DHCP component (networking), 134
  • digital certificates, 325–327
    • example, 338–342
    • printing information, 153–154
  • digital sensors, Raspberry Pi examples, 259–263
  • digital signatures, 323–325
    • example, 334–335
  • digital wallets, Web3j examples, 375–378
  • directories, saving class files, 24
  • disadvantages of Java, 11
  • distributed/decentralized version control system (DVCS), 37
  • Distribution layer (Cisco network architecture), 133
  • DNS component (networking), 134
  • do loops, 52–54
  • documentation
    • JavaFX, 124–125
    • software engineering, 90
  • double forward slashes (//), comments, 21
  • double-spending problem, 348
  • double-type multidimensional array, declaring, 54–55
  • downloading Java, 13
  • DVCS (distributed/decentralized version control system), 37
  • dynamic arrays, declaring, 56
  • dynamic string information, 46
  • E
  • Eclipse, 17–18
    • JavaFX tutorial, 122
    • Open IoT Stack for Java, 271
  • Eclipse IoT, 230
  • e-commerce sites, big data and, 391
  • Edge AI, 279
  • editions (Java), 8
  • email, encryption example, 327–328
  • email application
    • JavaMail API, 165–167
    • SMTP, 164–165
  • embedded client example, Java ME (Micro Edition), 270
  • encapsulation, OOP, 63
  • encryption
    • email example, 327–328
    • key stores, 200–202
    • overview, 316–317
    • private key, 317–318
    • public key, 319–321
    • secure web example, 328–329
  • end of life (EOL), 6
  • Enterprise Edition (Java EE), 8
  • environment variables, 14–16
    • Hadoop configuration on Raspberry Pi, 399
  • EOL (end of life), 6
  • ephemeral ports (networking), 131
  • equals() method, 48
  • error messages, JavaFX, displaying, 114–115
  • Ethereum Smart Contract example, 380–386
  • EthereumJ, blockchain examples, 378–379
  • exception handling, 50–51
  • executable Java programs, creating, 93–97
  • Extensible Messaging and Presence Protocol (XMPP), 229
  • F
  • file chooser, JavaFX, creating, 120–122
  • filenames, source code, 21, 22
  • FileReader class, 59–60
  • FileWriter class, 58–60
  • final keyword, defining constants, 44
  • finally blocks, 50–51
  • float numbers, declaring variables, 43
  • float-type two-dimensional array, declaring, 54–55
  • Floodlight (SDN tutorial), 181
  • flowcharts, software engineering, 89–90
  • flush() method, 58
  • flushing buffers, 58
  • folders. See directories
  • for loops, 52–54
  • frameworks, Java Spring, 9–10
  • functions. See methods
  • G
  • gateway (networking), 134
  • gateway routers (networking), 133
  • GeeksforGeeks, network programming, 181
  • general AI, 276
  • GET method, HTTP programming, 154–155
  • getState() method, 73–74
  • Git, 37
    • adding files, 433–434
    • adding programs, 433
    • commands, 442–443
    • downloading, installing, and running, 431
    • removing files, 433–434
    • version control with, 433
  • GitHub, 37
    • sharing projects, 435–442
  • Google Cloud, 230
  • Google Play Store, deploying Android apps, 200–202
  • Gosling, James, 3
  • government, big data and, 391
  • GPIO (Raspberry Pi), example programs, 237–244
  • Gradle Scripts files, Android Studio, 190
  • GUI (graphical user interface), 19
    • Java Swing, 100–105
    • JavaFX, 105–126
    • overview, 99–100
  • H
  • Hadoop, 390
    • character count example, 408–410
    • clusters, 395
    • Hadoop Common, 395
    • Hadoop Distributed File System (HDFS), 393–394
    • MapReduce, 394
    • overview, 392–393
    • Raspberry Pi
      • adding nodes, 404–405
      • adding permissions, 405–406
      • cluster installation and configuration overview, 397
      • configuration, 399–400
      • downloading and installing Hadoop, 398
      • environment variables configuration, 399
      • implementing clusters, 396
      • installation and configuration, 397
      • SSH configuration, 398
      • start and stop services, 399–400
      • testing, 400–403
      • user account and group, 398
      • view on web browser, 403–404
    • student marks example, 410–412
    • word count example, 406–408
    • YARN, 395
  • Hadoop Common, 395
  • Hadoop Distributed File System (HDFS), 393–394
  • hardware, Raspberry Pi requirements, 232–234
  • hash functions, 322–323
    • online demonstration, 335
  • HDFS (Hadoop Distributed File System), 393–394
  • HelloWorld Android Studio app, 186–192
  • HelloWorld2.java, 23–24
  • HelloWorld.java, 20–23
  • history of Java, 3–4
  • hospitals, big data and, 391
  • HTTP programming
    • digital certificate information, printing, 153–154
    • GET method, 154–155
    • HTTP client program, 151–152
    • HTTP multithreaded file server program, 162–164
    • HTTP server program, 158–159
      • multithreaded, 159–162
    • HTTPS client program, 152–153
    • overview, 151
    • POST method, 155–157
    • URLs, parsing, 157–158
  • HttpsURLConnection(), 152–153
  • Hungarian notation, 92–93
  • I
  • I2C (Inter-Integrated Circuit), 251–255
  • IBM, Java language tutorial, 35–36
  • IBM Watson, 230
    • IoT for Java, 271
  • IDE (integrated development environment), 17–20
  • IDEOne Java online compiler, 30–31
  • ifconfig command, SDN programming, 176–177
  • image viewer, JavaFX, creating, 115–116
  • immutability (blockchain), 351
  • immutable types, 45
  • import keyword, package classes, 88
  • importing
    • package classes, 88
    • packages, 21
  • Industry 4.0, 226–227
  • inetAddress class, 137
  • inheritance, OOP (object-oriented programming), 63, 66–67
  • input, 48–51
  • InputStreamReader, 50
  • Install Creator 2 application deployment tool, 96–97
  • Install4J application deployment tool, 97
  • installation packages, professional deployment tools, 96–97
  • installing Java, 13
  • instantiation, OOP, 63
  • Integer.parseInt(), 50
  • integers, converting from strings, 50
  • integer-type arrays, declaring, 54
  • integrated development environment (IDE), 17–20
  • integrity, 316
  • intelligent manufacturing, 226–227
  • IntelliJ IDEA, 17–18
    • Android phone applications, 184
  • interfaces
    • OOP (object-oriented programming), 67
    • Runnable, multithreaded programming, 69–70, 73
  • Inter-Integrated Circuit (I2C), 251–255
  • internet layer (TCP/IP), 130
  • Internet of Things (IoT), overview, 223
  • IoT (Internet of Things)
    • AWS, 272
    • big data and, 391
    • blockchain and, 359–360
    • building blocks, 225
    • communication protocols, 227–229
    • Eclipse Open IoT Stack for Java, 271
    • IBM Watson and, 271
    • Java and, 230–231
    • Java ME embedded client example, 270
    • Microsoft Azure, 272–273
    • overview, 223
    • platforms, 230
    • Raspberry Pi
      • analog-to-digital converter (ADC) examples, 255–259
      • blinking LED example, 237–241
      • digital sensor examples, 259–263
      • GPIO example, 242–244
      • Inter-Integrated Circuit (I2C), 251–255
      • Morse code example, 241–242
      • MQTT example, 263–266
      • overview, 231–232
      • Pulse Width Modulation (PWM), 246–248
      • Python programs and, 244–245
      • REST example, 266–270
      • smart lighting system, 248–251
    • security, 230
    • technologies, 224–225
  • IP addresses, overview, 131
  • ipconfig command, 140–142
  • iPhones, 184
  • iterative statements, 52
  • ITU X.509 (digital certificate standard), 325
  • J
  • J2SE (Java 2 Standard Edition), 6
  • JAR files
    • creating, 418–420
    • deploying applications, 94–95
    • JavaMail email application, 165–167
  • Java 2 Standard Edition (J2SE), 6
  • Java API documentation, 35
  • Java Card, 8
  • Java Development Kit (JDK), 7
  • Java EE (Enterprise Edition), 8
  • .java files, 4
  • Java Foundations Certified Junior Associate, 11
  • Java Layout Manager, Java Swing, 105
  • Java ME (Micro Edition), 8
    • embedded client example, 270
  • Java Runtime Environment (JRE), 7
  • Java SE (Standard Edition), 8
  • Java Spring framework, 9–10
  • Java Swing, 100–105
  • Java Virtual Machine (JVM), 4–5
  • Java2S, network programming, 181
  • JavaBeans Activation Framework (JAF), JavaMail email application, 165–167
  • javac command, 24
    • options, 25
  • javac -help command, options, 25
  • Javadoc, code comments maintenance tutorial, 413–418
  • JavaFX
    • application creation process, 106–108
    • application development components, 106
    • buttons and labels, adding, 108–109
    • charts, 109–112
    • deploying applications, 125–126
    • error messages, displaying, 114–115
    • file chooser, creating, 120–122
    • image viewer, creating, 115–116
    • IntelliJ IDEA, 106
    • layout panes, 108–109
    • menus, creating, 118–120
    • message boxes, displaying, 114–115
    • overview, 105
    • user login, 112–115
    • web viewer, creating, 117–118
  • JAVA_HOME environment variable, 14
  • java.lang.* (default package), 21
  • JavaMail API
    • email application, 165–167
    • POP3 email application, 167–168
  • java.time.* package, 79
  • javax.mail.jar file, 165
  • JDK (Java Development Kit), 7
    • Android phone applications, 184
    • Raspberry Pi and, 236
  • JDoodle online compiler, 27
  • Jenkov Apps, JavaFX tutorial, 122
  • JIT (just-in-time compiler), 7
  • JRE (Java Runtime Environment), 7
    • specifying version, 24
  • just-in-time compiler (JIT), 7
  • JVM (Java Virtual Machine), 4–5
    • RMI and, 168–169
  • K
  • key stores, 200–202
  • keywords
    • public, 21
    • reserved words, 48
    • static, 21
  • L
  • LAN (local area network), 132
  • LearnJavaOnline, Java courses, 35
  • libraries
    • Java AI, 292–293
    • location of, 24
  • life cycle, Android apps, 202–204
  • link layer (TCP/IP), 131
  • Linux
    • environment variables, setting, 14–15
    • separating directories, 24
  • local area network (LAN), 132
  • LocalDateTime() class, 79
  • logical operators, 47
  • long numbers, declaring variables, 43
  • long-term support (LTS), 6
  • loops, 51–54
  • LTS (long-term support), 6
  • M
  • machine learning, 278, 286–288
    • example code, 300–303
    • TensorFlow, 309–312
  • MacOS, environment variables, setting, 14–15
  • main() method, 21
    • declaring variables outside of, 43
  • MainActivity.java, Android Studio, 188, 190–191, 194–196, 196–200
  • mainClass manifest file, 94–95
  • MAN (metropolitan area network), 132
  • manifest files, mainClass, 94–95
  • MapReduce, 394
  • massive MIMO (mobile networks), 218
  • matrixes, declaring, 54–55
  • Maven. See Apache Maven
  • MD5 (message-digest algorithm), 323
  • menus, JavaFX, creating, 118–120
  • message boxes, JavaFX, creating, 114–115
  • message digest, example, 332–334
  • Message Queuing Telemetry Transport (MQTT), 228
  • message-digest algorithm (MD5), 323
  • methods, 60–62
    • Andrdoid app life cycle, 202–204
    • flush(), 58
    • getState(), 73–74
    • main(), 21
    • new Date().getTime(), 78
    • new Date().toString(), 78
    • object variables, 45
    • overloading, 63, 65–66
    • overriding, 63
    • println(), 21
    • schedule(), 80
    • setPriority(), 76
    • System.currentTimeMillis(), 78
    • System.nanoTime(), 78
    • Thread.sleep(), 75
  • metropolitan area network (MAN), 132
  • Micro Edition (Java ME), 8
  • Microsoft Azure, 230
    • Java and, 272–273
  • Microsoft Visual Studio, deploying applications, 95–96
  • Mininet VM Images, 173–176
  • MIT App Inventor
    • Designer view, 204
    • overview, 204
    • speech recognition app, 204–208
    • translation app, 208–213
    • tutorials and courses, 213
  • modules. See methods
  • MQTT (Message Queuing Telemetry Transport), 228
    • Raspberry Pi example, 263–266
  • mtSystems C code translator, 31–32
  • multilayered perceptron (AI), 284–286
  • multiple comment lines (/* */), 21
  • Multiple-Input, Multiple-Output (MIMO), 217–218
  • multithreaded echo server program, 148–151
  • multithreaded HTTP file server program, 162–164
  • multithreaded HTTP server program, 159–162
  • multithreading
    • examples, 68–73
    • String instances, 46
  • N
  • naming conventions, software engineering, 92–93
  • narrow AI, 276
  • NetBeans, 17–19
  • network components, 133–134
  • network programming
    • overview, 136–142
    • resources, 181
  • networking devices, 132–133
  • networking protocols, TCP/IP, 129–132
  • NetworkInterface class, 137–140
  • networks, compared to software-defined networking, 134–136
  • neural networks, 277–278
    • backpropagation example, 296–300
    • multilayered perceptron, 284–286
    • overview, 280
    • perceptron, 280–284
    • perceptron examples, 293–296
  • new Date().getTime() method, 78
  • new Date().toString() method, 78
  • new projects, Android Studio, 186
  • new state, threads, 73
  • nonrunnable state, threads, 73
  • Notepad++, 17–18
  • Notepad.exe program, executing, 83–84
  • O
  • object accessibility. See scope
  • object variables, 45
  • object-oriented programming (OOP). See OOP (object-oriented programming)
  • objects. See also classes
    • BufferedReader, 59–60
    • BufferedWriter, 58–60
    • immutable types, 45
    • OOP (object-oriented programming), 62–63
    • standard error, 21
    • standard input, 21
    • standard output, 21
    • thread synchronization, 77–78
  • onCreate() method, Android Studio, 188
  • one-dimensional arrays, declaring, 54–55
  • online code converters, 31
  • online compilers, 25–31
  • online courses and tutorials, free, 31–36
  • OnlineGDB Java online compiler, 29
  • OOP (object-oriented programming)
    • anonymous inner classes, 64–67
    • classes, 62–63
    • encapsulation, 63
    • example, 65
    • inheritance, 63, 66–67
    • instantiation, 63
    • interfaces, 67
    • multithreaded programming, 70–71
    • object scope, 64
    • objects, 62–63
    • overloading methods, 63, 65–66
    • overriding methods, 63
    • overview, 62
  • Open IoT Stack for Java (Eclipse), 271
  • OpenDaylight (SDN tutorial), 181
  • operators, 47–48
  • Oracle
    • application deployment tutorial, 97
    • Java tutorials, 31–33
    • JavaFX tutorial, 122
  • Oracle Certified Associate, 11
  • Oracle Certified Professional, 11
  • Oracle IoT Cloud, 230
  • output, 48–51
  • overloading methods, 63
  • overriding methods, 63
  • P
  • package names, defining, 86
  • packages, 7
    • default, 21
    • importing, 21
    • java.time.*, 79
    • reusable classes, creating, 86–88
  • passwords
    • hash functions, 322–323
    • String variables, 46
  • PATH environment variable, 14
  • perceptron (AI), 280–284
    • example code, 293–296
  • performance, caching, String objects, 45–46
  • PGP (Pretty Good Privacy), 327
  • Pi4J library, 236
  • ping command, 177–178
  • platform editions, 8
  • platform independence, 4
  • platforms, IoT (Internet of Things), 230
  • polymorphism, OOP (object-oriented programming), 63–64
  • port numbers (networking), overview, 131
  • POST method, HTTP programming, 155–157
  • Post Office Protocol 3 (POP3), JavaMail application, 167–168
  • Pretty Good Privacy (PGP), 327
  • principles of Java, 4
  • printing, println() method, 21
  • println() method, 21
  • priorities, threads, 76
  • private key encryption, 317–318
    • example, 329–330
    • Tools4noobs demonstration tool, 335
  • private keyword, 61
  • Professional certification, 11
  • professional deployment tools, 96–97
  • programming, HelloWorld.java, 20–23
  • programming style. See software engineering
  • projects, Android Studio
    • debugging, 191–192
    • files, 186–188
    • new, 186
    • running, 191
  • protocols, TCP/IP, 129–132
  • ps command, 177
  • pseudocode, software engineering, 89–90
  • public classes, defining, 86
  • public key encryption, 319–321
    • demonstration tool, 335
    • example, 330–332
  • public keyword, 21
    • defining public classes, 86
  • publishing Android apps, 200–202
  • Pulse Width Modulation (PWM), Raspberry Pi example, 246–248
  • Putty.exe, 173
  • PWM (Pulse Width Modulation), 246–248
  • Python, Raspberry Pi and, 244–245
  • R
  • Raspberry Pi
    • analog-to-digital converter (ADC), examples, 255–259
    • blinking LED example, 237–241
    • digital sensor examples, 259–263
    • GPIO example, 242–244
    • Hadoop
      • adding nodes, 404–405
      • adding permissions, 405–406
      • cluster installation and configuration, 397
      • configuration, 399–400
      • downloading and installing, 398
      • environment variables configuration, 399
      • installation and configuration, 397
      • SSH configuration, 398
      • start and stop services, 399–400
      • testing, 400–403
      • user account and group, 398
      • view on web browser, 403–404
    • Inter-Integrated Circuit (I2C), 251–255
    • IoT (Internet of Things)
      • overview, 231–232
      • setting up, 232–237
    • Morse code example, 241–242
    • MQTT example, 263–266
    • Pulse Width Modulation (PWM), 246–248
    • Python programs and, 244–245
    • REST example, 266–270
    • smart lighting system, 248–251
  • reading text files, 58–60
  • ready state, threads, 73
  • registered ports (networking), 131
  • reinforcement learning (AI), 287
  • release dates, 6–7
  • remote interface programs, 169
  • Remote method invocation (RMI), 168
  • remove() method, dynamic arrays, 57
  • Representational State Transfer (REST), 229
  • reserved words, 48
  • resources, 418–420
  • REST (Representational State Transfer), 229
    • Raspberry Pi example, 266–270
  • reusability, 60
  • reusable classes, creating, 86–88
  • Rextester Java online compiler, 29–30
  • Rivest-Shamir-Adelman (RSA). See RSA (Rivest-Shamir-Adelman)
  • RMI (remote method invocation)
    • example programs, 169–171
    • overview, 168–169
    • running programs, 172
  • routers (networking), 133, 134
  • RSA (Rivest-Shamir-Adelman), 319–321
    • key generator demonstration tool, 335
  • RSA key generator, 321–322
  • runnable interface, multithreaded programming, 69–70, 73
  • runnable state, threads, 73
  • running state, threads, 73
  • Runtime.getRuntime().exec() class, 83–85
  • S
  • Salesforce, 230
  • saving, class files, to directories (folders), 24
  • Scanner class, 49
  • scanners, reading input from, 49
  • schedule() method, 80
  • ScheduledExecutorService, 81–82
  • scheduling, threads, 76
  • scope, OOP (object-oriented programming), 64
  • SDN (software-defined networking)
    • compared to traditional networking, 134–136
    • OpenFlow tutorial, 172–181
  • secret key encryption, 318
  • Secure Hash Algorithm (SHA), 323
  • secure shell (SSH), Raspberry Pi and, 234
  • secure web encryption example, 328–329
  • security. See also cybersecurity
    • blockchain, validating, 349–350
    • healthcare data, 358
    • IoT (Internet of Things), 226, 230
    • String variables, 46
    • voting and blockchain, 360
  • selections, 51–54
  • semicolon ( ; ), statements, 21
  • semi-supervised learning (AI), 287
  • Sensor app, Android Studio, 196–200
  • sequences, 51–54
  • setContentView() method, Android Studio, 188
  • setPriority() method, 76
  • SHA (Secure Hash Algorithm), 323
  • SHA-256 hash generator, 323–324
  • signing apps, 200–202
  • Simple Mail Transfer Protocol (SMTP), 164
  • Simple Object Access Protocol (SOAP), 229
  • single point of failure, 37
  • sleeping state, threads, 73
  • smart contracts, 358
  • smart lighting system, Raspberry Pi, 248–251
  • smartcards, 8
  • smartphones, types, 184
  • SMTP (Simple Mail Transfer Protocol), 164
  • SMTP email application, 164–165
  • SOAP (Simple Object Access Protocol), 229
  • social media, big data and, 391
  • sockets (networking)
    • multithreaded echo server program, 148–151
    • overview, 143
    • TCP client-server program, 146–148
    • UDP client-server program, 143–146
  • software development, version control, 36–37
  • software development cycle, 89–90
  • software engineering
    • comments, 91–92
    • development cycle, 89–90
    • indentation, 90–91
    • naming conventions, 92–93
    • overview, 88–89
  • software-defined networking (SDN), compared to traditional networking, 134–136
  • Solidity, Ethereum Smart Contracts, 380
  • source code, 4
    • converting from one language to another, 31
    • filenames, 21
  • source files, saving, 22
  • source path, setting, 24
  • -sourcepath option, 24
  • spaces in variable names, 42
  • special symbols in variable names, 42
  • specifications, software engineering, 89–90
  • speech recognition app, MIT App Inventor, 204–208
  • staging programs in Git, 433
  • Standard Edition (Java SE), 8
  • standard error object, 21
  • standard input, 48–51
  • standard input object, 21
  • standard output, 48–51
  • standard output object, 21
  • startup file, loading, 15
  • statements
    • ; (semicolon), 21
    • conditional, 53
  • static keyword, 21
    • declaring variables, 43
    • defining constants, 44
  • stock market, big data and, 391
  • streaming services, TCP client-server program, 146–148
  • String variable, 45–46
  • StringBuffer variable, 45
    • mutability, 46
  • strings
    • converting to integers, 50
    • dynamic types, 46
  • Sublime Text, 17
  • subroutines. See methods
  • super AI, 277
  • supervised learning (AI), 286
  • support road map URL, 7
  • switch statement, 53
  • switches (networking), 132, 133
  • symmetric key encryption, 317
  • synchronization, threads, 77–78
  • system commands, executing, 83–85
  • system ports (networking), 131
  • System.console, 48
  • System.console.readline(), 49
  • System.currentTimeMillis() method, 78
  • System.Diagnostic.Process.Start() class, deploying applications, 95–96
  • System.in, 48–51
  • System.nanoTime() method, 78
  • System.out, 48–51
  • System.out.print(), 49
  • System.out.println(), 21, 49
  • T
  • -target option, 24
  • TCP client-server program, 146–148
  • TCP/IP, overview, 129–132
  • telecommunication companies, big data and, 391
  • TensorFlow
    • downloading, 310
    • example programs, 310–311
    • overview, 309
  • Tensorflow, tutorials and courses, 311–312
  • terminated state, threads, 73
  • ternary operator, 53
  • text editors, 17–18
  • text files, writing, 58–60
  • Textpad, 17
  • threads
    • priorities, 76
    • scheduling, 76
    • states, 73–75
    • synchronization, 77–78
  • Thread.sleep() class, implementing delays, 82–83
  • Thread.sleep() method, 75
  • throws IOException, 50–51
  • timer() class, 80
  • Tools4noobs, private key encryption, 335
  • topologies (networking), 132–133
  • translation app, MIT App Inventor, 208–213
  • translators (source code), online, 31
  • transparency (blockchain), 352
  • transport layer (TCP/IP), 130
  • try blocks, 50–51
  • try…catch…finally blocks, 50–51
  • tutorials and courses
    • AI, 313
    • Android apps, 192
    • Android Studio installation and configuration, 185
    • comments maintenance tutorial (Javadoc), 413–418
    • cybersecurity resources, 342–345
    • Floodlight (SDN tutorial), 181
    • free, 31–36
    • Java Swing, 105
    • JavaFX, 122–125
    • MIT App Inventor, 213
    • OpenDaylight (SDN tutorial), 181
    • OpenFlow (SDN tutorial), 172–181
    • Raspberry PI, 232
    • Tensorflow, 311–312
  • Tutorialspoint
    • Android Studio installation and configuration, 185
    • JavaFX tutorial, 122
    • network programming, 181
  • Tutorialspoint online compiler, 25
  • U
  • Udacity, Java courses, 34
  • UDP (User Datagram Protocol), 143–146
  • UDP client-server program, 143–146
  • UI (user interface), Android Studio, 188
  • University of Georgia, public key encryption demonstration tool, 335
  • Unix, environment variables, setting, 14–15
  • unsupervised learning (AI), 287
  • URLs, parsing, 157–158
  • User Datagram Protocol (UDP), 143–146
  • user interface (UI), Android Studio, 188
  • usernames, String variables, 46
  • V
  • VAR variable, 46
  • variables, 42–46
  • VCS (version control system), 37
  • version control, 36–37
  • version control system (VCS), 37
  • versions, 5–7
    • certifications for, 11
    • checking in Windows, 15
  • VirtualBox, 173
  • W
  • waiting state, threads, 73
  • WAN (wide area network), 132
  • weather stations, big data and, 391
  • web browsers, Java history, 4
  • web viewer, JavaFX, creating, 117–118
  • Web3j library, digital wallets, 375–378
  • well-known port numbers (networking), 131
  • while loops, 52–54
  • wide area network (WAN), 132
  • Windows
    • batch files, 93–94
    • command prompt
      • invoking, 15
      • javac command options, 25
    • environment variables, setting, 14
    • executable Java programs, creating, 93–97
    • JAR files, 94–95
    • Java compiler, checking, 15–16
    • Microsoft Visual Studio, deploying applications, 95–96
    • separating directories, 24
  • Windows Remote Desktop Connection, Raspberry Pi and, 234–236
  • WORA (write once, run anywhere), 4
  • writing text files, 58–60
  • X-Y-Z
  • Xming, 173
  • XMPP (Extensible Messaging and Presence Protocol), 229
  • YandexTranslate, 208–213
  • YARN (Hadoop), 395
  • YouTube, Android Studio installation and configuration, 185–186
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset