热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java编码问题复习

我最近购买了AnghelLeonard的JavaCodingProblems,因为本书中涉及的主题使我成为一名Java培训师很感兴趣。在这里看到目录后,

我最近购买了Anghel Leonard的Java Coding Problems,因为本书中涉及的主题使我成为一名Java培训师很感兴趣。 在这里看到目录后,我决定购买它。 由于Java的发展非常迅速,因此很难使自己保持最新状态,并且很容易错过Java新功能或没有时间详细研究它们。

我买了很重的平装书。 这本书有800多页。 但是,显然,最重要的是内容。 快速提示:您可以依靠包含1,000多个示例的360多个应用程序。

书籍结构

本书分为13章,涵盖260多个Java 8到Java 13的问题。主要是,作者以精心设计的问题为借口,涵盖了Java 8-12的所有功能。 从诸如Java流或Optional之类的流行功能到诸如Java 11基于嵌套的访问控制(嵌套)之类的较不流行的功能。

章节概述

  • 第1章:字符串,数字和数学
  • 第2章:对象,不变性和开关表达式
  • 第3章:使用日期和时间
  • 第4章:类型推断
  • 第5章:数组,集合和数据结构
  • 第6章:Java I / O路径,文件,缓冲区,扫描和格式化
  • 第7章:Java反射类,接口,构造函数,方法和字段
  • 第8章:函数样式编程-基本原理和设计模式
  • 第9章:函数样式编程-深入研究
  • 第10章:并发–线程池,可调用对象和同步器
  • 第11章:并发–深入探讨
  • 第十二章:可选
  • 第13章:HTTP客户端和WebSocket API

第1章:字符串,数字和数学

本章包括39个涉及字符串,数字和数学运算的问题。 本章从字符串的一系列经典问题开始,例如计算重复项,反转字符串和删除空格。 本章继续讨论数字和数学运算专用的问题,例如,将两个大数字相加,运算溢出,比较两个无符号数,计算除法和模数的下限等等。 每个问题都通过几种解决方案来解决,包括Java 8功能
样式。 此外,本章还介绍了期货在JDK 9、10、11和12中添加的问题。

第2章:对象,不变性和开关表达式

其中包括18个涉及对象,不变性和切换的问题
表达式。 本章从有关处理空引用的几个问题开始。 它继续存在有关检查索引,equals()和hashCode()以及不可变性的问题(例如,编写不可变类以及从不可变类传递/返回可变对象)。 本章的最后一部分介绍克隆对象和JDK 12开关表达式。

第3章:使用日期和时间

本章包括20个涉及日期和时间的问题。 这些问题旨在通过日期,日历,LocalDate,LocalTime,LocalDateTime,ZoneDateTime,OffsetDateTime,OffsetTime,Instant,等等。 到本章末,您将毫无疑问地确定日期和时间以符合应用程序的需求。

第4章:类型推断

本章包括21个涉及JEP 286,Java局部变量类型推断(LVTI)或var类型的问题。 这些问题经过精心设计,以揭示使用var的最佳实践和常见错误。 在本章的最后,您将拥有有关将var投入生产的所有必要知识。

第5章:数组,集合和数据结构

本章包含30个问题,涉及数组,集合和几种数据结构。 目的是为各种应用程序中遇到的一类问题提供解决方案,例如分类,查找,比较,排序,反转,填充,合并,复制,替换等。 提供的解决方案在Java 8-12中实现,它们也可以用作解决其他相关问题的基础。 到本章结束时,您将拥有扎实的知识基础,可用于解决许多涉及数组,集合和数据结构的问题。

第6章:Java I / O路径,文件,缓冲区,扫描和格式化

本章包括20个涉及文件的Java I / O的问题。 从
操作,步行和观看流文件的路径以及用于读取/写入文本和二进制文件的有效方法,我们将介绍任何Java开发人员都必须解决的问题。 借助从本章中学到的技能,您将能够解决涉及Java I / O文件的大多数常见问题。

第7章:Java反射类,接口,构造函数,方法和字段

本章包括涉及Java Reflection API的17个问题。 来自经典主题,例如检查和实例化Java工件(用于
例如,模块,包,类,接口,超类,构造函数,方法,注释,数组等),以合成和桥接结构或基于嵌套的访问控制(JDK 11),本章对Java Reflection API。

第8章:函数样式编程-基本原理和设计模式

本章包括涉及Java函数编程的11个问题。 本章从一个旨在使您完全熟悉功能接口的问题开始。 它继续提供了以Java功能样式解释的GoF设计模式套件。

第9章:函数样式编程-深入研究

本章包括22个涉及Java函数编程的问题。 在这里,我们集中讨论涉及流(例如,过滤器和映射)中流遇到的经典操作的几个问题,并讨论无限流,空安全流和默认方法。 全面的问题列表涵盖了分组,分区和收集器,包括JDK 12 teeing()收集器和编写自定义收集器的问题。 另外,takeWhile(),dropWhile()组成函数,谓词和比较器,测试和调试lambda,
还讨论了其他很酷的主题。

第10章:并发–线程池,可调用对象和同步器

本章包括14个涉及Java并发的问题。 本章从关于线程生命周期和对象/类级锁定的几个基本问​​题开始。 继续讲到有关Java中线程池的一系列问题,包括JDK 8工作窃取线程池。
之后,我们遇到了一些有关“可致电和未来”的问题。 接下来,我们为Java同步器带来一些问题(例如,屏障,信号量和交换器)。 在本章的最后,您应该熟悉Java并发的主要坐标,并准备继续进行一系列高级问题。

第11章:并发–深入探讨

本章包括13个涉及Java并发的问题。 本章介绍了有关fork / join框架,CompletableFuture,ReentrantLock,ReentrantReadWriteLock,StampedLock,原子变量,任务取消,可中断方法,线程本地锁和死锁的问题。 完成本章将确保获得任何Java开发人员所需的大量并发知识。

第十二章:可选

本章包含24个问题,这些问题旨在为使用Optional制定一些规则。 本节中提出的问题和解决方案基于Brian Goetz(Java的语言架构师)的定义-可选的目的是为库方法返回类型提供一种受限的机制,该机制需要一种明确的方法来表示无结果,并使用null极有可能导致错误。 但是在有规则的地方也有例外。 因此,不能得出结论,应不惜一切代价遵守(或避免)此处介绍的规则(或惯例)。 像往常一样,解决方案取决于问题。

第13章:HTTP客户端和WebSocket API

本章包含20个问题,旨在涵盖HTTP客户端和Webocket API。 还记得HttpUrlConnection吗? 好吧,JDK 11附带了HTTP客户端API,作为HttpUrlConnection的重塑。 HTTP客户端API易于使用,并支持HTTP / 2(默认)和HTTP / 1.1。 对于
向后兼容,当服务器不支持HTTP / 2时,HTTP客户端API将自动从HTTP / 2降级到HTTP 1.1。 此外,HTTP客户端API支持同步和异步编程模型,并依赖于流来传输数据(响应流)。 它还支持实时Web应用程序中使用的WebSocket协议,以低消息开销提供客户端-服务器通信。

我喜欢什么?

  • 除了非凡的技术内容,我还喜欢三件事:
  • 我在一本书中找到了所有这些信息。 从Internet和其他资源中收集所有这些东西将花费大量时间。
  • 很实用。 每个页面上都有代码。
  • 准备现代Java采访非常有用。 我的学生大多数都是2-4年的Java开发人员,他们正在寻找可以使他们掌握Java功能最新知识的培训,但他们也希望为面试做准备。 这本书的编码挑战涵盖了这两种需求。

我不喜欢什么?

  • 本书中并未列出所有代码。 您必须在GitHub上扫描仅本书中提到的示例。
  • 有些缺乏图表。 在某些地方,图片很有用,但缺少图片。

最后的话

我从5个开始就以4.8分获得了这本书。

我强烈推荐它作为Java 8-13主题的参考书。

您可以在Amazon , Packt , O'Reilly等处找到它。







From: https://hackernoon.com/java-coding-problems-review-t44832m0



推荐阅读
  • 本文是Java并发编程系列的开篇之作,将详细解析Java 1.5及以上版本中提供的并发工具。文章假设读者已经具备同步和易失性关键字的基本知识,重点介绍信号量机制的内部工作原理及其在实际开发中的应用。 ... [详细]
  • MySQL 5.7 学习指南:SQLyog 中的主键、列属性和数据类型
    本文介绍了 MySQL 5.7 中主键(Primary Key)和自增(Auto-Increment)的概念,以及如何在 SQLyog 中设置这些属性。同时,还探讨了数据类型的分类和选择,以及列属性的设置方法。 ... [详细]
  • 原文网址:https:www.cnblogs.comysoceanp7476379.html目录1、AOP什么?2、需求3、解决办法1:使用静态代理4 ... [详细]
  • Python 序列图分割与可视化编程入门教程
    本文介绍了如何使用 Python 进行序列图的快速分割与可视化。通过一个实际案例,详细展示了从需求分析到代码实现的全过程。具体包括如何读取序列图数据、应用分割算法以及利用可视化库生成直观的图表,帮助非编程背景的用户也能轻松上手。 ... [详细]
  • Python多线程编程技巧与实战应用详解 ... [详细]
  • 深入解析CAS机制:全面替代传统锁的底层原理与应用
    本文深入探讨了CAS(Compare-and-Swap)机制,分析了其作为传统锁的替代方案在并发控制中的优势与原理。CAS通过原子操作确保数据的一致性,避免了传统锁带来的性能瓶颈和死锁问题。文章详细解析了CAS的工作机制,并结合实际应用场景,展示了其在高并发环境下的高效性和可靠性。 ... [详细]
  • 使用Maven JAR插件将单个或多个文件及其依赖项合并为一个可引用的JAR包
    本文介绍了如何利用Maven中的maven-assembly-plugin插件将单个或多个Java文件及其依赖项打包成一个可引用的JAR文件。首先,需要创建一个新的Maven项目,并将待打包的Java文件复制到该项目中。通过配置maven-assembly-plugin,可以实现将所有文件及其依赖项合并为一个独立的JAR包,方便在其他项目中引用和使用。此外,该方法还支持自定义装配描述符,以满足不同场景下的需求。 ... [详细]
  • 在 Linux 环境下,多线程编程是实现高效并发处理的重要技术。本文通过具体的实战案例,详细分析了多线程编程的关键技术和常见问题。文章首先介绍了多线程的基本概念和创建方法,然后通过实例代码展示了如何使用 pthreads 库进行线程同步和通信。此外,还探讨了多线程程序中的性能优化技巧和调试方法,为开发者提供了宝贵的实践经验。 ... [详细]
  • 在拉斯维加斯举行的Interop 2011大会上,Bitcurrent的Alistair Croll发表了一场主题为“如何以云计算的视角进行思考”的演讲。该演讲深入探讨了传统IT思维与云计算思维之间的差异,并提出了在云计算环境下应具备的新思维方式。Croll强调了灵活性、可扩展性和成本效益等关键要素,以及如何通过这些要素来优化企业IT架构和运营。 ... [详细]
  • 本视频教程将带你快速了解 Android 开发的基础知识,并详细讲解如何在 Android 应用中使用 SQLite 数据库进行数据存储和管理。 ... [详细]
  • Java并发机制详解及其在数据安全性保障中的应用方案 ... [详细]
  • Keepalived 提供了多种强大且灵活的后端健康检查机制,包括 HTTP_GET、SSL_GET、TCP_CHECK、SMTP_CHECK 和 MISC_CHECK 等多种检测方法。这些健康检查功能确保了高可用性环境中的服务稳定性和可靠性。通过合理配置这些检查方式,可以有效监测后端服务器的状态,及时发现并处理故障,从而提高系统的整体性能和可用性。 ... [详细]
  • Python 程序转换为 EXE 文件:详细解析 .py 脚本打包成独立可执行文件的方法与技巧
    在开发了几个简单的爬虫 Python 程序后,我决定将其封装成独立的可执行文件以便于分发和使用。为了实现这一目标,首先需要解决的是如何将 Python 脚本转换为 EXE 文件。在这个过程中,我选择了 Qt 作为 GUI 框架,因为之前对此并不熟悉,希望通过这个项目进一步学习和掌握 Qt 的基本用法。本文将详细介绍从 .py 脚本到 EXE 文件的整个过程,包括所需工具、具体步骤以及常见问题的解决方案。 ... [详细]
  • Python 开发笔记:深入探讨字符串及其常用方法与技巧 ... [详细]
  • 本文将继续探讨 JavaScript 函数式编程的高级技巧及其实际应用。通过一个具体的寻路算法示例,我们将深入分析如何利用函数式编程的思想解决复杂问题。示例中,节点之间的连线代表路径,连线上的数字表示两点间的距离。我们将详细讲解如何通过递归和高阶函数等技术实现高效的寻路算法。 ... [详细]
author-avatar
mobiledu2502913627
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有