您好,欢迎光临有路网!
Java编程问题
QQ咨询:
有路璐璐:

Java编程问题

  • 作者:(罗)安赫尔·伦纳德(Anghel Leonard) 著
  • 出版社:化学工业出版社
  • ISBN:9787122449597
  • 出版日期:2024年07月01日
  • 页数:566
  • 定价:¥149.00
  • 分享领佣金
    手机购买
    城市
    店铺名称
    店主联系方式
    店铺售价
    库存
    店铺得分/总交易量
    发布时间
    操作

    新书比价

    网站名称
    书名
    售价
    优惠
    操作

    图书详情

    内容提要
    本书通过探讨Java开发工作中常会遇到的问题及相关解决方案,介绍了涉及字符串、数字、数组、集合、数据结构、日期和时间、对象、不可变性、Switch表达式、类型推断、Java I/O、Java反射、函数式编程、并发、HTTP Client API和Websocket等方面的核心知识与实用技巧。 这些简单或复杂的问题,将帮助你提升解决现实问题的编程能力,使你了解相关问题基于Java 8~12的*佳实践,同时还可以检测你对相关技术的掌握程度。 本书可供初级和中级Java开发人员参考,同样也适合正为相关技术面试做准备的求职者阅读。
    目录
    第1章 字符串、数字和数学1 问题1 解决方案2 1.统计重复字符的数量3 2.寻找**个非重复字符5 3.反转字母和单词7 4.检查字符串是否仅包含数字7 5.统计元音和辅音的数量8 6.统计某个特定字符的出现次数10 7.将String转换为int、long、float或double类型11 8.去除字符串中的空格12 9.用分隔符连接多个字符串12 10.生成全部排列组合13 11.检查字符串是否为回文15 12.删除重复的字符16 13.删除给定的字符17 14.找到出现次数*多的字符19 15.按长度对字符串数组排序20 16.检查字符串是否包含子串22 17.计算字符串中子串的出现次数22 18.判断两个字符串是否互为变位词23 19.声明多行字符串(文本块)24 20.重复拼接同一个字符串n次25 21.删除首尾空格27 22.寻找*长公共前缀27 23.应用缩进28 24.字符串转换30 25.求*小值与*大值30 26.求两个大数之和(int/long)���处理运算溢出的情况31 27.解析特定进制下的无符号数32 28.通过无符号转换转变数字33 29.比较两个无符号数33 30.无符号数的除法和取模34 31.判断float/double是否为有限浮点数34 32.对两个布尔表达式执行逻辑AND / OR / XOR运算35 33.将BigInteger转换为基本类型36 34.将long类型转换为int类型37 35.计算取整除和模数37 36.相邻浮点数38 37.求两个大数的乘积(int/long)并处理运算溢出的情况39 38.融合乘加(FMA)40 39.紧凑数字格式化41 小结44 第2章 对象、不可变性和Switch表达式45 问题45 解决方案46 40.用函数式和命令式风格的代码检查空引用46 41.检查空引用并抛出自定义的NullPointerException异常48 42.检查空引用并抛出指定的异常50 43.检查空引用并返回非空默认引用51 44.检查索引是否在[0, length)范围内52 45.检查子区间是否在[0, length)范围内54 46. equals()和hashCode()55 47.简述不可变对象59 48.不可变字符串59 49.编写一个不可变类62 50.在不可变类中传递/返回可变对象63 51.使用建造者模式编写不可变类65 52.避免在不可变对象中出现错误数据68 53.克隆对象69 54.重写toString()73 55.新版Switch表达式75 56.多个case标签77 57.语句块77 小结78 第3章 处理日期和时间79 问题79 解决方案80 58.字符串与日期时间的转换80 59.格式化日期和时间83 60.获取当前日期/时间(不含时间/日期)86 61.基于LocalDate和LocalTime构建LocalDateTime86 62.通过Instant类获取机器时间86 63.使用基于日期的值(Period)定义时间段;使用基于时间的值(Duration)表示一小段时间89 64.提取日期和时间单位93 65.加减日期时间94 66.获取所有时区的UTC和GMT95 67.获取所有可用时区的本地日期时间96 68.显示有关航班的日期时间信息97 69.将Unix时间戳转换为日期时间99 70.查找某月的**天/*后**99 71.定义/提取时区偏移102 72.在Date和Temporal之间转换103 73.遍历一段日期范围106 74.计算年龄108 75.获得**的起始和结束时间108 76.两个日期之间的差异111 77.实现一个国际象棋计时器113 小结116 第4章 类型推断117 问题117 解决方案118 78.简单的var示例118 79.使用var与基本类型120 80.使用var和隐式类型转换来提高代码的可维护性121 81.显式向下转型(downcast)应避免使用var122 82.在变量名没有足够的类型信息保障可读性时应避免使用var123 83.结合LVTI和面向接口编程技术124 84.结合LVTI和钻石操作符124 85.将数组赋值给var125 86.在多变量声明中使用LVTI126 87. LVTI和变量作用域127 88. LVTI和三元操作符128 89. LVTI和for循环129 90. LVTI和流130 91.使用LVTI拆分嵌套/大型表达式链130 92. LVTI和方法返回值及参数类型131 93. LVTI和匿名类132 94. LVTI可以是final变量或effectively final变量132 95. LVTI和Lambda表达式134 96. LVTI和空初始化器、实例变量以及catch块变量134 97. LVTI和泛型类型135 98. LVTI、通配符、协变和逆变136 小结138 第5章 数组、集合和数据结构139 问题139 解决方案140 99.对数组进行排序140 100.查找数组元素149 101.检查两个数组是否相等或不匹配153 102.按字典序比较两个数组156 103.用数组创建流158 104.计算数组的*小值、*大值和平均值159 105.反转数组162 106.填充和设置数组164 107.下一个更大的元素(NGE)165 108.改变数组大小166 109.创建不可修改/不可变的集合167 110.映射默认值172 111.判断Map中键是否存在或缺失173 112.从Map中移除元素177 113.替换Map条目178 114.比较两个Map 179 115.对Map进行排序180 116.复制HashMap182 117.合并两个Map 183 118.移除集合中所有符合谓词条件的元素184 119.将集合转换为数组186 120.使用列表筛选集合187 121.替换列表元素188 122.线程**的集合、栈和队列189 123.广度优先搜索(BFS)193 124.前缀树(Trie)195 125.元组(Tuple)198 126.并查集200 127.芬威克树或二进制索引树203 128.布隆过滤器206 小结209 第6章 Java I/O路径、文件、缓存、扫描和格式化210 问题210 解决方案211 129.创建文件路径211 130.变换文件路径214 131.拼接文件路径215 132.通过两个路径创建相对路径216 133.比较文件路径217 134.轮询路径218 135.监听路径225 136.流式获取文件文本内容228 137.在文件树中搜索文件或文件夹228 138.**读写文本文件230 139.**读写二进制文件235 140.大文件搜索239 141.将一个JSON/CSV文件作为一个对象读取241 142.处理临时文件和文件夹245 143.过滤文件249 144.判断两个文件是否不匹配252 145.循环字节缓冲区254 146.标记解析文件259 147.将格式化输出直接写入文件263 148.使用Scanner265 小结268 第7章 Java反射类、接口、构造函数、方法和字段269 问题269 解决方案270 149.检查包270 150.检查类和超类273 151.通过反射构造函数实例化279 152.获取参数上的注解282 153.获取合成构造函数283 154.检查可变参数284 155.检查默认方法285 156.通过反射实现基于嵌套的访问控制285 157.面向getter和setter使用反射288 158.反射与注解294 159.调用实例方法299 160.获取静态方法300 161.获取方法、字段和异常的泛型301 162.获取公共字段和私有字段304 163.处理数组305 164.检查模块306 165.动态代理307 小结310 第8章 函数式编程:基础与设计模式311 问题311 解决方案311 166.编写函数式接口312 167. Lambda简介317 168.实现环绕执行模式318 169.实现工厂模式320 170.实现策略模式322 171.实现模板方法模式323 172.实现观察者模式325 173.实现贷出模式327 174.实现装饰器模式329 175.实现级联建造者模式332 176.实现命令模式333 小结335 第9章 函数式编程:进阶336 问题336 解决方案337 177.测试高阶函数337 178.测试使用Lambda表达式的方法338 179.调试Lambda表达式340 180.过滤流中的非0元素342 181.无限流、takeWhile()和dropWhile()344 182.映射流中的元素351 183.找出流中的元素356 184.匹配流中元素357 185.流中的sum、max和min操作359 186.收集流的返回结果362 187.连接流的返回结果364 188.聚合收集器365 189.分组(grouping)369 190.分区(partitioning)376 191. filtering、flattening和mapping收集器379 192. teeing382 193.编写自定义收集器385 194.方法引用389 195.并行处理流391 196. null-safe流395 197.组合方法、谓词和比较器397 198.默认方法402 小结403 第10章 并发:线程池、Callable接口以及同步器404 问题404 解决方案405 199.线程生命周期状态405 200.对象级锁与类级锁的对比410 201. Java中的线程池413 202.单线程的线程池417 203.拥有固定线程数量的线程池423 204.带缓存和调度的线程池424 205.工作窃取(work-stealing)线程池430 206. Callable和Future435 207.调用多个Callable任务440 208.锁存器(latch)442 209.屏障(barrier)445 210.交换器(exchanger)448 211.信号量(semaphore)451 212.移相器(phaser)453 小结458 第11章 并发:深入探讨459 问题459 解决方案460 213.可中断方法460 214. fork/join框架463 215. fork/join框架和compareAndSetForkJoinTaskTag()469 216. CompletableFuture472 217.组合多个CompletableFuture实例486 218.优化忙等待490 219.任务的取消491 220.线程局部存储(ThreadLocal)492 221.原子变量496 222.可重入锁(ReentrantLock)500 223.可重入读写锁(ReentrantReadWriteLock)503 224.邮戳锁(StampedLock)505 225.死锁(哲学家就餐问题)508 小结511 第12章 Optional512 问题512 解决方案513 226.初始化Optional513 227. Optional.get()和值丢失514 228.返回一个预先构造的默认值514 229.返回一个不存在的默认值515 230.抛出NoSuchElementException异常516 231. Optional和null引用517 232.消费一个存在内容的Optional类518 233.根据情况返回一个给定的Optional类(或另一个Optional类)519 234.通过orElseFoo()链接多个Lambda表达式519 235.不要只是为了获取一个值而使用Optional521 236.不要将Optional用于字段521 237.不要将Optional用于构造函数的参数522 238.不要将Optional用于setter类方法的参数523 239.不要将Optional用于方法的参数524 240.不要将Optional用于返回空的或者null的集合或数组526 241.避免在集合中使用Optional527 242.将of()和ofNullable()搞混淆528 243. Optional与OptionalInt529 244.确定Optional的相等性529 245.通过map()和flatMap()转换值530 246.通过Optional.filter()过滤值532 247.链接Optional和Stream API532 248. Optional和识别敏感类操作534 249.在Optional的内容为空时返回布尔值535 小结535 第13章 HTTP Client和WebSocket API536 问题536 解决方案537 250. HTTP/2537 251.触发一次异步GET请求538 252.设置一个代理540 253.设置/获取请求头540 254.指定HTTP方式542 255.设置请求体543 256.设置连接身份认证545 257.设置请求超时546 258.设置重定向策略546 259.发送同步和异步请求547 260.处理cookie549 261.获取响应信息550 262.处理响应的请求体类型550 263.获取、更新和保存JSON552 264.压缩555 265.处理表单数据556 266.下载资源557 267.使用multipart上传558 268. HTTP/2的服务器端推送561 269. WebSocket564 小结566

    与描述相符

    100

    北京 天津 河北 山西 内蒙古 辽宁 吉林 黑龙江 上海 江苏 浙江 安徽 福建 江西 山东 河南 湖北 湖南 广东 广西 海南 重庆 四川 贵州 云南 西藏 陕西 甘肃 青海 宁夏 新疆 台湾 香港 澳门 海外