自学Java怎么入门
Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。所以想要做java开发,java基础最需要下功夫的一项,只有打好了基础后面的才会变得容易。
那么想要有扎实的基础我们应该怎么做呢?
1.想要基础扎实,看书沉淀是必须的,有一些编程基础的同学推荐阅读《JAVA核心技术 卷1》,可以跳过图形程序设计、事件处理、Swing、applet以及部分日志章节,如果比较吃力也可以先跳过多线程章节。
2.看完一本书,一定要多加练习去理解和吸收。科班的同学可以用java写实验,写的同时一定要多多运用学到的特性。练习阶段各种设计模式套上去用,不要怕笨重,即使是滥用特性和设计模式也是一种有效的学习。
3.有了一定量的编程经验后,可以再回过头将《JAVA核心技术 卷1》速读一遍,查漏补缺。同时我们开始扩宽我们的知识领域,开始进行JavaWeb的学习。
那么,什么是JavaWeb呢?
JavaWeb是一系列技术的综合,也是大多数Java学习者日后的技术方向。及早的了解JavaWeb也有利于更深层面理解,明白Java在完整的应用中,是如何与各个模块交互并发挥作用的。
JavaWeb基础:
基础篇包括Servlet和JSP的学习、tomcat的使用、理解MVC分层模式、mysql的基础用法及JDBC、了解http协议。
这部分的学习,我是通过《Head First Servlets and JSP》 。这本书轻松幽默读起来很愉快,但是实在是很厚,而且部分技术已经过时,有时间的同学可以选读。
可以看到这部分的内容是很杂且多的,此阶段注重广度的基础学习,日后慢慢深入。这里推荐个在线教程:
Servlet系列教材 (一)- 基础 - 教程:开发第一个Servlet - how2j.cn
mysql系列教材 (一)- 安装mysql-server - how2j.cn
Tomcat系列教材 (一)- 教程 - how2j.cn
JSP系列教材 (一)- 教程 - how2j.cn
HTTP协议系列教材 (一)- 教程 - how2j.cn
JDBC系列教材 (一)- Java 使用JDBC之前,先要准备mysql
MVC系列教材 (一)- 教程 - how2j.cn
重点要理解Servlet的原理以及生命周期。在完成这一部分的学习后,可以简单的做个小网站,包括注册登陆,增删改查等功能。当然,每个人的情况不同,如果还想更深入熟悉或者折腾还可以把项目上传到阿里云等地方。
Java进阶
Java始终是我们JavaWeb开发体系中最核心的一环,唯有不停地探索,才能把握住方向和机遇。
在做完一个简单完整的JavaWeb项目后,我们对代码的认知和理解会提高不少,这对接下来的深入学习打下基础。Java圣经:《JAVA编程思想》 值得仔细品读,虽然很多内容可能无法理解,但每次读完一定会有所收获的哟。
读完编程思想,建议写一个有一定复杂度和代码量的后台项目。可以是一个http服务器,一个大型聊天室等。
做完项目我们又该看书沉淀技术了,大家可以阅读《Effective Java》,这本书并不厚但是干货十足,作者讲述Java的最佳实践和经验规则。它能帮助我们写出清晰、健壮、高效的代码,同时这本书涵盖了非常多的面试考点,一定要牢记于心!
最后还要深入学习Java多线程技术以及Java虚拟机原理,这两部分难度较大,理解起来比较抽象。也许日后工作中,我们很少遇到并发问题,不一定有机会进行JVM调优,但是这部分一定要认真对待,越理解底层写出的代码越高效,查bug时越准确。
JavaWeb进阶
Linux,现在的服务器基本都是Linux系统,也不存在图形化操作界面。作为开发工程师推荐阅读《The Linux Command Line》,有中文在线免费版本TLCL。学习的时候,可以去阿里云或腾讯云租一个学生服务器,每个月大概10元左右,直接ssh到云服务器上操作,能更好地模拟公司的开发及生产环境。
操作系统原理,主要学习进程控制调度、进程通信、存储和设备管理、文件管理以及系统安全。这一部分可以通过看教材或者自行找一些网课补充。
数据库,可以买一本《MySQL必知必会》小册子作为基础入门,没有什么理论的堆砌,是一本实践指南。学习数据库原理可以阅读《MySQL技术内幕》索引优化、事务、锁、范式都是重点。
网络协议,入门可以读《图解HTTP》《图解TCP/IP》如果要深入研究可以读《UNIX网络编程 卷1》和《TCP/IP详解 卷1》大多数开发者接触http和tcp、udp、ip协议比较多,但是对整体网络协议栈有个完整了解是必要的。
数据结构与算法,数据结构是算法的基础,一定要清晰明了。算法则是笔试面试中无法绕过的难关,推荐去LeetCode刷题,现在也有了中文官方网站:力扣 (LeetCode) 中国官网 - 全球极客挚爱的技术成长平台 从easy难度开始刷起,积累一定题量之后,做算法题会很快找到类型方法。
SSM框架,Spring+SpringMVC+MyBatis可以说是开发必备了,但框架只是锦上添花,不要太依赖框架进行学习。当我们能不依赖任何框架开发完整项目时,才是真正掌握了它。最为重要的是理解Spring的两个特性:IOC 反转控制和DI 依赖注入。明白实现原理以及为什么要使用Spring,只有这样才能在层出不穷的框架中灵活应对,立于不败之地。
Spring系列教材 (一)- 教程 - how2j.cn
Spring MVC系列教材 (一)- 教程
Mybatis系列教材 (一)- 基础 - 入门教程 - how2j.cn