欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • Java学习笔记(第6版)
      • 作者:林信良|责编:王军//刘远菁
      • 出版社:清华大学
      • ISBN:9787302686965
      • 出版日期:2025/05/01
      • 页数:644
    • 售价:55.92
  • 内容大纲

        本书是作者十多年教学经验的总结,汇集了学员在学习过程中或认证考试中遇到的关于概念、实验、应用等方面的问题及解决方案。
        本书基于Servlet 4.0/Java SE 15,对代码进行了重新审查与更新,涵盖Java 15 - 17的文本块、模式比对、record/sealed等新特性,并介绍OWASP TOP 10、CWE、CVE,讨论注入攻击、会话安全、密码管理、Java EE安全机制、CSRF等Web安全概念。必要时从Java SE API的源代码开始分析,介绍各种语法在Java SE API中的应用。本书还添加了关于Spring的内容,包含Spring DI/AOP、Spring MVC、Spring Security等,以及Spring Boot快速开发方案的使用,涵盖中文处理、图片验证、自动登录、验证过滤器、压缩处理、在线资料管理、邮件发送等领域的实用案例。此外,本书还提供丰富的练习示例,让你更好地掌握学习重点,并详细介绍IDE的使用,使你可以快速将所学知识应用于工作中。
        本书适合Java的初、中级读者以及广大Java应用开发人员阅读。
  • 作者介绍

        林信良(网名:良葛格),毕业于台湾大学电机工程学系。擅长技术写作、翻译与教育培训。喜好研究程序语言、框架、社群,从中学习设计、典范及文化,并利用闲暇之余记录所学技术,涵盖C/C++、Java、Ruby/Rails、Python、JavaScript、Haskell、OpenSCAD等领域。目前出版的著作有《JSP & Servlet学习笔记(第2版)》《Spring技术手册》《Java JDK 8学习笔记》等,译作有《Ajax实战手册》《jQuery实战手册(第2版)》。
  • 目录

    第1章  Java平台概述
      1.1  Java不只是语言
        1.1.1  Java的前世今生
        1.1.2  三大平台
        1.1.3  JCP与JSR
        1.1.4  Oracle JDK与OpenJDK
      1.2  JVM/JRE/JDK
        1.2.1  什么是JVM
        1.2.2  JRE与JDK
        1.2.3  下载并安装JDK
        1.2.4  了解JDK安装内容
    第2章  从JDK到IDE
      2.1  从“Hello,World”开始
        2.1.1  编写Java源代码
        2.1.2  PATH是什么
        2.1.3  JVM(java)与CLASSPATH
        2.1.4  编译器(javac)与CLASSPATH
      2.2  管理源代码和字节码文件
        2.2.1  编译器(javac)与SOURCEPATH
        2.2.2  通过package对类进行管理
        2.2.3  使用import简化操作
      2.3  初识模块平台系统
        2.3.1  JVM(java)与module-path
        2.3.2  编译器(javac)与module-path
        2.3.3  编译器(javac)与module-source-path
      2.4  使用IDE
        2.4.1  IDE项目管理基础
        2.4.2  使用了哪个JRE
        2.4.3  类文件版本
    第3章  基础语法
      3.1  类型、变量和运算符
        3.1.1  类型
        3.1.2  变量
        3.1.3  运算符
        3.1.4  处理类型
      3.2  流程控制
        3.2.1  if...else条件表达式
        3.2.2  switch条件表达式
        3.2.3  for循环
        3.2.4  while循环
        3.2.5  break和continue
      课后练习
    第4章  认识对象
      4.1  类与实例
        4.1.1  定义类
        4.1.2  使用标准类
        4.1.3  对象赋值与相等性
      4.2  基本类型包装器
        4.2.1  包裹基本类型
        4.2.2  自动装箱与拆箱

        4.2.3  自动装箱与拆箱的内幕
      4.3  数组对象
        4.3.1  数组基础
        4.3.2  操作数据对象
        4.3.3  复制数组
      4.4  字符串对象
        4.4.1  字符串基础
        4.4.2  字符串特性
        4.4.3  文本块
        4.4.4  源代码编码
        4.4.5  Java与Unicode
      4.5  查询Java API文档
      课后练习
    第5章  对象封装
      5.1  什么是封装
        5.1.1  封装对象初始流程
        5.1.2  对象封装的操作流程
        5.1.3  封装对象的内部数据
      5.2  类的语法细节
        5.2.1  public权限设定
        5.2.2  关于构造函数
        5.2.3  构造函数与方法重载
        5.2.4  使用this
        5.2.5  static类成员
        5.2.6  变长参数
        5.2.7  内部类
      课后练习
    第6章  继承与多态
      6.1  什么是继承
        6.1.1  继承共同行为与实现
        6.1.2  多态与从属
        6.1.3  重新定义实现
        6.1.4  抽象方法、抽象类
      6.2  继承语法细节
        6.2.1  protected成员
        6.2.2  覆盖的细节
        6.2.3  再看构造函数
        6.2.4  再看final关键字
        6.2.5  java.lang.Object
        6.2.6  关于垃圾收集
        6.2.7  再看抽象类
      课后练习
    第7章  接口与多态
      7.1  什么是接口
        7.1.1  使用接口定义行为
        7.1.2  行为的多态
        7.1.3  解决需求变化
      7.2  接口的语法细节
        7.2.1  接口的默认设定
        7.2.2  匿名内部类

        7.2.3  使用enum列举常量
      课后练习
    第8章  异常处理
      8.1  语法与继承架构
        8.1.1  使用try、catch
        8.1.2  异常继承架构
        8.1.3  要抓还是要抛
        8.1.4  贴心还是制造麻烦
        8.1.5  了解堆栈跟踪
        8.1.6  关于assert
      8.2  异常与资源管理
        8.2.1  使用finally
        8.2.2  自动尝试关闭资源
        8.2.3  java.lang.AutoCloseable接口
    课后习题
    第9章  Collection与Map
      9.1  使用Collection收集对象
        9.1.1  认识Collection架构
        9.1.2  带有索引的List
        9.1.3  内容不重复的Set
        9.1.4  支持队列操作的Queue
        9.1.5  使用泛型
        9.1.6  Lambda表达式简介
        9.1.7  Iterable与Iterator
        9.1.8  Comparable与Comparator
      9.2  键值对与Map
        9.2.1  常用Map实现的类
        9.2.2  遍历Map键值
      9.3  不可变的Collection与Map
        9.3.1  不可变特性简介
        9.3.2  Collections的unmodifiableXXX()方法
        9.3.3  List、Set、Map的of()方法
      课后练习
    第10章  输入/输出
      10.1  InputStream与OutputStream
        10.1.1  流设计概念
        10.1.2  流继承架构
        10.1.3  流处理包装器
      10.2  字符处理类
        10.2.1  Reader与Writer继承架构
        10.2.2  字符处理装饰器
      课后练习
    第11章  线程与并行API
      11.1  线程
        11.1.1  线程简介
        11.1.2  Thread与Runnable
        11.1.3  线程生命周期
        11.1.4  关于ThreadGroup
        11.1.5  synchronized与volatile
        11.1.6  等待与通知

      11.2  并行API
        11.2.1  Lock、ReadWriteLock与Condition
        11.2.2  使用Executor
        11.2.3  并行Collection简介
      课后练习
    第12章  Lambda
      12.1  认识Lambda语法
        12.1.1  Lambda语法概览
        12.1.2  Lambda表达式与函数式接口
        12.1.3  当Lambda遇上this与final时
        12.1.4  方法与构造函数引用
        12.1.5  接口默认方法
      12.2  Functional与Stream API
        12.2.1  使用Optional取代null
        12.2.2  标准API的函数式接口
        12.2.3  使用Stream进行管道操作
        12.2.4  对Stream进行reduce与collect
        12.2.5  关于flatMap()方法
        12.2.6  与Stream相关的API
        12.2.7  活用Optional与Stream
      12.3  Lambda、并行化与异步处理
        12.3.1  Stream与并行化
        12.3.2  Arrays与并行化
        12.3.3  通过CompletableFuture进行异步处理
      课后练习
    第13章  时间与日期
      13.1  认识时间与日期
        13.1.1  衡量时间
        13.1.2  年历简介
        13.1.3  认识时区
      13.2  认识Date与Calendar
        13.2.1  时间轴上瞬间的Date
        13.2.2  处理时间与日期的Calendar
      13.3  新时间与日期API
        13.3.1  机器时间观点的API
        13.3.2  人类时间观点的API
        13.3.3  对时间的运算
        13.3.4  年历系统设计
      课后练习
    第14章  NIO与NIO
      14.1  认识NIO
        14.1.1  NIO概述
        14.1.2  Channel架构与操作
        14.1.3  Buffer架构与操作
      14.2  NIO2文件系统
        14.2.1  NIO2架构
        14.2.2  操作路径
        14.2.3  属性读取与设定
        14.2.4  操作文件与文件夹
        14.2.5  读取、访问文件夹

        14.2.6  过滤、搜索文件
      课后练习
    第15章  通用API
      15.1  日志
        15.1.1  日志API简介
        15.1.2  指定日志层级
        15.1.3  使用Handler与Formatter
        15.1.4  自定义Handler、Formatter与Filter
        15.1.5  使用logging.properties
      15.2  HTTP Client API
        15.2.1  浅谈URI与HTTP
        15.2.2  HTTP Client API入门
        15.2.3  发送请求信息
      15.3  正则表达式
        15.3.1  正则表达式简介
        15.3.2  quote()与quoteReplacement()
        15.3.3  Pattern与Matcher
        15.3.4  Unicode正则表达式
      15.4  处理数字
        15.4.1  使用BigInteger
        15.4.2  使用BigDecimal
        15.4.3  数字的格式化
      15.5  再谈堆栈跟踪
        15.5.1  获取StackTraceElement
        15.5.2  Stack-Walking API
      课后练习
    第16章  整合数据库
      16.1  JDBC入门
        16.1.1  JDBC简介
        16.1.2  连接数据库
        16.1.3  使用Statement、ResultSet
        16.1.4  使用PreparedStatement、CallableStatement
      16.2  JDBC高级应用
        16.2.1  使用DataSource取得连接
        16.2.2  使用ResultSet查看、更新数据
        16.2.3  批量更新
        16.2.4  Blob与Clob
        16.2.5  事务简介
        16.2.6  metadata简介
      课后练习
    第17章  反射与类加载器
      17.1  使用反射
        17.1.1  Class与.class文件
        17.1.2  使用Class.forName()
        17.1.3  从Class创建对象
        17.1.4  从Class获得信息
        17.1.5  操作对象的方法与成员
        17.1.6  动态代理
        17.1.7  反射与模块
        17.1.8  使用ServiceLoader

      17.2  了解类加载器
        17.2.1  类加载器层级
        17.2.2  创建ClassLoader实例
      课后练习
    第18章  自定义泛型、列举与标注
      18.1  自定义泛型
        18.1.1  使用extends与
        18.1.2  使用super与
      18.2  自定义列举
        18.2.1  成员的细节
        18.2.2  构造函数、方法与接口
      18.3  record与sealed
        18.3.1  深入了解record类
        18.3.2  sealed的类型层级
      18.4  关于标注
        18.4.1  常用标准标注
        18.4.2  自定义标注类型
        18.4.3  运行时读取标注信息
      课后练习
    第19章  深入了解模块化
      19.1  使用模块
        19.1.1  模块的种类
        19.1.2  requires、exports与opens的细节说明
        19.1.3  补丁模块
        19.1.4  放宽模块封装与依赖
      19.2  模块API
        19.2.1  使用Module
        19.2.2  使用ModuleDescriptor
        19.2.3  浅谈ModuleLayer
      19.3  打包模块
        19.3.1  使用jar打包
        19.3.2  使用JMOD进行打包
        19.3.3  使用jlink建立运行时镜像
    附录  如何使用本书项目