Java学习书籍整理
整理一下自己学习的一些书籍。在学习过程中,喜欢找的一些电子书来系统化的学习,多数时候我都只是做一个大概的了解,没有深入学习,基本就是看下目录,看下前几章的内容,深入的只会在实际用的时候才去详细看了。我从以下几个方面整理了一下这些学习的电子书。
主要包括Java基础、Web前后端、各种框架、数据库、架构设计、项目管理、操作系统以及IT行业等类型的书籍。下载地址在百度脑图对应节点的链接中。
一、Java
该部分主要分享一些Java基础、开发环境、运行环境相关的一些书籍。
1、Java基础
基础:《Java编程思想第四版》《Java 8编程官方参考教程(第9版)》《Java核心技术(原书第8版)卷I_基础知识》
设计模式:《23种设计模式》
GUI:《Java Swing权威指南(第3版)》《Eclipse SWT JFace核心应用》
算法与数据结构:《算法导论》
2、Java EE
《Java EE 7权威指南 卷1》《Java EE 7权威指南 卷2》《JavaEE教程》
3、JVM
《Java虚拟机规范》《HotSpot实战》《深入理解Java虚拟机:JVM高级特性与最佳实践》《自己动手写Java虚拟机》
4、IDE
eclipse:《Eclipse从入门到精通(第2版)》
5、EJB
EJB: 《EJB+3.0从入门到精通》
EJB容器:《JBoss管理与开发核心技术.第3版》
二、Web
该部分主要分享一些servlet、JSP、Servlet容器、Web前端JavaScript、Web设计相关的书籍。
1、Servlet&JSP
《servlet和jsp学习指南》《Servlet与JSP核心编程第二版》《Head First Servlet JSP(清晰中文版)》
2、Servlet容器
Tomcat:《Tomcat权威指南(第2版)》《深入剖析Tomcat》
Jetty:
3、前端
JavaScript:《JavaScript权威指南(第6版)》《JavaScript语言精粹》
JQuery:《jQuery基础教程(第四版)》《jQuery实战中文版》
AngularJS:《AngularJS权威教程》
4、Web设计
《无懈可击的web设计》《深入分析Java Web技术内幕》
三、框架
1、Spring
《Spring入门经典》《Spring实战(第4版)》
2、Mybatis
《深入浅出MyBatis技术原理与实战》
3、Hibernate
《Java Persistence with Hibernate》
4、Activiti
《Activiti实战》《activiti5.16中文用户手册》
5、Spring Boot
《深入实践Spring+Boot》
6、Spring Cloud
四、Database
该部分主要分享一些数据库相关的书籍,包括SQL编写、性能调优。
1、Oracle
Oracle教程:《Oracle Database 11g PL-SQL编程实战》《Oracle Database 11gR2 性能调整与优化》《Oracle Database 11g RAC手册》
IDE:《PLSQLDeveloper10.0用户指南》
2、大数据
Hadoop:《HADOOP权威指南》《Hadoop+2.X+HDFS源码剖析》
3、大数据分析
五、网站架构
该部分主要是网站架构技术的分享、以及一些常用中间件,比如企业服务总线Mule ESB、ActiveMQ消息中间件等。
《大型网站技术架构:核心原理与案例分析》
1、分布式
《大规模分布式系统架构与设计实战》
2、中间件
Active MQ:《ActiveMQ in Action》
Mule ESB:《MuleStudio中文手册》《Mule ESB Cookbook》
3、Apache
《APACHE模块开发指南》《APACHE源代码全景分析 第1卷》
4、搜索引擎
ElasticSearch:《Elasticsearch权威指南》《深入理解ElasticSearch》
六、项目管理
该部分主要分享项目文件、代码的管理工具,项目构建工具,以及设计、开发、测试、维护相关的书籍。
1、版本控制系统
SVN:
Git:《精通Git》
GitHub:《GitHub入门与实践》
GitLab:
2、项目构建工具
Ant:《ant》
Maven:《Maven权威指南中文版》
3、设计
《UML用户指南(第2版)》
4、开发
《敏捷开发-敏捷软件开发:原则、模式与实践(全)》
5、测试
6、维护
七、操作系统
该部分主要分享一些操作系统原理的书籍,毕竟对于维护时,经常要去检查服务器的相关信息,对操作系统有进一步的了解还是很有必要的。
1、Windows
《深入解析Windows操作系统 第6版 上册》《Windows内核情景分析上》《Windows内核情景分析下》《Windows网络编程技术》
2、Linux
《鸟哥的Linux私房菜 基础学习篇(第三版)》《鸟哥的Linux私房菜服务器架设篇(第三版)》
八、IT行业书籍
经常看技术书籍肯定还是比较疲劳的,偶尔可以看下IT行业书籍,像《浪潮之巅》这些书,看了之后真的是激情满满。同时也可以了解到一些大公司的发展、管理模式等等。
《浪潮之巅》《华为研发》《淘宝技术这十年》《走出华为》《程序员修炼之道》《智能时代》《硅谷之谜》
Java学习书籍
面试必备!Java核心技术面试100题
一线互联网公司工作了几年,我作为求职者参加了不少面试,也作为面试官面试了很多同学,整理这份面试指南,一方面是帮助大家更好的准备面试,有的放矢,另一方面也是对自己知识框架做一个体系化的梳理。
这篇文章梳理了Java核心技术常见面试题,整理了120道题目,包括Java基础、集合框架、并发编程、NIO、反射等部分的内容。JVM和垃圾回收部分的内容比较多,会在下一篇博客中单独写。
除了Java核心技术题目,还会梳理虚拟机,Spring,Dubbo,Spring Cloud,分布式系统,数据库模块的面试题,以及阿里,腾讯,百度等互联网一线大厂的面试真题。在一些高级岗位的面试中有一类区分度比较高的 System Design 系统设计类问题,如秒杀系统,微博评论系统设计等,也会进行专门的解析。
针对准备参加海外IT公司面试的同学,还会梳理LeetCode和剑指Offer的经典算法题目,以及Google,Facebook等硅谷公司的面试真题,最后目标是形成一个互联网面试指南,我的公众号和博客会第一时间发布,敬请期待。
- 面向对象的特征有哪些方面?
- hashCode和equals方法的理解?
- 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
- 深拷贝和浅拷贝区别?
- &和&&的区别?
- Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
- switch是否能作用在byte上,是否能作用在long上,是否能作用在String上?
- 用最有效率的方法计算2乘以8?
- 数组有没有length()方法?String有没有length()方法?
- 在Java中,如何跳出当前的多重嵌套循环?
- 构造器(constructor)是否可被重写(override)?
- 当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- 重载(Overload)和重写(Override)的区别。重载的方法能否根据返回类型进行区分?
- 为什么不能根据返回类型来区分重载?
- 抽象类(abstract class)和接口(interface)有什么异同?
- 阐述静态变量和实例变量的区别?
- 静态嵌套类(Static Nested Class)和内部类(Inner Class)的不同?
- 接口是否可继承(extends)接口?抽象类是否可实现(implements)接口?抽象类是否可继承具体类(concrete class)?
- 一个\”.Java\”源文件中是否可以包含多个类(不是内部类)?有什么限制?
- Anonymous Inner Class(匿名内部类)是否可以继承其它类?是否可以实现接口?
- 内部类可以引用它的包含类(外部类)的成员吗?有没有什么限制?
- Java中是如何支持正则表达式操作的?
- String是基本数据类型吗?
- float f=3.4;是否正确?
- int和Integer有什么区别?
- 是否可以继承String类?为什么?
- String和StringBuilder、StringBuffer的区别?
- char 型变量中能不能存贮一个中文汉字,为什么?
- String s = new String(\”xyz\”);创建了几个字符串对象?
- Java 中的final关键字有哪些用法?
- 如何实现字符串的反转及替换?
- 什么时候用断言(assert)?
- ArrayList和LinkedList有什么差别?
- 在哪种场景里应当用ArrayList(或LinkedList)?
- 有没有有顺序的Map实现类,如果有,他们是怎么保证有序的?
- List,Set,Map三者的区别及总结?
- HashMap 和 Hashtable 的区别?
- HashSet 和 HashMap 区别?
- HashMap 和 ConcurrentHashMap 的区别?
- hashmap和hashtable和concurrenthashmap区别和比较?
- HashSet如何检查重复?
- comparable 和 comparator的区别?
- 如何对Object的list排序?
- 如何实现数组与List的相互转换?
- 如何求ArrayList集合的交集、并集、差集、去重复并集?
- 说说HashMap 的工作原理及代码实现?
- ConcurrentHashMap 的工作原理及代码实现?
- 哪些集合类是线程安全的?
- Iterator 怎么使用?有什么特点?
- Collection和Collections的区别?
- List、Map、Set三个接口存取元素时,各有什么特点?
- Collections工具类中的sort()方法如何比较元素?
- TreeMap和TreeSet在排序时如何比较元素?
- IO和NIO的区别?
- Java中有几种类型的流?
- 如何用Java代码列出一个目录下所有的文件?
- XML文档定义有几种形式?
- 解析XML文档有哪几种方式?
- 什么是反射?
- 获得一个类的类对象有哪些方式?
- 如何通过反射创建对象?
- 如何通过反射获取和设置对象私有字段的值?
- 如何通过反射调用对象的方法?
- 动态代理是什么?有哪些应用?
- 什么是 Java 序列化?什么情况下需要序列化?
- 如何实现对象克隆?
- 怎么实现动态代理?
- 动态代理的不同实现方式相应的优缺点?
- 并行和并发有什么区别?
- 举例说明同步和异步
- ThreadLocal的原理是什么?
- 使用ThreadLocal有哪些注意事项?
- Java中能创建volatile数组吗?
- volatile 能使得一个非原子操作变成原子操作吗?
- volatile的原理,作用,能代替锁么?
- Java中有哪些锁?以及他们的区别?
- JDK8中对HashMap做了怎样的优化?
- 多线程的几种实现方式?
- Thread类的sleep()方法和对象的wait()方法都可以让线程暂停执行,它们有什么区别?
- 线程的sleep()方法和yield()方法有什么区别?
- sleep和sleep(0)的区别?
- 乐观锁,悲观锁有什么区别?
- Lock与Synchronized的区别?
- 守护线程是什么?
- 说一下 runnable 和 callable 有什么区别?
- notify()和 notifyAll()有什么区别?
- 说一下 synchronized 底层实现原理?
- synchronized 和 volatile 的区别是什么?
- synchronized 和 ReentrantLock 区别是什么?
- 当一个线程进入一个对象的synchronized方法A之后,其它线程是否可进入此对象的synchronized方法B?
- 多线程中 synchronized 锁升级的原理是什么?
- 什么是死锁?怎么防止死锁?
- 说一下 atomic 的原理?
- 线程的基本状态以及状态之间的关系?
- 什么是线程池(thread pool)?
- 创建线程池有哪几种方式?
- 线程池都有哪些状态?
- 线程池中 submit() 和 execute() 方法有什么区别?
- 说出与线程同步以及线程调度相关的方法?
- 启动一个线程是调用run()还是start()方法?
- 工具类Executors里面提供了哪些静态工厂方法?
- 简述synchronized 和Java.util.concurrent.locks.Lock的异同?
- Error和Exception有什么区别?
- 运行时异常与受检异常有何异同?
- 列出一些你常见的运行时异常?
- 阐述final、finally、finalize的区别。
- throw 和 throws 的区别?
- 阐述JDBC操作数据库的步骤?
- Statement和PreparedStatement有什么区别?哪个性能更好?
- 在进行数据库编程时,连接池有什么作用?
- JDBC中如何进行事务处理?
- JDBC能否处理Blob和Clob?
- Lambda表达式有哪些应用?
- JDK 8的Fork/Join框架了解吗?
- List、Set、Map是否继承自Collection接口?
这篇博客梳理了Java核心技术的面试题,限于篇幅,这里不对面试题做解答,涉及的知识点解析,会在公众号及博客中发布。闲言不多说,下一篇文章中整理JVM和垃圾回收的高频面试题。
本文作者及来源:Renderbus瑞云渲染农场https://www.renderbus.com
文章为作者独立观点不代本网立场,未经允许不得转载。