‘壹’ spring aop静态和动态的区别
原理
AOP(Aspect Oriented Programming),也就是面向方面编程的技术。AOP基于IoC基础,是对OOP的有益补充。
AOP将应用系统分为两部分,核心业务逻辑(Core business concerns)及横向的通用逻辑,也就是所谓的方面Crosscutting enterprise concerns,例如,所有大中型应用都要涉及到的持久化管理(Persistent)、事务管理(Transaction Management)、安全管理(Security)、日志管理(Logging)和调试管理(Debugging)等。
AOP正在成为软件开发的下一个光环。使用AOP,你可以将处理aspect的代码注入主程序,通常主程序的主要目的并不在于处理这些aspect。AOP可以防止代码混乱。
Spring framework是很有前途的AOP技术。作为一种非侵略性的、轻型的AOP framework,你无需使用预编译器或其他的元标签,便可以在Java程序中使用它。这意味着开发团队里只需一人要对付AOP framework,其他人还是像往常一样编程。
AOP概念
让我们从定义一些重要的AOP概念开始。
— 方面(Aspect):一个关注点的模块化,这个关注点实现可能另外横切多个对象。事务管理是J2EE应用中一个很好的横切关注点例子。方面用Spring的Advisor或拦截器实现。
— 连接点(Joinpoint):程序执行过程中明确的点,如方法的调用或特定的异常被抛出。
— 通知(Advice):在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”、“before”和“throws”通知。通知类型将在下面讨论。许多AOP框架包括Spring都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。
— 切入点(Pointcut):指定一个通知将被引发的一系列连接点的集合。AOP框架必须允许开发者指定切入点,例如,使用正则表达式。
— 引入(Introction):添加方法或字段到被通知的类。Spring允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使任何对象实现IsModified接口,来简化缓存。
— 目标对象(Target Object):包含连接点的对象,也被称作被通知或被代理对象。
— AOP代理(AOP Proxy):AOP框架创建的对象,包含通知。在Spring中,AOP代理可以是JDK动态代理或CGLIB代理。
— 编织(Weaving):组装方面来创建一个被通知对象。这可以在编译时完成(例如使用AspectJ编译器),也可以在运行时完成。Spring和其他纯Java AOP框架一样,在运行时完成织入。
‘贰’ 求java学习路线图
/*回答内容很长,能看完的少走一个月弯路,绝不抖机灵*/
提前预警:本文适合Java新手阅读(老手可在评论区给下建议),希望大家看完能有所收获。
废话不多少了,先了解一下Java零基础入门学习路线:
第一阶段:JavaSE阶段
变量、数据类型、运算符
二进制和十进制的转化
注释、单行注释、多行注释、文本注释、注释内容和字节码的关系
标识符、关键字、驼峰原则
变量的本质、内存画图、变量声明和初始化
变量的分类和作用域(局部变量、成员变量、静态变量)
常量和Final
基本数据类型介绍
整型变量和整型常量
浮点类型、float、double
char字符型、转义字符
boolean布尔型、if语句使用要点、布尔类型占用空间问题
运算符介绍
算数运算符(二元、自增、自减)
赋值和赋值运算符
关系运算符详解
逻辑运算符、短路运算符详解
位运算符详解
字符串连接符
条件运算符(三元运算符)
运算符优先级问题
自动类型转换详解
强制类型装换详解
基本数据类型装换常见错误、溢出、L问题
使用Scanner获取键盘输入
控制语句
控制语句和实现逻辑对应
if单选结构
if_elseif_else多选结构
switch语句_IDEA更换主题
循环_while
循环_for循环_dowhile
嵌套循环
break和continue语句_标签_控制语句底层原理
写一个年薪计算机_网络查问题的秘诀(重要)
个人所得税计算器软件
方法核心详解_天才思维模型教你高手学习思维模式
方法的重载
递归结构讲解_递归头_递归体
面向对象编程-基础
面向过程和面向对象的区别
类和对象的概述
类的属性和方法
创建对象内存分析
构造方法(Construtor)及重载
对象类型的参数传递
this关键字
static关键字详解
局部代码块、构造代码块和静态代码块
package和import详解
JavaDoc生成API文档
面向对象编程-进阶
面向对象的三大特性
面向对象之【封装(Encapsulation)】
访问权限修饰符
面向对象之【继承(Inheritance)】
Object类
方法重写Override
super关键字详解
重写equals()和toString()
继承中对象创建的内存分析
面向对象之【多态(Polymorphism)】
向上转型
向下转型
instanceof运算符
编译时和运行时详解
final修饰符
抽象类和抽象方法(abstrct)
接口的定义和实现
JDK8的接口新特性
接口应用:内部类比较器Comparable
内部类详解
Java的内存管理与垃圾回收
异常机制
异常的概述
异常的执行过程与分析
try-catch-finally捕捉异常
throw抛出异常
throws声明异常
异常继承体系
运行时异常和编译异常
自定义异常
Java常用类
Wrapper包装类
自动装箱和自动拆箱
包装类的源码分析
String类的使用与内存原理
String类的源码分析
StringBuffer
StringBuilder
字符串处理类性能分析
Date类
System类
DateFormat类
Calendat类
Math类
BigInteger类和BigDecimal类
Random类
枚举类
File类
常见的面试题讲述与分析
数据结构的概述
线性表
顺序表
链表
栈和队列
树
二叉树
二叉查找树
二叉平衡树
黑红树
图
冒泡排序
选择排序
递归
折半查找
集合和数组的联系和区别
集合框架体系
ArrayList的使用和源码分析
集合中使用泛型
LinkedList的使用和源码分析
HashSet的使用和源码分析
哈希表及原理
TreeSet的使用和源码分析
比较器Comparable和Comparator
HashMap的使用和源码分析
TreeMap的使用和源码分析
Iterator于ListIterator
Collections工具类
旧集合类Vector、Hashtable
集合总结和选择依据
泛型接口
泛型类
泛型方法
IO流的概念
IO流的分类及其原理分析
文件流FlieInputStream、FileOutputStream
缓冲流BufferedInputStream、BufferedOutputStream
数据流ObjectInputStream、ObjectOutputStream
序列化和反序列化
转换流InputStreamReader、OutputStreamWriter
打印流PrintWrite和PrintStream
数组流ByteArrayOutputStream、ByteArrayInputStream
使用IO复制文件夹
进程和线程
线程的创建与启动
创建线程的三种方式对比
线程的生命周期
线程控制
多线程的安全问题与解决办法
线程的同步:同步代码块
线程的同步:同步方法
线程的同步:Lock锁
线程的死锁问题
线程通信
Condition
线程的完整生命周期
线程池ThreadPoolExecutor
ForkJoin框架
ThreadLocal类
计算机网络基础知识
网络通信协议
OSI参考模型
TCP/IP参考模型
数据的封装与拆封原理解析
TCP协议
UDP协议
IP地址和端口号
URL和Socket
使用TCP编程实现登录功能
使用UDP编程实现客服系统
使用TCP编程实现文件上传
手写ArrayList
手写单链表
手写Linkedlist
手写HashMap
手写HashSet
最新并发集合类
生产者消费者模式扩展
Lock锁和Condition
ReadWriteLock
BlockingQueue
volatile关键字
多线程题目练习
JDK新特征
面试题详解
设计模式入门
面向对象设计七大原则
简单工厂模式
工厂方法模式
单例模式
原型模式
装饰模式
适配器模式
外观模式
数据结构算法
集合(容器)
IO流
多线程
网络编程
集合提升寻训练
多线程提升训练
设计模式
第二阶段:数据库
数据库基础知识
MySQL基础知识
MySQL8新特征
安装和卸载MySQL8
使用navicat访问数据库
SQL语言入门
创建数据库表
DML
修改删除数据库表
表的完整性约束
表的外键约束
DML扩展
基本select查询
where子句
函数
group by
having
SQL99-内连接查询
SQL99-外连接查询
SQL99-自连接查询
SQL92-连接查询
不相关子查询
相关子查询
分页查询
索引
事务及其特征
事务的并发问题
事务的隔离级别
存储过程
导入导出数据
JDBC概述
使用JDBC完成添加/更新/删除操作
使用JDBC完成查询操作
JDBC常用接口
使用PreparedStatement
使用事务完成银行转账
提取DBUtil工具类
使用Properties读写属性文件
日志框架log4j
开发员工管理系统
Mysql基础
MySQL 查询语句
数据库对象
JDBC
第三阶段:JavaEE阶段
web开发概述
B/S和C/S架构简介
HTTP协议
HTTP请求头和响应头
Tomcat安装使用
Tomcat目录结构
Servlet概述
Servlet快速入门
Servlet生命周期
读取配置文件信息
HttpServletRequest
HttpServletResponse
GET和POST区别
解决中文乱码
请求转发与重定向
绝对路径和相对路径
Cookie
Session
ServletContext
ServletConfig
JSP技术介绍
JSP的执行过程
scriptlet
表达式
声明
JSP指令元素
JSP动作元素
JSP隐式对象
JSP底层原理
九大内置对象
四个作用域
Servlet和JSP的关系和区别
MVC模式
合并Servlet
JavaScript概述与特点
JS基础语法
函数
数组
Math对象
String对象
Date对象
事件event
浏览器开发者工具
console
DOM和BOM
window
location
navigator
history
认识DOM
DOM获取元素
jQuery简介及快速入门
jQuery入口函数
jQuery对象与DOM对象互相转换
基本选择器
属性选择器
位置选择器
表单选择器
内容选择器
jQuery事件
jQuery动画效果
DOM操作-操作文本
DOM操作-操作属性
DOM操作-操作元素
直接操作CSS样式
操作CSS类样式
购物车案例
表单验证
正则表达式
EL介绍及使用
EL取值原理
EL隐含对象
EL逻辑运算
JSTL介绍-核心标签库
JSTL核心标签库
JSTL-格式标签库
Filter原理
Filter生命周期
Filter链
Filter登录验证
Filter权限控制
Listener概述及分类
Listener监听在线用户
Ajax异步请求和局部刷新的原理
使用原生Ajax验证用户唯一性
jQuery Ajax
JSON的格式和使用
主要JSON解析器
Jackson的使用
Jackson的实现原理
使用jQuery Ajax实现三级联动
使用jQuery Ajax实现自动补全
分页的意义
理解分页工具类
实现基本分页
实现带查询的分页
文件上传原理
文件上传API
实现文件上传
文件下载原理
文件下载响应头
实现文件下载
Servlet
JSP
JavaScript
jQuery
EL+JSTL+过滤器+监听器
Ajax和JSON
分页和文件上传/下载
第四阶段:框架阶段
MyBatis概述
MyBatis入门配置
基本的CRUD操作
核心配置文件详解
Mapper.xml基础详解
模糊查询
分页的实现及插件PageHelper的使用
动态sql+sql片段的使用
一对多、多对一的关系处理
注解的使用
一级缓存和二级缓存说明及使用
generator逆向工程使用
Spring框架简介
Spring官方压缩包目录介绍
Spring环境搭建
IoC/DI容器详解
Spring创建Bean的三种方式
scope属性讲解
Spring中几种注入方式
静态代理设计模式
动态代理设计模式
AOP详解
AOP中几种通知类型
AOP两种实现方式
自动注入
声明式事务
事务传播行为
事务隔离级别
只读事务
事务回滚
基于注解式配置
常用注解
Spring 整合MyBatis
i18n
Spring整合Junit
MVC架构模式
手写MVC框架
SpringMVC简介
SpringMVC运行原理
基于配置文件方式搭建环境
基于注解方式搭建环境
SpringMVC的跳转及视图解析器的配置
SpringMVC和Ajax的交互
Spring 参数注入
SpringMVC作用域传值
视图解析器
文件下载
文件上传
Spring拦截器/拦截器栈
登录状态验证
SpringMVC容器和Spring容器介绍
异常处理4种方式
SpringMVC5其他常用注解
Maven简介
Maven原理
Linux安装及注意事项
Maven项目结构
POM模型
Maven 中项目类型
创建WAR类型的Maven项目
scope属性可取值
SSM项目拆分演示
Maven的常见插件讲解
热部署
BootStrap概述
BootStrap栅格系统
BootStrap常用全局CSS样式
常用组件
常用JavaScript插件
RBAC概述
RBAC发展历史
基于RBAC的数据库表设计
URL拦截实现
动态菜单实现
密码学
MyBatis
Spring
SpringMVC
Maven
BootStrap
RBAC
第五阶段:前后端分离阶段
Spring Boot简介
Spring Boot实现Spring MVC
配置文件顺序及类型讲解
Spring Boot项目结构
Spring Boot 整合MyBatis
Spring Boot 整合Druid
Spring Boot 整合PageHelper
Spring Boot 整合logback
Spring Boot 整合JSP
Spring Boot 整合Thymeleaf
Spring Boot 开发者工具
Spring Boot 异常显示页面
Spring Boot 整合Junit4
Spring Boot 项目打包部署
Spring Boot 整合Quartz
Spring Boot 中Interceptor使用
Spring Boot Actuator
HikariCP
Logback简介
Logback依赖说明
Logback 配置文件讲解
Logback 控制台输出
Logback 文件输出
Logback 数据库输出
Spring Security简介
Spring Security架构原理
什么是认证和授权
基础环境搭建
自定义认证流程
UserDetailsService和UserDetails
PasswordEncoder
自定义认证结果
授权-访问路径匹配方式
授权-权限管理
基于注解实现权限管理
Thymeleaf整合Security权限管理
Rememberme 实现
退出实现
CSRF
Linux简介
VMWare安装及使用
Linux安装及注意事项
Linux目录结构及路径
Linux常用命令
VMWare常用配置
XShell安装及使用
Xftp安装及使用
JDK解压版配置步骤
Tomcat配置步骤
安装MySQL
WAR包部署
Docker简介
Docker与VM对比
Docker特点
Docker架构
Docker安装与启动
镜像加速器配置
Docker镜像操作常用命令
Docker容器操作常用命令
DockerFile
搭建本地镜像仓库
推送镜像到阿里云及本地仓库
Docker容器生命周期
Docker数据管理
Redis简介
Redis 单机版安装
Redis 数据类型介绍
Redis 常用命令
Redis 持久化方案
Redis 的主从搭建
Redis的哨兵搭建
Redis 的集群搭建
Spring Boot整合Spring Data Redis
Redis的缓存穿透
Redis的缓存雪崩
Redis的缓存击穿
vsCode和插件安装
webpack介绍
Vue项目创建
Vue模板语法
Vue条件渲染
Vue列表渲染
Vue事件处理
Vue计算属性
Vue Class与Style
Vue表单处理
Vue组件
Vue组件生命周期
Vue 路由配置
Vue Axios网络请求
Vue跨域处理
Vue Element
Mock.js
Swagger2简介
Springfox
Swagger2基本用法
Swagger-UI用法
Swagger2配置
Swagger2常用配置
Git的下载和安装
Git和SVN对比
Git创建版本库
Git版本控制
Git远程仓库
Git分支管理
Git标签管理
GitEE建库
GitEE 连接及使用
GitEE 组员及管理员配置
Spring Boot
Logback
Spring Security
Linux - CentOS 8
Docker
Redis
Vue
Swagger
Git/GitEE
第六阶段:微服务架构
分布式文件系统概述
FastDFS简介
FastDFS架构
Tracker Server
Storage Server
FastDFS安装
安装带有FastDFS模块的Nginx
Fastdfs-java-client的使用
创建Fastdfs-java-client工具类
实现文件上传与下载
KindEditor介绍
通过KindEditor实现文件上传并回显
AMQP简介
RabbitMQ简介
安装Erlang
安装RabbitMQ
RabbitMQ原理
Spring Boot 集成RabbitMQ
RabbitMQ的交换器
Spring AMQP的使用
Eureka简介
Eureka和Zookeeper 对比
搭建Eureka注册中心
Eureka 服务管理平台介绍
搭建高可用集群
集群原理
Eureka优雅停服
Ribbon简介
集中式与进程内负载均衡区别
Ribbon常见的负载均衡策略
Ribbon的点对点直连
Feign简介
Feign的请求参数处理
Feign的性能优化
配置Feign负载均衡请求超时时间
Hystrix简介
服务降级
服务熔断
请求缓存
Feign的雪崩处理
可视化的数据监控Hystrix-dashboard
Spring Cloud Gateway简介
Gateway基于配置文件实现路由功能
Gateway基于配置类实现路由功能
Gateway中内置过滤器的使用
Gateway中自定义GatewayFilter过滤器的使用
Gateway中自定义GlobalFilter过滤器的使用
Gateway中使用过滤器实现鉴权
Gateway结合Hystrix实现熔断功能
什么是分布式配置中心
创建配置中心服务端
创建配置中心客户端
基于Gitee存储配置文件
基于分布式配置中心实现热刷新
什么是消息总线
基于消息总线实现全局热刷新
ElasticSearch介绍
ElasticSearch单机版安装
ElasticSearch集群版安装
ElasticSearch索引管理
ElasticSearch文档管理
ElasticSearch文档搜索
SpringDataElasticSearch访问ElasticSearch
LogStash介绍
基于LogStash收集系统日志
分布式事务简介
分布式事务两大理论依据
分布式事务常见解决方案
LCN简介
TX-LCN的3种模式
LCN原理
LCN环境搭建及Demo演示
Nginx的简介
什么是正向代理、反向代理
Nginx的安装
Nginx配置虚拟主机
Nginx配置服务的反向代理
Nginx的负载均衡配置
Spring Session介绍
通过Spring Session共享session中的数据
通过Spring Session同步自定义对象
Spring Session的Redis存储结构
设置Session失效时间
Spring Session序列化器
MyBatis Plus简介
Spring整合MyBatis Plus
MyBatis Plus的全局策略配置
MyBatis 的主键生成策略
MyBatis Plus的CRUD操作
条件构造器EntityWrapper讲解
MyBatis Plus的分页插件配置
MyBatis Plus的分页查询
MyBatis Plus的其他插件讲解
MyBatis Plus的代码生成器讲解
MyBatis Plus的公共字段自动填充
简介
数据库切分方式
基本概念
MySQL主从配置
切片规则
读写分离
实现分库分表
FastDFS
RabbitMQ
Spring Cloud Netflix Eureka
Spring Cloud Netflix Ribbon
Spring Cloud OpenFeign
Spring Cloud Netflix Hystrix
Spring Cloud Gateway
Spring Cloud Config
Spring Cloud Bus
ELK
TX-LCN
Nginx
Spring Session
MyBatis Plus
ShardingSphere
第七阶段:云服务阶段
Kafka简介
Kafka架构
分区和日志
Kafka单机安装
Kafka集群配置
自定义分区
自动控制
Spring for Apache Kafka
Zookeeper简介和安装
Zookeeper 数据模型
Zookeeper 单机版安装
Zookeeper常见命令
ZClient操作Zookeeper
Zookeeper 集群版安装
Zookeeper 客户端常用命令
Zookeeper分布式锁
什么是分布式架构
什么是RFC、RPC
HttpClient实现RPC
RestTemplate
RMI实现RPC
基于Zookeeper实现RPC 远程过程调用
SOA架构介绍
Dubbo简介
Dubbo结构图
Dubbo注册中心
Dubbo 支持的协议
Dubbo 注册中心搭建
Spring Boot 整合 Dubbo
Admin管理界面
Dubbo 搭建高可用集群
Dubbo 负载均衡
Spring Cloud Alibaba Dubbo简介
基于Zookeeper发布服务
基于Zookeeper订阅服务
实现远程服务调用处理
Spring Cloud Alibaba Nacos简介
搭建Nacos服务器
基于Nacos发布|订阅服务
实现远程服务调用处理
Nacos Config配置中心
Spring Cloud Alibaba Sentinel简介
搭建Sentinel服务器
Sentinel-实时监控
Sentinel-簇点链路
Sentinel-授权规则
Sentinel-系统规则
@SentinelResource注解
持久化规则
Spring Cloud Alibaba Seata简介
搭建Seata服务器
Seata支持的事务模式-AT模式
Seata支持的事务模式-TCC模式
Seata支持的事务模式-Saga模式
Seata支持的事务模式-XA模式
SeataAT事务模式应用方式
SeataTCC事务模式应用方式
Kafka
Zookeeper
RPC
Dubbo
Spring Cloud Alibaba Dubbo
Spring Cloud Alibaba Nacos
Spring Cloud Alibaba Sentinel
Spring Cloud Alibaba Seata
‘叁’ 编程中的代码能看懂。。但是让自己写却写不出来。应该怎么办 要有效果的方法
多敲!!!多敲!!!多敲!!!
基本上每一个初学者都会遇到这样的问题,包括我之前也是一样,导致的原因就是自己不喜欢动手,就算自己有了思路,却不知道从何下手;因为在你的脑海中一直对这些题目都是存在于数学上面的操作,真的要使用代码去实现的时候你脑子就会一篇空白
一个代码写多了的人,不管你的需求再难,他也能写出一个基本的框架出来,也不至于无从下手,因为代码写多了的人都会总结出一套规律,开发都是这一个套路
《2020最新Java基础精讲视频教程和学习路线!》
就跟你建房子一样,基本的框架搭建完毕之后,只需要慢慢砌砖就行了
抄代码虽然是程序员的日常,但是初学者非常不建议去抄代码,抄的代码只会让你越抄越乱,从而使自己的思维就依赖在了网络上,自己一点思维都没有,那有如何去提升自己呢
代码一定要有自己的思路,然后再把自己的思路转为代码实现,这才是学习Java的正确方式
原文链接:网页链接
‘肆’ 推荐几本javaEE的书籍,经典的。不要李刚的(虽然讲的好,但是繁琐,基础东西太多了)。结合了三大框架的
第一部分: Java语言篇
1 《Java编程规范》
星级:
适合对象:初级,中级
介绍:作者James Gosling(Java之父),所以这本书我觉得你怎么也得读一下。对基础讲解的很不错。
2 《Java核心技术:卷Ⅰ基础知识》
星级:
适合对象:初级,中级
介绍:官方机构图书,你怎么也得有一本,这本书比较全面而且易懂。放在案旁用到的时候查一查,看一看。是学习入门必备书。
当然还有II
注:新手必备
3 《Java编程思想》
星级:
适合对象:初级,中级
介绍:这本书的作者就是着名的C++编程思想,对OO的理解很好,Java作为一门面向对象的语言,你学习Java最好也同时参考这本书进行入门学习。
注:新手必备
4 《Effective Java》
星级:
适合对象:初级,中级,高级
介绍:作者是Java的第2号人物,目前是Google的Java老大,是James Gosling强力推荐的一本书。
5 《Java与模式》
星级:
适合对象:中级,高级
介绍:是国人写的难得的值得购买的一本书,当然现在也有大话设计模式之类的出现,这本书出现的比较早,是初级到中高级必读的图书之一。
注:没有理解面向对象前,读这本书没有意义。最好是有过项目经验再读比较好。
6 《SCJP学习指南》
星级:
适合对象:初级,中级
介绍:官方考试必备图书,对你检验自己学些Java知识情况很有帮助,这本书最适合学生阅读,这本书理解透了,找工作面试Java题目不会有任何问题,工作多年的拿这里的题目不会做的都很多。
7 《Java数据结构和算法》
星级:
适合对象:初级,中级,高级
介绍:这本书使用Java语言描述了我们常用的数据结构,写的非常不错。值得一看,不过目前基本断货(这个就是最有利的说明)。
8《Junit Recipes中文版:程序员实用测试技巧》
星级:
适合对象:初级,中级,高级
介绍:目前敏捷盛行,这个你是不管怎样也得看一看的。
第二部分:中级进阶篇
1《spring in action》
星级:
适合对象:初级,中级,高级
介绍:Spring框架,作为Java程序员是怎么都必须学习的。IOC、AOP是你以后见到的软件的基础。另外基本上很多东西都和Spring产生联系。
2《精通Spring 2.x:企业应用开发详解》
星级:
适合对象:初级,中级,高级
介绍:书中提供了Spring中的目前最流行用法的实例和实用情况。
3《iBatis实践》
星级:
适合对象:初级,中级,高级
介绍:iBatis必看参考书,in action从未让人失望过。
4 《精通hibernate:Java对象持久化技术详解》
星级:
适合对象:初级,中级,高级
介绍:Hibernate必备参考书,也是国人写的,难得的一本好书,而且作者是个MM。
5 《Struts 2.1权威指南》
星级:
适合对象:初级,中级
介绍:学习Struts2的一本国人写的不错的书,不过名称显得大了点。权威指南应该只有作者才可以这么叫。
6 《Maven实践》
星级:
适合对象:初级,中级
介绍:从Ant到Maven现在时大势所趋了,您怎么也得学习一下。
7《expert one-on-one J2EE Development without EJB中文版》
星级:
适合对象:初级,中级
介绍:这个其实是Spring的基础,作者巨牛。强力推荐,可惜是基本买不到这本书了。
8 《Tomcat权威指南》
星级:
适合对象:初级,中级
介绍:做Java Web的一般都必须学习这个,为Apache的开源项目。
9 《Head First Servlets & Jsp》
星级:
适合对象:初级,中级
介绍:Servlet和Jsp作为JavaEE程序员是必须要掌握好的,而且Head First系列从未令人失望。
10 《Head First HTML与CSS.XHTML》
星级:
适合对象:初级
介绍:介绍Web前端的不错的入门书。
11 《HTML+CSS网页设计与布局从入门到精通》
星级:
适合对象:初级
介绍:这本书最大的特点是带光盘而且讲解的不错,应用实例也不错。
12 《JavaScript宝典》
星级:
适合对象:初级,中级,高级
介绍:是学习js的必备参考工具书之一,我记得几年前国内都没有中文版,我都把整本书打印出来看了一下。
13 《JavaScript权威指南》
星级:
适合对象:初级,中级,高级
介绍:是学习js的必备参考工具书之一。我看我同事购买了,看起来还不错。
14 《征服Ajax Web2.0开发技术详解》
星级:
适合对象:初级,中级
介绍:这本书当年是CSDN送给我的,感觉还是不错的。对学习AJAX有帮助。
15 《jQuery基础教程》
星级:
适合对象:初级,中级,高级
介绍:从这个开始学习jQuery才是根本。不然以后遇到的很多奇怪问题不知所以然。jQuery个人感觉已经成为目前的javascript标准库了,插件无数,大大简化了前端工作。
16 《XML入门经典》
星级:
适合对象:初级,中级,高级
介绍:很多人觉得没必要买XML书籍,不过我还是觉得推荐一本给你作为工具书,而且看本书可以使得你对XML方方面面有个了解。里面不少东西还是用到的。
17 《敏捷软件开发(原则模式与实践)》
星级:
适合对象:中级,高级
介绍:敏捷大师的着作,您怎么也得看看。这本书包含了UML的讲解,所以我就不推荐UML的书了。
18 《重构:改善既有代码的设计》
星级:
适合对象:中级,高级
介绍:同样是大师的杰作,不可不看。最重要的是让你明白软件也是一步步改进的,不是一蹴而就的。
19 《代码整洁之道》
星级:
适合对象:中级,高级
介绍:软件工程的理想编码是需要无数人编出来的代码像一个人写的。这本书当作规范就不错。
星级:20 《Java Web Service》
适合对象:中级,高级
介绍:不过还是推荐一下我看过的吧。了解基本概念还是要本书的。
注意:WebService的图书我还真不知道给您推荐什么,都不怎么样。您做个实例就明白,不过怎么做接口才是核心。
第三部分:高级篇
1 《Java消息服务》
星级:
适合对象:初级,中级,高级
介绍:消息机制是以前分布式经常实用到的,与此相关的有Apache Active MQ进行开发,而且这本书的实例也是用的AQ。
星级:2 《Java并发实践》
适合对象:中级,高级
介绍:这本书也是牛人们强力推荐的,学习并发必备。
Java Thread Programming
另外推荐一本英文的:
3 《Enterprise JavaBeans 3.0中文版》
星级:
适合对象:中级,高级
介绍:EJB技术在大型系统中使用,主要有银行等金融机构。是开发分布式程序的选项之一,不过我不喜欢,其实银行使用的也不怎么的。结合JavaEE容器使用,开源的有JBoss,商用的有IBM和Oracle支持。
4 《Hadoop权威指南》注:该类型书也有Head First系列,也很不错。另外《J2EE应用与BEA WebLogic Server》书也很不错。
星级:
适合对象:中级,高级
介绍:云计算必备图书。作为分布式计算的工具,Hadoop目前可以说是市场上唯一成熟的产品,而且大家也都向其看齐。而起云计算炙手可热,你搞明白这本书就大概明白了什么是云以及怎么做云。做Hadoop的没人不读这本书,没读过的也不要说你搞过Hadoop。
星级:附: 《Linux 鸟哥的私房菜》
适合对象:初级,中级,高级
介绍:这本书对使用和学习Linux很有用,大而全,解释的也不错,常用的基本都有了,一本在手,绝无顾忧。
最后,推荐一本贯彻全部软件工程和全文的图书《代码大全》,只是一句话:两届Software Development Magzine Jolt Award震撼大奖得主。
最近发现有人购买我的2手书:附加:
深入Java虚拟机(原书第2版)附光盘---SUN公司核心技术丛书
所以我推荐一下下面的这本:
The Java Virtual Machine Specification
个人认为这个写的比较好,并且更权威。