- 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, –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
- AVD (Android Virtual Device), 184
- AWS (Amazon Web Services), 230
- 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,
- 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,
- 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
- 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
- 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),
- 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),
- Enterprise Edition (Java EE),
- environment variables, 14–16
- Hadoop configuration on Raspberry Pi, 399
- EOL (end of life),
- 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, –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,
- 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, –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
- 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
- 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),
- JAR files
- creating, 418–420
- deploying applications, 94–95
- JavaMail email application, 165–167
- Java 2 Standard Edition (J2SE),
- Java API documentation, 35
- Java Card,
- Java Development Kit (JDK),
- Java EE (Enterprise Edition),
.java
files,
- Java Foundations Certified Junior Associate, 11
- Java Layout Manager, Java Swing, 105
- Java ME (Micro Edition),
- embedded client example, 270
- Java Runtime Environment (JRE),
- Java SE (Standard Edition),
- Java Spring framework, –10
- Java Swing, 100–105
- Java Virtual Machine (JVM), –5
- Java2S, network programming, 181
- JavaBeans Activation Framework (JAF), JavaMail email application, 165–167
javac
command, 24
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),
- Android phone applications, 184
- Raspberry Pi and, 236
- JDoodle online compiler, 27
- Jenkov Apps, JavaFX tutorial, 122
- JIT (just-in-time compiler),
- JRE (Java Runtime Environment),
- just-in-time compiler (JIT),
- JVM (Java Virtual Machine), –5
- 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),
- loops, 51–54
- LTS (long-term support),
- 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),
- Microsoft Azure, 230
- 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,
- 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
- performance, caching,
String
objects, 45–46
- PGP (Pretty Good Privacy), 327
- Pi4J library, 236
ping
command, 177–178
- platform editions,
- platform independence,
- 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,
- 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
- 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, –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,
- 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,
- 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),
- 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
- 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,
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, –7
- certifications for, 11
- checking in Windows, 15
- W
- waiting state, threads, 73
- WAN (wide area network), 132
- weather stations, big data and, 391
- web browsers, Java history,
- 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),
- 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.