Showing posts with label books for Java. Show all posts
Showing posts with label books for Java. Show all posts

Sunday, June 19, 2016

Think Java: How to Think Like a Computer Scientist

Think Java: How to Think Like a Computer Scientist

Currently used at many colleges, universities, and high schools, this hands-on introduction to computer science is ideal for people with little or no programming experience. The goal of this concise book is not just to teach you Java, but to help you think like a computer scientist. You’ll learn how to program—a useful skill by itself—but you’ll also discover how to use programming as a means to an end.

Authors Allen Downey and Chris Mayfield start with the most basic concepts and gradually move into topics that are more complex, such as recursion and object-oriented programming. Each brief chapter covers the material for one week of a college course and includes exercises to help you practice what you’ve learned.

  • Learn one concept at a time: tackle complex topics in a series of small steps with examples
  • Understand how to formulate problems, think creatively about solutions, and write programs clearly and accurately
  • Determine which development techniques work best for you, and practice the important skill of debugging
  • Learn relationships among input and output, decisions and loops, classes and methods, strings and arrays
  • Work on exercises involving word games, graphics, puzzles, and playing cards

Monday, April 11, 2016

Free book by O'Reilly - Introducing Java 8: A Quick-Start Guide to Lambdas and Streams

Introducing Java 8
A Quick-Start Guide to Lambdas and Streams
By Raoul-Gabriel Urma
Publisher: O'Reilly
Released: August 2015

Java SE 8 is perhaps the largest change to Java in its history, led by its flagship feature—lambda expressions. If you’re an experienced developer looking to adopt Java 8 at work, this short guide will walk you through all of the major changes before taking a deep dive into lambda expressions and Java 8’s other big feature: the Streams API.

Author Raoul-Gabriel Urma explains how improved code readability and support for multicore processors were the prime movers behind Java 8 features. He’ll quickly get you up to speed on new classes including CompleteableFuture and Optional, along with enhanced interfaces and the new Date and Time API. You’ll also:

  • Understand why lambda expressions are considered a kind of anonymous function
  • Learn how lambda expressions and the behavior parameterization pattern let you write flexible and concise code
  • Discover various operations and data processing patterns possible when using the Streams API
  • Use Collector recipes to write queries that are more sophisticated
  • Consider factors such as data size and the number of cores available when using streams in parallel
  • Work with a practical refactoring example to bring lambda expressions and streams into focus

Raoul-Gabriel Urma is co-author of the bestselling book Java 8 in Action (Manning). He has worked as a software engineer for Oracle’s Java Platform Group, as well as for Google’s Python team, eBay and Goldman Sachs. An instructor and frequent conference speaker, he’s currently completing a PhD in Computer Science at the University of Cambridge.

link: http://www.oreilly.com/programming/free/introducing-java-8.csp

Saturday, March 19, 2016

FREE Ebook from O'Reilly - Modern Java EE Design Patterns

Modern Java EE Design Patterns
Building Scalable Architecture for Sustainable Enterprise Development
Publisher: O'Reilly

With the ascent of DevOps, microservices, containers, and cloud-based development platforms, the gap between state-of-the-art solutions and the technology that enterprises typically support has greatly increased. But as Markus Eisele explains in this O’Reilly report, some enterprises are now looking to bridge that gap by building microservice-based architectures on top of Java EE.

Can it be done? Is it even a good idea? Eisele thoroughly explores the possibility and provides savvy advice for enterprises that want to move ahead. The issue is complex: Java EE wasn’t built with the distributed application approach in mind, but rather as one monolithic server runtime or cluster hosting many different applications. If you’re part of an enterprise development team investigating the use of microservices with Java EE, this book will help you:

  • Understand the challenges of starting a greenfield development vs tearing apart an existing brownfield application into services
    Examine your business domain to see if microservices would be a good fit
  • Explore best practices for automation, high availability, data separation, and performance
  • Align your development teams around business capabilities and responsibilities
  • Inspect design patterns such as aggregator, proxy, pipeline, or shared resources to model service interactions

Markus Eisele is a Developer Advocate at Red Hat and focuses on JBoss Middleware. He has been working with Java EE servers from different vendors for more than 14 years, and has worked with different customers on all kinds of Java EE related applications and solutions. He is a prolific blogger, writer, and tech editor for Java EE content. Markus is also a Java Champion and former ACE Director.

link: http://www.oreilly.com/programming/free/modern-java-ee-design-patterns.csp

Thursday, December 31, 2015

Learning Network Programming with Java

Learning Network Programming with Java

Key Features
  • Learn to deliver superior server-to-server communication through the networking channels
  • Gain expertise of the networking features of your own applications to support various network architectures such as client/server and peer-to-peer
  • Explore the issues that impact scalability, affect security, and allow applications to work in a heterogeneous environment
Book Description
Network-aware applications are becoming more prevalent and play an ever-increasing role in the world today. Connecting and using an Internet-based service is a frequent requirement for many applications. Java provides numerous classes that have evolved over the years to meet evolving network needs. These range from low-level socket and IP-based approaches to those encapsulated in software services.

This book explores how Java supports networks, starting with the basics and then advancing to more complex topics. An overview of each relevant network technology is presented followed by detailed examples of how to use Java to support these technologies.

We start with the basics of networking and then explore how Java supports the development of client/server and peer-to-peer applications. The NIO packages are examined as well as multitasking and how network applications can address practical issues such as security.

A discussion on networking concepts will put many network issues into perspective and let you focus on the appropriate technology for the problem at hand. The examples used will provide a good starting point to develop similar capabilities for many of your network needs.

What you will learn
  • Connect to other applications using sockets
  • Use channels and buffers to enhance communication between applications
  • Access network services and develop client/server applications
  • Explore the critical elements of peer-to-peer applications and current technologies available
  • Use UDP to perform multicasting
  • Address scalability through the use of core and advanced threading techniques
  • Incorporate techniques into an application to make it more secure
  • Configure and address interoperability issues to enable your applications to work in a heterogeneous environment
About the Author
Richard M Reese has worked in both industry and academia. For 17 years, he worked in the telephone and aerospace industries, serving in several capacities, including research and development, software development, supervision, and training. He currently teaches at Tarleton State University, where he has the opportunity to apply his years of industry experience to enhance his teaching.

Richard has written several Java books and a C Pointer book. He uses a concise and easy-to-follow approach to topics at hand. His Java books have addressed EJB 3.1, updates to Java 7 and 8, certification, functional programming, jMonkeyEngine, and natural language processing.

Table of Contents
  1. Getting Started with Network Programming
  2. Network Addressing
  3. NIO Support for Networking
  4. Client/Server Development
  5. Peer-to-Peer Networks
  6. UDP and Multicasting
  7. Network Scalability
  8. Network Security
  9. Network Interoperability


Saturday, October 10, 2015

Download Java SE Tutorial offline version

The Java Tutorials are practical guides for programmers who want to use the Java programming language to create applications. They include hundreds of complete, working examples, and dozens of lessons. Groups of related lessons are organized into "trails".

>> Download Ebooks


Wednesday, September 30, 2015

FREE ebook - Java Application Development on Linux

“Java™ Application Development on Linux®”

is the hands-on guide to the full Java application development lifecycle on Linux.

Linux is the fastest-growing Java development platform because it saves money and time by serving as a platform for both development and deployment. But developers face significant platform-specific challenges and opportunities when managing and deploying Java applicaitons in a controlled production environment.

After a simple command-line application introduces basic tools this program leads readers through business-logic object analysis, database design, Java servlet UIs, Java ServerPages (JSP) UISs, Swing GUIs, and Standard Widget Toolkit (SWT) GUIs. Scaling up to the enterprise level provides the opportunity to use both the JBoss Application Server and the Apache Geronimo Application Server, and Enterprise JavaBeans (EJB).

download link: http://javalinuxbook.com/

Sunday, July 26, 2015

FREE eBook - An Introduction to Network Programming with Java, 3rd Edition

An Introduction to Network Programming with Java, 3rd Edition

Description: Since the second edition of this text, the use of the Internet and networks generally has continued to expand at a phenomenal rate. This has led to both an increase in demand for network software and to improvements in the technology used to run such networks, with the latter naturally leading to changes in the former. During this time, the Java libraries have been updated to keep up with the new developments in network technology, so that the Java programming language continues to be one of the mainstays of network software development.

~ Link


Monday, June 8, 2015

Java Programming 24-Hour Trainer, 2nd edition

Quick and painless Java programming with expert multimedia instruction

Java Programming 24-Hour Trainer

Java Programming 24-Hour Trainer, 2nd Edition is your complete beginner's guide to the Java programming language, with easy-to-follow lessons and supplemental exercises that help you get up and running quickly. Step-by-step instruction walks you through the basics of object-oriented programming, syntax, interfaces, and more, before building upon your skills to develop games, web apps, networks, and automations. This second edition has been updated to align with Java SE 8 and Java EE 7, and includes new information on GUI basics, lambda expressions, streaming API, WebSockets, and Gradle. Even if you have no programming experience at all, the more than six hours of Java programming screencasts will demonstrate major concepts and procedures in a way that facilitates learning and promotes a better understanding of the development process.

This is your quick and painless guide to mastering Java, whether you're starting from scratch or just looking to expand your skill set.
  • Master the building blocks that go into any Java project
  • Make writing code easier with the Eclipse tools
  • Learn to connect Java applications to databases
  • Design and build graphical user interfaces and web applications
  • Learn to develop GUIs with JavaFX
If you want to start programming quickly, Java Programming 24-Hour Trainer, 2nd Edition is your ideal solution.

Wednesday, June 3, 2015

RxJava Essentials

Learn reactive programming to create awesome Android and Java apps

RxJava Essentials

About This Book
  • Create interactive Android apps with Java Reactive Extensions
  • Learn Reactive Programming through real-life examples that you can use in your Android app
  • Beat Android concurrency and threading issues to take your apps to a new level
Who This Book Is For
If you are an experienced Java developer, reactive programming will give you a new way to approach scalability and concurrency in your backend systems, without forcing you to switch programming languages.

In Detail
RxJava―Reactive Extensions for the JVM―is a library for composing asynchronous and event-based programs using Observable sequences for the Java VM, which will help you beat Android platform limitations to create astonishing Android apps.

Starting with some quick background information on the Rx .NET library, this book quickly moves on to your first example. You will understand Observables and learn to filter, transform, or merge them in detail. Next, you will learn how to get rid of Threads, AsyncTasks, and Handlers with Schedulers to create a smooth user experience. Develop an easy, ready-to-go approach to REST API communications and enrich your skills by working with new challenging examples.

By the end of the book, you will have explored the reactive programming world and will have created your first Android app without having to think about threading, networking, concurrency, and collection management.

Wednesday, March 4, 2015

Learning Java by Building Android Games


Learning Java by Building Android Games

Android is the fastest growing operating system (OS) with one of the largest installed bases of any mobile OS. Android uses one of the most popular programming languages, Java, as the primary language for building apps of all types. So, you should first obtain a solid grasp of the Java language and its foundation APIs to improve the chances of succeeding as an Android app developer.

This book will show you how to get your Android development environment set up and you will soon have your first working game. The difficulty level grows steadily with the introduction of key Java topics such as loops, methods, and OOP. You'll then use them in the development of games. You will learn how to build a math test game, a Simon-like memory game, a retro pong-style game, and for the grand finale, a Snake-style, retro arcade game with real Google Play leaderboards and achievements. The book has a hands-on approach and is packed with screenshots.