首先
1. 学习语言基础
如何学好java,很显然,掌握语言基础是第一步。如果你不了解基础知识,那么你就不知道自己是否做错了或者接下来该怎么做。当然,这并不是要求你把所有的基础知识都记住,比如所有的 Java关键字、核心概念或者基本编码技术等。我希望你能够阅读以下链接的内容,即使在初次阅读时并不能理解全部内容,也希望你把全部内容看一遍。
2. 开始编写一些小程序
如果你确信自己对大多数的基础知识和概念足够熟悉,并且能够以某种方式将它们联系起来,那么你就可以进行下一步了,你可以开始尝试编写一些非常基本的 Java 程序,比如打印 hello world、实现简单的加减法,等等。
当你开始动手编写程序时,请记住,前几个程序对你来说可能会困难重重。但是一旦挺过去,接下来即使这些问题再次出现,你也能轻松解决。
你可能会遇到很多困难,起初你可能都无法独自完成 hello world 程序并使其正确运行。这时,你应当毫不犹豫打开谷歌然后搜索类似的程序。不要简单复杂这些代码,首先应该读懂代码,然后自己动手手动输入到你的 IDE 中,并解决由于输入的错误语法而导致的编译错误。如果仍然不成功,就再次借助谷歌寻求帮助。谷歌搜索是程序员的良师益友,你应该好好利用它。
多编写几个程序,首先尝试自己独立编码,遇到问题再通过谷歌寻求帮助。我列举了一些基本的 Java 程序,很适合初学者。
显示文本信息。显示1到50的数字列表,每个数字独立一行。找出两个数字中的最大值和最小值。使用多种方法交换两个数字。编写一个计算器程序,使之能够进行数字的加减乘除运算。创建两个类,练习重载和重写。在程序中使用数组。以上程序只是带你入门,让你能够编写一些基本的 Java 程序。这个列表可以更长,你可以添加更多的项目到这个列表中,为其他初学者创建更多的入门程序。记住,善用谷歌,它会让你学习编程的过程如虎添翼。
3. 使用 Java API 编写高级程序
当你完成了大部分的基础程序编写,并且掌握了基本的编程技巧之后,就可以进行下一步了。我会建议你努力学习 Java 集合和 Java IO 内部的 API。你需要熟悉这些 API 提供的各种类和接口,并利用它们来创建程序。需要注意的是,你应该查找已经存在的 API 和方法来实现功能,而不是自己实现这些逻辑。你的任务是熟悉这些 API,因此你只能够在这些已有的 API 中寻求解决方案。
同样,我列出了几个基本的程序供你参考。之后,你可以编写更多的程序,尽可能多地使用 JAVA 提供的 API 和类。
从控制台接收输入并打印。
从文件系统中读取文件并在控制台中打印文件内容。
创建一个新文件并在文件中写入数据。
从 URL 中读取数据并对其内容进行一些搜索将元素存储在列表中,然后遍历它。
使用 HashMap 存储随机的键值对,然后用多种方式遍历它。
对集合元素进行搜索和排序。
在这一阶段你编写的程序越多,就会获得更多的信心。熟练使用这些 API 之后,请进入下一节接受更加艰难的挑战吧。
4. 编写桌面程序和 Web 应用
通过这一步的学习,面对任何Java 面试你都能够信心满满,当你讨论 Java 相关的话题时也能够充满自信。你需要至少编写一个 Java 桌面或者 GUI 应用程序,比如计算器,然后再编写一个 Web 应用程序,比如医院管理程序。在前面的学习中,你已经掌握了最基本的 Java 知识,现在你需要去探索,然后编写出这两个应用程序。
你可以向 Java 专家、有经验的朋友、同事或者其他比你强的人寻求帮助。在搜索解决方案和学习基本概念时,阅读优秀资料。此外,还可以购买一些相关的书籍。总之,用一切方法把这两个应用程序做好。集中精力,哪怕几周甚至几个月的时间,也要把这两个程序做好。
我可以向你保证,当你最终完成这两个练习时,谈到 Java 你会获得空前的自信。更重要的是,它可以帮助你养成不惜一切代价完成一项任务的好习惯。这种持之以恒的态度对你职业生涯的长远发展是非常重要的。
5. 阅读和参与优秀的 Java 博客与论坛
完成上述四个步骤之后,我相信你在 Java 方面已经获得足够的自信,你可以去帮助其他的初学者。遇到初学者时,尽量帮他们解决问题,即使这会花费你一定的时间。比如 Stack Overflow 这样的论坛,程序员们经常在这里学习、分享或者进行职业规划。你可以从别人的错误中学习,开拓思想,并提升自己的思维能力。
事实上,这一步就像无限循环,只要有时间你都应该持续下去。看到你的成长我会非常欣慰。
以上就是关于学习 java 的最佳方式的想法。如果你碰巧同意我的意见,请发表评论。如果不同意,请提出你的建议。如果你的建议够好,我会欣然采纳。
另外:
参加 OCJP 认证是一个很好的学习 Java 的途径。当你从零开始学习开发 Java 应用程序时, 网上提供了大量有用的资源。
你可以去创业公司和跨国公司实习,实战是最好的学习方式:
https://hasjob.co/?q=internship
搭建 Java 开发环境:
想要编写 Java 程序,首先需要搭建开发环境。
有用的 Java IDE: 1. Eclipse – Eclipse Luna 2. Netbeans – 欢迎来到 NetBean 3. IntelliJ IDEAJava 在线学习资源:
Java 教程:https://docs.oracle.com/javase/tutorial
/Vogella Eclipse、Android、Java 培训和支持
Mkyong Java Web 开发教程
Java 参考书:
深入浅出 Java:
Java 傻瓜编程:
Java 编程参考 – 最新版
面试问题:
Java 面试内幕指南
Java 面试问题集锦熟
悉基础知识之后,请继续使用第三方库进行编程练习。学习计划、组织、模块化以及代码重用。
编码标准:
http://cleancode.sourceforge.net/wwwdoc/codingRules.html
论坛:
StackOverflow
CodeRanch
其他一些有用的资源:
编程实践与竞赛
在线计算机编程编程竞赛
SPOJ
编程实践
Euler 项目
TopCoder网站, 世界上最大的开发社区
Codeforces
HackerEarth Beta
HackerRank
LeetCode
教程
LearnStreet
GeeksforGeeks
代码学校
Bit Twiddling
CS 97SI:编程竞赛简介
CSE 博客 – 定量、数学、cse 拼图
数学
苹果、谷歌、Facebook、亚马逊和微软的技术面试问题汇总
黑客网站
好教程 – 最新教程
编程社交
Quora
Stack Overflow
CareerCup 面试问题
GitHub
Geeklist
必读
自学编程十年
提高编程技能的10个网站
Stack Overflow 上排名靠前的编程书籍:http://linkis.com/
其次
推荐在完整的学习路线图下跟随学习,有目的,有目标
1.Java基础(入门与进阶)
1.java基础入门
本套java基础入门教程包含四个重点知识点
知识点:
环境搭建:(重点掌握)
常用DOS命令及快捷键、EditPlus的安装、通用文本编辑快捷键、安装JDK、第一个Java程序的开发、Java注释、public class和class的区别。
基础语法:(重点与理解)
重点:变量、方法初步、运算符、数据类型、控制语句。
理解:标识符、关键字、字面量、方法重载/overload、方法执行是的内存变化、package与import。(方法重载/overload、方法递归、package与import里也包含重点)
IntelliJ IDEA工具的使用(重点)
数组初步:(重点与理解)
重点:一堆数组、可变长参数、二堆数组。
理解:数组数据结构详解、算法。
十一天阶段练习题
网盘链接:
链接:https://pan.baidu.com/s/1vf4ktCOO96_CTgnPInBCSg
提取码:u6ll
2.javase
本套javaSE进阶视频教程包含八个知识点
面向对象:(重点)
类的定义、对象的创建和使用、构造方法、当实例变量是一个引用的时候、封装性、this关键字、方法调用时参数的传递、空指针异常、累的继承、多态、final关键字、内部类……
数组高级特性:(重点)
数组拷贝及扩容、数组工具类Arrays的应用。
常用类:(重点及理解)
重点:
String、StringBuilder StringBuffer、Integer、Date。
掌握:
集合:(重点及理解)
重点:
UML演示Collection继承结构图、Collection接口常用方法、Collection的通用迭代、UML演示Map继承结构图、Map接口中常用方法、Hashtable集合的子类Properties、TreeMap集合、泛型、Collections集合工具类。
理解:
集合概述、List集合、HashMap集合、HashMap、Hashtable、ConcurrentHashMap的区别、增强for循环。
反射机制:(重点及理解)
重点:
获取Class的三种方式、通过反射机制调用无参数构造方法创建对象、类加载。
理解:
通过反射机制访问对象的Field、通过反射机制调用对象的Method。
Annotation:(重点及理解)
重点:
JDK内置注解:@Override、总结注解在开发中有什么作用。
理解:
自定义注解、反射机制读取注解。
异常:(重点及理解)
重点:
异常继承结构图、处理异常、finally语句块、final、finalize、finally有什么区别、异常在实际开发中的作用。
理解:
异常概述、方法覆盖与异常。
Java新特性:(重点及理解)
Java7特性重点:
switch支持String、泛型自动类型推断
理解:可catch多个异常,异常之间使用“|”分隔
Java8特性重点:Lambda表达式、接口中的默认方法和静态方法、新的Date API。
网盘链接:
链接:https://pan.baidu.com/s/1DDIOPPw7sg875IlhugszhQ
提取码:gdgs
javaweb前端
本套Web前端的知识点包含六个部分
javaSE:(重点及理解)
重点:
IO流、多线程以及线程的同步面试题。
理解:
NIO、网络编程。
MySQL:(重点及理解)
重点:
登录MySQL、基本命令、初始化测试数据、简单查询、条件查询、排序操作、分组函数、分组查询、单表DQL总结、链接查询、子查询、union&union all、limit、表、事务、视图、DBA命令、数据库设计三范式、34道SQL作业题。
理解:
MySQL安装与完美卸载、DBMS、SQL、DB、表的概述、SQL的分类、常用命令、数据处理函数、存储引擎、索引。
JDBC:(重点及理解)
重点:
JDBC编程六步、使用Statement完成增删改、连接数据库的信息在属性资源文件中配置、安装PowerDesigner工具,设计用户表、Statement和PreparedStatement区别、PreparedStatement演示增删改、PreparedStatement演示模糊查询、JDBC事务、悲观锁for update和for update nowait、java.util.Date和java.sql.Date的区别与相互转换、封装DBUtil工具类。
理解:
接口在开发中的作用、驱动配置、Statement演示登录时的SQL注入问题、PreparedStatement解决SQL注入。
HTML:(重点及链接)
重点:
第一个HTML、实体符号、表格、图片、超链接、列表、表单、HTML中元素的id属性、div和span。
理解:
HTML概述、基本标签、背景颜色和背景图片。
CSS:(重点及理解)
重点:
HTML中嵌入CSS样式的三种方式、边框、隐藏、字体、文本装饰、列表、设置鼠标悬停效果、内边距和外边距、布局float、定位、鼠标小手。
理解:
CSS的理解。
JavaScript:(重点及理解)
重点:
嵌入JS三种方式以及JS的注释、变量、null NaN undefined区别、JS中的事件、JS运算符之void、JS内置对象、DOM编程案例、BOM编程案例、JSON对象、总结一下浏览器向服务器发送请求的常见方式。
理解:
JavaScript概述、JavaScript包括三块:ECMAScript、DOM、BOM、标识符和关键字、JS数据类型(ES6版本之前的数据类型有6种 重点)、JS之控制语句、BOM和DOM的区别与联系。
网盘链接:
链接:https://pan.baidu.com/s/1BKhxkTD5aXdwAHJB89I4IQ
提取码:76xr
JavaWeb:
本阶段视频教程包含六个知识点
MyBatis:(重点及理解)
重点:
开发第一个MyBatis程序、MyBatis集成log4j打印日志信息、实现insert操作并演示MyBatis的事务机制、使用单独的属性资源文件配置连接数据库的信息、sqlMapper配置文件中namespace的作用、MyBatis的别名机制、MyBatis完成单表selectList操作、MyBatis完成update操作、MyBatis完成delete操作、作用域(Scope)和生命周期、在WEB应用的持久层DAO中使用MyBatis、MyBatis使用动态代理机制生成DAO接口的实现类、SqlMapper配置文件采用package的方式扫描、MyBatis的别名机制采用package的方式、parameterType详解、多参数传递、resultType详解、resultMap基本应用、#{}和${}的区别及选用。
理解:
MyBatis概述、resultMap高级应用、MyBatis的延迟加载机制、动态SQL、一级缓存和二级缓存、MyBatis-Plus、Mybatis通用Mapper、MyBatis分页插件PageHelper。
GIT:(重点及理解)
重点:
安装Git、Git版本库、时光机穿梭、远程仓库、分支管理、标签管理、使用GitHub、使用码云、搭建Git服务器、IDEA集成Git、IDEA中使用Git。
理解:
Git概述。
BootStrap:(重点及理解)
重点:
下载Bootstrap库、第一个Bootstrap程序、完成Bootstrap案例。
理解:
Bootstrap概述、常见的前端UI框架有哪些、JS、jQuery、Bootstrap的区别与联系、要实现的Bootstrap案例效果展示。
CRM:(重点)
重点:
软件开发生命周期、CRM核心业务介绍、CRM核心功能实现。
Linux:(重点及理解)
重点:
Linux常用命令、发布web项目到Linux。
理解:
Linux操作系统概述、安装虚拟机vmware、在虚拟机上安装Linux操作系统CentOS7、CentOS7操作系统目录介绍、常见操作Linux的远程工具包括哪些、远程工具。
网盘链接:
链接:https://pan.baidu.com/s/1ifKuxTH8S4vsfm-Ram793g
提取码:w0oo
再次
Java零基础:详细的知识点。
源码:
开发工具:
homework:
配套视频:
课堂笔记+代码:
链接:https://pan.baidu.com/s/1FYrPDS3kVNKXG70B67ow9w
提取码:ybcf
课堂代码:
链接:https://pan.baidu.com/s/1RsLBJBmvhMwZJeax8jOwgQ
提取码:nf9g
视频:
链接:https://pan.baidu.com/s/1bvDTcgup0I4iW2M_KKIrDg
提取码:6h1p
因为视频教程太多,没有更新完,会不断地更新所以推荐大家阅读:
每天会持续更新实用,有趣,前沿的干货资源及技术
引用部分的文章来源:csdn