奇迹小说
Java无难事——详解Java编程核心思想与技术(第2版)

Java无难事——详解Java编程核心思想与技术(第2版)

作者: 孙鑫 著

42.03万63人 正在读

已完结现代当代当代文学
作品简介

《Java无难事》让你学习Java再无难事!本书系统地讲解了Java开发人员需要掌握的核心知识,按照中国人的思维习惯,由浅入深、循序渐进、引导式地带领你快速掌握Java知识。 《Java无难事——详解Java编程核心思想与技术(第2版)》秉承作者一贯的写作风格,对知识的讲解让你知其然且知其所以然。 《Java无难事——详解Java编程核心思想与技术(第2版)》语言通俗易懂、幽默风趣,在内容安排上由浅入深,在知识讲解上深入浅出,为你节省脑细胞,让你轻松愉快地掌握Java知识。看书累了,没关系,还有视频。同步学习视频并不是书中内容的重复,而是有力的补充和完善。 《Java无难事——详解Java编程核心思想与技术(第2版)》还讲解了依赖注入(IoC/DI)容器、面向切面编程(AOP)、对象关系映射(ORM)框架的实现原理,同时还给出了并发编程领域中经常用到的线程池的实现。 《Java无难事——详解Java编程核心思想与技术(第2版)》涵盖了从Java 5到Java 11的所有重要新特性,不仅适合初学Java编程的读者,也适合有一定经验的读者,甚至对于正在从事Java开发工作的读者也适用。

目录 (657章)
倒序
正文
1.1Java的起源1.2Java能做什么1.3相关概念1.3.1JDK1.3.2Java家族的三个成员1.3.3Java1、Java2和Java51.3.4JRE1.4安装JDK1.4.1下载JDK11(JavaSE11)1.4.2安装JDK1.4.3下载帮助文档1.5Java的特性1.5.1简单1.5.2面向对象1.5.3健壮1.5.4安全1.5.5结构中立1.5.6可移植1.5.7高性能1.5.8解释执行1.5.9平台无关1.5.10多线程1.5.11动态1.6Java跨平台的原理1.6.1Java源文件的编译过程1.6.2Java解释器运行机制1.6.3Java字节码的执行方式1.6.4理解JVM1.7.1了解JDK1.8.1有用的PATH1.8.2难缠的CLASSPATH1.9交互式编程环境JShell1.10.1JAR文件1.10.2将字节码文件打包到JAR包中1.10.4清单文件1.11总结1.12实战练习2.1标识符2.2数据类型2.2.1整数类型2.2.2浮点类型2.2.3字符(char)型2.2.4布尔(boolean)型2.2.5String类型2.3.1变量2.3.2字面常量2.4类型转换的奥秘2.5运算符2.5.1赋值运算符2.5.2自增和自减运算符2.5.3算术运算符2.5.4关系运算符2.5.5布尔运算符2.5.6位运算符2.5.7移位运算符2.5.8一元和二元运算符2.5.9三元运算符2.5.10优先级2.6表达式与语句2.7.1分支语句2.7.2循环语句2.8数组2.8.1数组类型与声明数组2.8.2创建数组2.8.3使用数组2.8.4匿名数组2.8.5多维数组2.8.6数组的初始值和越界2.9分隔符2.10注释2.10.1传统注释2.10.2JavaDoc注释2.11Java中的关键字2.12总结2.13实战练习3.1面向对象思想3.2对象的状态和行为3.2.1对象都有一组固定的行为3.2.2注意思维习惯3.3面向对象编程的难点3.4Java的类与对象3.5字段(field)与方法3.5.1字段3.5.2方法3.5.3方法的参数与返回值3.6构造方法与new关键字3.7方法重载3.8特殊变量this3.9.1静态字段3.9.2静态方法3.9.3static语句块3.10常量3.11.1原始的枚举实现3.11.2枚举类型3.11.3枚举值的比较3.11.4自定义枚举值3.12总结3.13实战练习第4章高级面向对象编程4.1继承4.2方法的覆盖(override)4.3.1何为多态4.3.2多态的实际应用4.3.3Java编译器如何实现多态4.3.4类型转换4.3.5协变返回类型4.3.6在构造方法中调用被覆盖的方法4.4特殊变量super4.4.1访问父类被子类覆盖的方法或隐藏的变量4.4.2调用父类构造方法4.5封装与private4.6对外发布的接口——public4.7再谈final4.7.1final类4.7.2final方法4.7.3final参数4.8对象的销毁4.9面向对象的四个基本特性4.10总结4.11实战练习第5章包和访问控制5.1在包中的类5.2导入类5.3静态导入5.4静态导入枚举类型5.5访问控制5.5.1类的访问说明符5.5.2类成员的访问说明符5.6总结5.7实战练习第6章抽象类与接口6.1抽象方法和抽象类6.2接口6.3接口中的数据成员6.4接口的继承与实现6.5接口的应用6.6深入接口——通信双方的协议6.7接口的默认方法和静态方法6.7.1默认方法6.7.2静态方法6.8接口的私有方法6.9总结6.10实战练习第7章内部类(InnerClass)7.1创建内部类7.2访问外部类7.3内部类与接口7.4局部内部类7.5.1创建匿名内部类7.5.2匿名内部类的构造方法7.6静态内部类7.7.1内部类的继承7.7.2内部类的覆盖7.8内部类规则总结7.9.1回调(callback)7.9.2事件(event)7.10总结7.11实战练习第8章异常处理8.1什么是异常8.2捕获异常8.3使用finally进行清理8.4抛出异常与声明异常8.5RuntimeException8.6创建自己的异常体系结构8.7try-with-resources8.7.1自动关闭资源8.7.2声明多个资源8.7.3catch多个异常8.7.4使用更具包容性的类型检查重新抛出异常8.8总结8.9实战练习第9章深入字符串9.1String类9.2==运算符与equals方法9.3compareTo方法9.4字符串拼接9.5操作字符串9.5.1获取字符串的长度9.5.2查找字符或字符串9.5.3判断字符串的开始与结尾9.5.4获取指定索引位置的字符9.5.5截取子字符串9.5.6分割字符串9.5.7替换字符或字符串9.5.8合并字符串9.5.9重复字符串9.5.10大小写转换9.5.11去除字符串首尾空白9.5.12判断字符串是否为空9.5.13提取字符串的行流9.5.14与字节数组相互转换9.6StringBuffer类和StringBuilder类9.7格式化输出9.7.1格式说明符9.7.2参数索引9.7.3格式说明字符9.7.4宽度和精度9.7.5标志字符9.7.6生成格式化的String对象9.8正则表达式9.8.1正则表达式的优点9.8.2一切从模式开始9.8.3创建正则表达式9.8.4量词9.8.5String类的正则表达式方法9.8.6Pattern和Matcher9.8.7邮件地址验证9.8.8获取组匹配的内容9.8.9替换字符串9.9总结9.10实战练习第10章Java应用10.1再论引用类型10.1.1引用类型——数组10.1.2方法传参10.2操作数组10.2.1数组的复制10.2.3搜索数组中的元素10.2.4填充数组10.3基本数据类型与封装类10.3.1基本数据类型与封装类对象的互相转换10.3.2封装类对象与字符串的互相转换10.3.3基本数据类型与字符串的互相转换10.3.4自动装箱与拆箱10.4对象的克隆10.5国际化与本地化10.5.1Locale10.5.2资源包10.5.3消息格式化10.6总结10.7实战练习第11章泛型11.1为什么需要泛型11.2泛型与基本数据类型11.3泛型类中的数组11.4元组11.5泛型接口11.5.1一个简单的泛型接口11.5.2匿名内部类实现泛型接口11.5.3map机制的实现11.6泛型方法11.6.1简单的泛型方法11.6.2完善映射机制的实现11.7通配符类型11.7.1通配符的子类型限定11.7.2通配符的超类型限定11.8类型参数的限定11.9深入泛型机制11.10泛型的一些问题11.10.1接口的二次实现11.10.2方法重载11.10.3泛型类型的实例化11.10.4异常11.11使用泛型的限制11.12类型参数的命名约定11.13总结11.14实战练习第12章Lambda表达式12.1理解Lambda表达式12.2Lambda表达式的语法12.3函数式接口12.4内置函数式接口12.5方法引用12.6构造方法引用12.7数组引用12.8总结12.9实战练习第13章集合类13.1集合框架中的接口与实现类13.1.1集合框架中的接口13.1.2集合框架中的实现类13.1.3Collection类型的集合13.1.4Map类型的集合13.2迭代13.2.1Iterator接口13.2.2迭代器与“foreach”循环13.2.3新增的forEach方法13.2.4ListIterator接口13.2.5迭代与回调13.3数据结构简介13.3.1链表13.3.2栈13.3.3队列13.4List13.4.1ArrayList13.4.2LinkedList13.4.3List集合类的性能13.5Set13.5.1HashSet13.5.2TreeSet13.5.3LinkedHashSet13.5.4Set集合类的性能13.6Queue13.6.1Queue接口13.6.2PriorityQueue类13.6.3Deque接口13.7Collections类13.7.2获取最大和最小元素13.7.3在集合中搜索13.7.4获取包装器集合13.8再探Comparator接口13.9深入Map类型13.9.1Map接口13.9.2Map的工作原理13.9.3HashMap13.9.4TreeMap13.9.5LinkedHashMap13.9.6Map性能测试13.10遗留的集合13.10.1Enumeration接口13.10.2Vector类13.10.3Stack类13.10.4Hashtable类13.10.5Properties类13.10.6BitSet类13.11.1of方法13.11.2copyOf方法13.12总结13.13实战练习第14章Stream14.1什么是Stream14.2创建流14.3并行流与串行流14.5中间操作14.5.1筛选和截断14.5.2映射14.5.4peek14.6终端操作14.6.1遍历14.6.2查找与匹配14.6.3最大/最小与计数14.6.4收集统计信息14.6.5reduce14.6.6collect14.7并行流的性能14.8总结14.9实战练习第15章Class类与反射API15.1Class<T>类15.2获取类型信息15.2.1获取方法和字段信息15.2.2获取基类和接口信息15.2.3获取枚举信息15.2.4获取泛型信息15.2.5获取注解信息15.3检测类型15.4使用Class和反射创建类的对象15.5使用反射调用对象的方法15.6使用反射修改对象的字段15.7依赖注入容器15.8动态代理15.9ClassLoader15.9.1类加载器的分类15.9.2类加载器的加载机制15.9.3自定义类加载器15.10适可而止15.11方法句柄15.12服务加载器15.13总结15.14实战练习第16章注解(Annotation)16.1预定义的注解16.1.1@Override16.1.2@Deprecated16.1.3@SuppressWarnings16.1.4@SafeVarargs16.1.5@FunctionalInterface16.2自定义注解16.3元注解16.3.1@Documented16.3.2@Retention16.3.3@Target16.3.4@Inherited16.3.5@Repeatable16.4注解与反射16.5编写注解处理器16.5.1依赖注入容器的注解实现16.5.2使用注解生成数据库表16.6总结16.7实战练习第17章多线程17.1.2线程17.2Java对多线程的支持17.3Java线程17.3.1Thread类17.3.2创建任务17.3.3让步17.3.4休眠17.3.5优先级17.3.6加入一个线程17.3.7捕获线程的异常17.3.8后台线程17.3.9线程组17.3.10线程的状态17.4线程同步17.4.1错误地访问共享资源17.4.2同步语句块17.4.3同步方法17.4.4死锁17.5线程本地存储17.5.1使用ThreadLocal类17.5.2ThreadLocal的实现原理17.6生产者与消费者17.7线程的终止17.7.1取消一个任务17.7.2在阻塞中中止17.7.3注意清理17.8线程池17.9总结17.10实战练习第18章Java常用工具类18.1java.lang.Math类18.2随机数18.2.1Math.random方法18.2.2Random类18.2.3ThreadLocalRandom类18.3大数字运算18.3.1BigInteger18.3.2BigDecimal18.4日期时间工具18.4.1Date类18.4.2DateFormat类18.4.3SimpleDateFormat类18.4.4Calendar类18.5Java8新增的日期/时间API18.5.1新的日期/时间类18.5.2构造日期/时间对象18.5.3格式化和解析日期/时间字符串18.5.4操作日历字段18.5.5计算时间间隔18.5.6使用Instant计算某项操作花费的时间18.5.7判断闰年18.5.8与Date和Calendar的相互转换18.6Optional类18.6.1创建Optional类的实例18.6.2判断Optional的值是否存在18.6.3获取Optional的值18.6.4过滤与映射18.6.5得到Stream对象18.6.6为什么要使用Optional18.6.7OptionalInt、OptionalLong和OptionalDouble18.7Base64编解码18.8Timer类18.9Runtime类与单例设计模式18.10总结18.11实战练习第19章JavaI/O操作19.1File类19.1.1分隔符19.1.2创建文件夹19.1.3文件操作19.1.5移动文件19.1.6临时文件19.2流式I/O19.3输入/输出流19.3.1InputStream19.3.2OutputStream19.3.3字节数组输入/输出流19.3.4文件输入/输出流19.3.5过滤流19.3.6缓冲的输入/输出流19.3.7数据输入/输出流19.3.8管道流19.3.9复制文件19.4JavaI/O库的设计原则19.5Reader和Writer19.6InputStreamReader和OutputStreamWriter19.7字符集与中文乱码问题19.7.1字符集(1)19.7.1字符集(2)19.7.1字符集(3)19.7.2对乱码产生过程的分析19.7.3Charset类19.8RandomAccessFile类19.9标准I/O19.9.1从标准输入中读取数据19.9.2Scanner19.9.3I/O重定向19.10.5替换对象19.11NIO19.11.1缓冲区(Buffer)19.11.2通道(Channel)19.11.3使用通道复制文件19.11.4视图缓冲区19.11.6直接和非直接缓冲区19.11.7分散和聚集19.11.8字符缓冲区的问题19.11.9内存映射文件19.11.10对文件加锁19.11.11管道19.12Files类与Path接口19.12.1Path接口19.12.2读写文件19.12.4小结19.13异步文件通道19.13.1写入数据19.13.2读取数据19.14总结19.15实战练习第20章Java并发编程20.1Callable和Future接口20.2新的任务执行框架20.2.1Executor接口20.2.2ExecutorService接口20.2.3Executors工具类20.2.4ThreadFactory20.2.5ScheduledExecutorService20.2.6批量执行任务20.2.7CompletionService接口20.2.8ThreadPoolExecutor类20.3锁对象20.3.1Lock接口20.3.2重入互斥锁20.3.3读写锁20.3.4StampedLock20.4条件对象20.5同步工具类20.5.1CountDownLatch20.5.2CyclicBarrier20.5.3Semaphore20.5.4Exchanger20.6线程安全的集合20.6.1写时拷贝20.6.2阻塞队列20.6.3延迟队列20.6.4传输队列20.6.5ConcurrentHashMap20.6.6ConcurrentSkipListMap20.7Fork/Join框架20.8CompletableFuture20.8.1异步执行任务20.8.2构造异步任务链20.8.3结果转换20.8.4组合异步任务20.8.5任务链完成时的结果处理和异常处理20.9原子操作20.9.1AtomicInteger类20.9.2LongAdder20.10变量句柄20.11总结20.12实战练习第21章Eclipse开发工具21.1Eclipse简介21.2下载并安装21.3Eclipse开发环境介绍21.4配置Eclipse21.4.1配置JDK21.4.2配置字体21.4.3配置和使用快捷键21.4.4配置字符集21.6调试代码21.7JUnit单元测试21.8导入现有的Eclipse项目21.9总结21.10实战练习第22章图形界面编程22.1AWT22.1.2关闭窗口22.1.3向窗口内添加组件22.2布局管理器22.2.1BorderLayout22.2.2FlowLayout22.2.3GridLayout22.2.4CardLayout22.2.5GridBagLayout22.2.6组合多个布局管理器22.3事件模型22.3.1按钮点击事件的处理22.3.2事件监听器22.3.3观察者模式22.4Swing22.4.1基本的框架窗口22.4.2添加文本域和菜单栏22.4.3菜单功能22.4.4弹出菜单22.5Swing与并发22.6.1安装WindowBuilder22.6.2用户登录界面22.6.3注册事件监听器22.7总结22.8实战练习23.1网络基础知识23.1.1计算机网络23.1.2IP地址23.1.3协议23.1.4网络的状况23.1.5网络异质性问题的解决23.1.6ISO/OSI七层参考模型23.1.7数据封装23.1.8TCP/IP模型23.1.9端口23.1.10套接字(Socket)23.1.11客户机/服务器模式23.2基于TCP的套接字编程23.2.4套接字超时23.3基于UDP的套接字编程23.3.1接收端23.3.2发送端23.3.3获取发送端的信息23.4非阻塞的套接字编程23.4.1SocketChannel23.4.2ServerSocketChannel23.4.3Selector23.5URL和URLConnection23.5.1URL类23.5.2URLConnection类23.6HTTPClientAPI23.6.1HttpClient23.6.2HttpRequest23.6.3HttpResponse23.6.4异步发送多个请求23.6.5启用HttpClient的日志记录功能23.7总结23.8实战练习第24章数据库访问24.1.1JDBC-ODBC桥24.2安装数据库24.3下载MySQLJDBC驱动24.4JDBCAPI24.5加载并注册数据库驱动24.5.1Driver接口24.5.2加载与注册JDBC驱动24.5.3服务加载24.6建立到数据库的连接24.7访问数据库24.7.1Statement24.7.2ResultSet24.7.3PreparedStatement24.7.4CallableStatement24.7.5元数据24.8事务处理24.9可滚动和可更新的结果集24.9.1可滚动的结果集24.9.2可更新的结果集24.10行集24.10.1行集的标准实现24.10.2行集的事件模型24.10.3CachedRowSet24.11JDBC数据源和连接池24.12总结24.13实战练习第25章Java平台模块系统25.1Java平台的模块25.2模块的物理结构25.3创建模块25.4模块依赖25.5导出包25.6可传递的模块与静态依赖25.7开放包25.8限定导出和开放25.9服务加载25.10未命名模块25.11自动模块25.12为什么要引入模块系统25.13总结25.14实战练习
精选推荐
领导力法则

领导力法则

[中国纺织出版社]

陆禹萌

已完结当代文学

销售心理学

销售心理学

[中国纺织出版社]

兰华

已完结当代文学

销售就是玩转情商

销售就是玩转情商

[中国纺织出版社]

王威

已完结当代文学

销售员情商实战训练

销售员情商实战训练

成功的销售需要高智商,更需要高情商。一个销售员的销售业绩,往往与他的情商成正比。本书从十个方面详细讲述了有效运用情商,提高销售业绩的方法和技巧。通过实际销售案例和销售心理学理论指导,以及实战点拨和情商拓展训练,帮助读者全方位、快速提高情商。故事性、多版块、碎片化的内容设置,有效降低读者阅读疲劳,提高阅读兴趣,不论是奔波在路上的销售小白,还是带领团队奋勇向前的销售经理,都能从中找到适合自己的销售软技巧。

刘军

已完结当代文学

让未来的你,感谢现在勇敢的自己

让未来的你,感谢现在勇敢的自己

[中国纺织出版社]

王介威

已完结当代文学

行为心理学:华生的实用心理学课

行为心理学:华生的实用心理学课

[中国纺织出版社]

(美)约翰·华生著.倪彩

已完结当代文学

行为心理学入门(完全图解版)

行为心理学入门(完全图解版)

行为心理学入门(完全图解版)是以作者多来年的心理辅导和咨询数据为素材,对现实生活中的行为心理学应用进行了形象、深入、全面的论述和解读。本书与日本心理学图解书形式相同,浅显易读,有趣又益。

武莉

已完结当代文学

自卑与超越

自卑与超越

《自卑与(全译插图典藏版)》是个体心理学研究领域的著作,也是人本主义心理学先驱阿尔弗雷德·阿德勒的很好著作。阿德勒的学说以“自卑感”与“创造性自我”为中心,并强调“社会意识”。全书立足个人心理学的观点,从教育、家庭、婚姻、伦理、社交等多个领域,以大量的实例为论述基础,阐明了人生意义的真谛,帮助人们克服自卑、不断超自己,正确对待职业,正确理解社会与性。本书直接促进了亲子教育、人格培养、婚姻与爱情、职业生涯、家庭建设、人际关系等诸多领域的长足发展,成为人们了解心理学的经典读物。

(奥)阿尔弗雷德·阿德勒

已完结当代文学

自制力:道理我都懂,为什么就是过不好人生

自制力:道理我都懂,为什么就是过不好人生

[中国纺织出版社]

邱开杰

已完结当代文学