java一般怎么学习呢?

作者&投稿:菜单 (若有异议请与网页底部的电邮联系)
java该怎么自学?~

自学的困难就是,不知道该从哪里开始,才怎么学,没有一个系统的学习路径,现在黑马程序员最新上线了java学习路线图,非常好的解决了一个难题,可以去搜索看一下。
一、java基础
学习任何一门编程语言,首先要学习的是基础语法,开启Java学习的第一步,当然就是深入掌握计算机基础、编程基础语法,面向对象,集合、IO流、线程、并发、异常及网络编程,这些我们称之为JavaSE基础。当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面端软件。

JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。
在Java基础板块中有6个子模块的学习:
技术树


二、数据库
互联网最具价值的是数据,任何编程语言都需要解决数据存储问题,而数据存储的关键技术是数据库。MySQL和Oracle都是广受企业欢迎的数据库管理系统。Java程序和数据库通信的最常见技术是JDBC,Druid和C3P0。学习这些数据库技术后,可以掌握数据库运维技术、复杂业务表结构设计规范、工作中常见的SQL操作、软件数据存储等。


数据库不仅仅是Java开发工程师的必学课程,也是其他语言都需要掌握的技能。用于对交互过程中客户的数据进行存储。
该板块包括关系型数据库和非关系型数据库。
例如:MySQL、oracle、redis、MongoDB等。数据库学习完毕后,可以将数据存储到数据库中,也可以通过SQL语句从数据库中查询数据,结合Java项目可以实现动态站点的数据的保存。
技术树


三、前端技术
浏览器展示给用户看到的网页就是前端,前端有三大基础技术分别为Html、CSS、JavaScript,这些学完后,为了做出更好、更炫的交互式体验效果,我们还需要学习jQuery、ElementUI、Vue、Ajax,以及打包工具webpack。学完这些技术后,我们可以开发微信小程序、响应式网站、移动端网站、开发类似京东一样的B2B2C商城、管理后台等。


Javaweb阶段包括前端、数据库和动态网页。Javaweb是互联网项目的入门课程,是学习后面高进阶课程的基础。
首先,我们先看一下前端板块。该板块主要包括如下几个模块:
学习前端技术后,可以完成类似京东、淘宝的前端工程的编写。
技术树


四、动态网页
掌握前端技术只能做静态网站,但它页面数据一成不变,而动态网站可以根据数据库中变更的数据实现不同的内容展示,应用更广泛,因此程序员必须要学会做动态网站。使用Java做动态网站,我们需要学习Servlet、Filter、Session、Cookie、JSP、EL表达式、JSTL等做动态网站的完整知识体系,学完可研发出OA系统、内容网站、BBS等。


动态网页是中级程序员服务器端编程的基础,是高级框架学习的必备课程,后期学习的框架、服务底层都是基于动态网页技术之上的。
该板块包括Javaweb核心技术、包括Servlet、Request、Response、Cookie和Session等,通过这些技术的学习可以完成动态站点开发,可更好的完成服务器端与客户的交互,让页面的数据“动”起来,做出小型的应用系统。
技术树


五、编程强化
前面学了JavaSE基础,但它在企业级应用中程序处理业务的效率并不高、扩展差,编程强化是对JavaSE基础的加强,将针对性的提高程序处理业务的执行效率、增强程序扩展性。编程强化将加强多线程高级学习,涉及线程内存、线程通信等技术。学完以后,能增加一个中级程序员的知识储备,无论在面试过程中还是将来技术的深入打一个良好的基础。


编程强化是对解决实际问题方面做一个深入的了解和应用,是对JavaSE基础的加强,对后期自动以框架和对一些服务框架的底层理解做支撑。
编程强化板块主要包括如下几个模块:多线程高级、涉及线程内存、线程通信等;JVM优化,对JVM底层进行调优来提高项目执行效率;NIO,同步非阻塞IO来提高效率。
学习该阶段,可以对原有项目进行优化从而使程序更快更稳定。
技术树


六、软件项目管理
公司开发都是团队协同开发,为更好的掌握实际开发,我们还需要学习常用的项目管理平台、版本控制器、项目构建工具以及自动化部署工具。项目开发一定是有版本升级的,管理好项目进度和版本需要Git、Maven、Sonar这样的系统平台。学习完软件项目管理后,将掌握整个项目实际开发过程以及整个项目开发过程中所使用协同开发工具。


JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。
在Java基础板块中有6个子模块的学习:基础语法,可帮助你建立基本的编程逻辑思维;面向对象,以对象方式去编写优美的Java程序;集合,后期开发中存储数据必备技术;IO,对磁盘文件进行读取和写入基础操作;多线程与并发,提高程序效率;异常,编写代码逻辑更加健全;网络编程,应用服务器学习基础,完成数据的远程传输。
学习该阶段,可以完成一些简单的管理系统、坦克大战游戏、QQ通信等。
技术树


七、热门技术框架
Javaweb掌握后,已经具备企业中实际项目的开发能力了,但它开发效率低,代码量大,开发周期长、开发成本高。企业中广泛使用一些优秀的框架技术来解决上述问题,因此我们还需要学习框架技术,项目开发中主流的Java框架技术有SpringMVC、Spring、MyBatis、MyBatis Plus、SpringData等。这些框架技术都是一个优秀程序员所必备的技能。


使用Javaweb进行企业级开发是完全可以的,但是开发效率比较低,所以对常用的逻辑操作进行封装就形成了框架,因此框架是企业开发的入门技能。
热门框架板块主流框架有如下几个:Spring框架,占据统治地位,其生态系统涉及各个方面解决方案;MyBatis框架,使用ORM思想对数据库进行操作。
该板块学习后,就可以进行真实企业级项目开发了,做出的项目也会更加符合企业要求。
技术树


八、分布式架构
需要用到分布式微服务的技术。学习完该阶段课程,可以具备大型SOA架构和微服务架构能力,能掌握大型微服务项目必备技术和实际经验。企业发展过程中,业务量和用户量逐渐增加,为了保证系统的可用性,系统越做越复杂,研发人员增多,大家很难共同维护一个复杂的系统,往往修改部分内容,导致牵一发而动全身,所以我们需要升级系统架构,


随着互联网的发展,业务的复杂性和用户的体验性都需要提高,所以分布式架构出现了。该板块主要讲解的是分布式架构的相关解决方案。
主要包括如下模块:Dubbo,高性能的 RPC 服务发布和调用框架;SpringBoot,简化Spring应用的初始搭建以及开发过程;Spring Cloud,一系列框架的有序集合,如服务发现注册、配置中心、负载均衡、断路器、数据监控等。
该板块的学习,可以具备大型互联网项目开发的必备技术和实际经验,为进入BATJ打下基础
技术树


九、服务器中间件
在分布式系统架构中,服务与服务之间的异步通信,是非常常见的需求之一,消息中间件的诞生正是为了解决这类问题。目前市面上的主流消息中间件有RabbitMQ、RocketMQ、Kafka,我们将学习这3个消息中间件,实现分布式项目中的异步通信。学习完这些后,可以实现分布式项目的异步通信、分布式应用日志收集、分布式事务等。


中间件板块是大型互联网项目中必备的。服务中间件可以帮助各子模块间实现互相访问,消息共享或统一访问等功能。其包括远程服务框架中间件,例如阿里(Apache)的RPC框架Dubbo等;消息队列中间件,例如:阿里巴巴开源分布式中间件RocketMQ、高吞吐量消息发布和流处理服务Kafka等。
学习服务中间件是中级JavaEE工程师必要技术,也是JavaEE架构师必须精通的技术。
技术树


十、服务器技术
程序开发完成后,我们把它们打包部署到服务器中运行,所以我们需要学习常见的服务器技术,常见的服务器有Linux和Window server,Linux性能高,是当前主流。我们写好的项目需要用一个软件运行起来,这个软件叫web容器,我们需要在服务器上安装web容器来发布项目,当前主流的web容器有tomcat、jetty、nginx、undertow。


不管是使用原生Javaweb进行开发,还是使用框架进行开发,项目最终需要对外发布才能供全世界的人访问到,而服务器板块就可以解决这个问题,所以服务器是项目发布的必要技术。该板块包括虚拟化和web应用服务器的学习,主要包括如下几个模块:Vmware,虚拟机软件;Linux,专门用于服务器的系统;Nginx,集群部署时反向代理服务器;Tomcat,项目发布时主要使用的服务器。
该板块学习后,我们就可以把开发好的项目发布到服务器中,然后供你的小伙伴远程访问了,超酷!
技术树


十一、容器技术
具备了服务器操作系统及web容器,我们就可以部署单机的站点,在分布式系统中,几十上百的服务,如果使用单机这种部署方式,会投入很高的人力,同时出错的几率也大。所以服务器虚拟化技术Docker也称为如今的必备技术了,Docker可以帮助运维人员实行快速部署,批量维护.使用Kubernetes实现自动化部署、大规模可伸缩、应用容器管理。


容器化技术是近两年超级火的一个专题,通过容器化技术可以对环境进行打包,方便移植,大大提高了开发效率。该板块包括容器化技术Docker和其平台管理引擎Kubernetes,其中,Docker 是一个开源的应用容器引擎,可以打包应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows 机器上,也可以实现虚拟化。而Kubernetes是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效。通过该板块的学习,你可以通过上述技术快速搭建环境,节省开发时间,提高开发效率。
技术树


十二、业务解决方案
企业开发中会遇到一些通用的业务场景,诸如:搜索引擎、缓存、定时任务、工作流、报表导出、日志管理、系统监控等,那么这些通用的解决方案也有现成优秀的免费开源中间件,可供使用。诸如:ElasticSearch、Lucene、Solr、redis、MongoDB、slf4J、ECharts、Quartz、POI等。业务解决方案课程的业务方案和技术难点,解决了企业开发中90%以上的痛点和难点。


虽然我们已经具备了基础技术和高阶技术,但是要想与企业开发相接轨,还需要对实际项目的业务解决方案进行探究。而此版块就是在实际业务场景中的真实解决方案集合,常用的业务解决方案有如下:搜索业务场景解决方案、日志收集与分析场景解决方案、工作流引擎场景解决方案、任务调度场景解决方案、地图开发平台场景解决方案、支付开放平台场景解决方案、图表可视化场景解决方案。通过分析实际业务来学习这个解决方案技术集,完全可以达到中级甚至高级工程师水平。
技术树

自学java也是一个比较不错的学习方式,但在自学过程中更要注重学习方法的运用和掌握。
通过java视频掌握基础知识
小伙伴在自学java开发过程中,可以找一些java视频来学习,我个人比较喜欢B站上康师傅的教程,讲的很细,对于自学java开发的人来说,是非常需要一套讲解比较清晰的课程。
项目实战练习
小伙伴在自学java开发过程中,最好能够找到一些项目实战去练习,当然在小伙伴学习初期可以练习一些和相关基础知识配套的小项目,可以加深小伙伴对java开发技术知识的理解。
多交流,培养自己的编程思维
最好是小伙伴在学习java开发过程中有朋友是从事这个行业的,平时要多和他进行交流,慢 慢捋顺自己的编程思路;如果没有朋友从事这一行,可以到相关博客或添加一些群,和群里 面的大佬交流,也是可以获得一些技术知识的。

工资高不一定你就能够学会,如果谁都能学会那他工资还有这么高吗

如果实在想学,建议你先去网上找找视频看看Java了再去学

Java学习路线:

JavaSE->数据库->JDBC->前端基础->JQuery->JavaWEB->Spring->MyBatis->Maven->SpringBoot->SpringCloud->Redis->Git->Linux

整体教程目录:

项目源码:

微服务项目:

项目优化:

Linux:

阶段1 java语言基础

1-1-Java基础语法

1、第1节 java运行环境 提取码:8ax6

2、第2节 HelloWorld案例 提取码:us3j

3、第3节 关键字&标识符 提取码:13dl

4、第4节 常量&变量 提取码:6331

5、第5节 数据类型转换 提取码:9glo

6、第6节 运算符 提取码:ys2n

7、第7节 方法入门 提取码:b1ib

8、第8节 JDK9新特性-Jshell 提取码:ounw

9、第9节 选择结构-if语句-switch语句 提取码:0d14

10、第10节 循环结构-for-while-do..while 提取码:k2ig

11、第11节 开发工具-IDEA 提取码:404i

12、第12节 方法复习 提取码:ulku

13、第13节 方法重载 提取码:wfkr

14、第14节 数组 提取码:p8ml

1-2 -面向对象和封装

1、1_2_1_01_面向对象思想的概述 提取码:599q

2、1_2_1_02_面向对象思想的举例 提取码:lv2s

3、1_2_1_03_类和对象的关系 提取码:7rs3

4、1_2_1_04_类的定义 提取码:xvhx

5、1_2_1_05_对象的创建及其使用 提取码:xsal

6、1_2_1_06_手机类练习 提取码:lnho

7、1_2_1_07_一个对象的内存图 提取码:wnaz

8、1_2_1_08_两个对象使用同一个方法的内存 提取码:thet

9、1_2_1_09_两个引用指向同一个对象的 提取码:3he6

10、1_2_1_10_使用对象类型作为方法的参 提取码:73w4

11、1_2_1_11_使用对象类型作为方法的返 提取码:gjmn

12、1_2_1_12_成员变量和局部变量的区别 提取码:eqep

13、1_2_1_13_面向对象三大特征之封装性 提取码:zlcz

14、1_2_1_14_private关键字的作用及使用 提取码:4i77

15、1_2_1_15_练习使用private关键字定义 提取码:dctu

16、1_2_1_16_this关键字的作用 提取码:x68z

17、1_2_1_17_构造方法 提取码:8xkz

18、1_2_1_18_定义一个标准的类 提取码:opmf

1-3-Java语言高级

1、01-常用API_1 提取码:alfe

2、02-继承与多态 提取码:h5o7

3、03-常用API第二部分 提取码:olnf

4、04-集合 提取码:40ca

5、05-异常与多线程 提取码:mu40

6、06-File类与IO流 提取码:4bpt

7、07-网络编程 提取码:s5ks

8、08-JDK8新特性 提取码:jnbj

9、09-基础加强 提取码:1ngz

10、10-MySQL 提取码:30y4

11、11 -JDBC 提取码:15q7

阶段2 JavaWeb+旅游网

01 HTML和CSS

1、第1节 概念介绍 提取码:dal6

2、第2节 基本标签 提取码:4uyq

3、第3节 表单标签 提取码:h1ok

4、第4节 CSS概述 提取码:ubyx

5、第5节 CSS_选择器 提取码:zep7

6、第6节 CSS属性 提取码:9l4h

7、第7节 CSS_案例-注册页面 提取码:onc6

02 JavaScript

1、01 JavaScript_简介 提取码:2efk

2、02 JavaScript基础语法 提取码:bl89

3、03 JavaScript运算符 提取码:v9sh

4、04 JavaScript特殊语法 提取码:yj6p

5、05 JavaScript_语法_流程控制语 提取码:tx9j

6、06 JavaScript_对象 提取码:df4q

7、07 DOM和事件的简单学习 提取码:ljt5

8、08 BOM对象 提取码:jwwy

9、09 DOM对象 提取码:ukah

10、10JavaScirpt中的事件 提取码:ab1w

03 BootStrap

1、01 快速入门 提取码:5jhm

2、02Bootstrap_栅格系统 提取码:1xuu

3、03Bootstrap_全局CSS样式 提取码:fjka

4、04Bootstrap_组件和插件 提取码:g5wp

5、05案例_旅游网 提取码:jxy3

04 XML

1、01 xml基础 提取码:jose

2、02 xml_约束 提取码:q0xr

3、03 xml_解析 提取码:bbsn

05 Tomcat

1、01web相关概念 提取码:p2az

2、02 tomcat基本操作 提取码:zqqx

3、03 tomcat_部署项目 提取码:i4a2

06-Servlet和HTTP请求协议

1、01Servlet_快速入门 提取码:ah8k

2、02Servlet_生命周期方法 提取码:w7t9

3、03Servlet_3.0注解配置 提取码:d8zy

4、04 IDEA与tomcat相关配置 提取码:5rvl

5、05 Servlet_体系结构与urlpartten配置 提取码:qf3i

6、06 HTTP请求协议 提取码:5f7v

07 -Request和Respons

1、01 Request原理和继承体系 提取码:3hxr

2、02 Request_获取请求数据 提取码:oxl7

3、03 请求转发和request共享数据 提取码:9xbq

4、04 Request_获取ServletContext 提取码:yfaz

5、05 request登录案例 提取码:owgj

6、06 HTTP响应协议 提取码:xs8k

7、07 response之重定向 提取码:i8de

8、08 response之相对路径和绝对路径 提取码:6p8q

9、09 response之输出数据 提取码:54fe

10、10 response之验证码 提取码:uy06

11、11 ServletContext对象 提取码:yopc

12、12 文件下载 提取码:szv9

08-Cookie和Session

1、第1节 Cookie快速入门 提取码:ncss

2、第2节 Cookie_细节 提取码:la7v

3、第3节 Cookie案例 提取码:mamn

4、第4节 JSP改造Cookie案例 提取码:fpkd

5、第5节 Session快速入门 提取码:0tyf

6、第6节 Session细节 提取码:obu1

7、第7节 Session之验证码案例 提取码:fxtt

09-JSP,EL和JSTL

1、第1节 JSP基础语法 提取码:7rvw

2、第2节 MVC 提取码:ywmz

3、第3节 EL介绍和运算符 提取码:5gxf

4、第4节 EL获取域中存储的数据 提取码:yha0

5、第5节 JSTL常用标签 提取码:mr92

10-综合案例(用户信息)

1、第1节 登录功能 提取码:d7v4

2、第2节 添加删除修改功能 提取码:40df

3、第3节 删除选中功能 提取码:jhlx

4、第4节 分页查询功能 提取码:8mxb

5、第5节 复杂条件查询功能 提取码:qj8m

11-Filter和Listener

1、第1节 Filter快速入门 提取码:7qrm

2、第2节 Filter细节 提取码:s2w9

3、第3节 Filter案例 提取码:f53s

4、第4节 监听器 提取码:kjwy

12-Jquery

1、第1节 JQuery基础 提取码:0uj1

2、第2节 JQuery选择器 提取码:o85w

3、第3节 Jquery基础案例 提取码:5u3t

4、第4节 JQuery动画和遍历 提取码:ut21

5、第5节 JQuery事件绑定和切换 提取码:e5sv

6、第6节 Jquery高级案例 提取码:ytj4

13-Ajax和JSON

1、第1节 原生JS方式实现Ajax 提取码:xh70

2、第2节 JQuery方式实现Ajax 提取码:woaa

3、第3节 JSON基础语法 提取码:pqhj

4、第4节 JSON_解析器 提取码:zbzx

14-Redis

1、第1节 Redis环境搭建 提取码:poob

2、第2节 Redis命令操作 提取码:bq6d

3、第3节 Redis持久化 提取码:0x4x

4、第4节 Jedis代码操作 提取码:bon3

5、第5节 Jedis连接池 提取码:hu0n

6、第6节 redis案例 提取码:cosn

15-Maven基础

1、第1节 基本概念 提取码:4fok

2、第2节 maven的安装和仓库种类 提取码:gw1r

3、第3节 maven标准目录结构和常用命令 提取码:3jn7

4、第4节 maven生命周期和概念模型图 提取码:oqrb

5、第5节 使用骨架创建maven的java工程 提取码:k26p

6、第6节 maven工程servlet实例 提取码:xdmw

16-旅游网

1、01 准备工作 提取码:uprl

2、02 注册功能 提取码:9pf5

3、03 登陆和退出功能 提取码:0hkk

4、04 BaseServlet抽取 提取码:qswt

5、05 分类数据展示功能 提取码:649n

6、06 旅游线路分页展示分页展示 提取码:o6v6

7、07 旅游线路查询 提取码:pzjb

8、08 旅游线路详情 提取码:wtke

9、09 旅游线路收藏 提取码:3236

阶段3 1.Mybatis

1、01.Mybatis课程介绍及环境搭建 提取码:6zwc

2、02.Mybatis入门案例 提取码:2aoi

3、03.自定义Mybatis框架 提取码:r9wc

4、04.自定义Mybatis框架基于注解开发 提取码:1jzg

5、05.使用Mybatis完成CRUD 提取码:d4b7

6、06.使用Mybatis完成DAO层的开发 提取码:dzvr

7、07.Mybatis的连接池及事务 提取码:ij3e

8、08.动态SQL 提取码:yiys

9、09.Mybatis的多表操作 提取码:dt9w

10、10.JNDI扩展知识 提取码:u5fx

11、11.Mybatis的缓存 提取码:ng54

12、12.Mybatis注解开发 提取码:yh6z

阶段3 2.Spring

1、01.Spring框架简介 提取码:va1x

2、02.程序间耦合 提取码:s8cg

3、03.Spring的 IOC 和 DI 提取码:59of

4、04.Spring的常用注解 提取码:tfw5

5、05.基于XML的IOC的案例1 提取码:1gf9

6、06.Spring的新注解 提取码:pjzs

7、07.银行转账案例 提取码:um2b

8、08.面向切面编程 AOP 提取码:4tv2

9、09.JdbcTemplate的基本使用 提取码:vjxx

10、10.Spring中事务控制 提取码:rx3v

阶段3 3.SpringMVC

1、01.SpringMVC概述及入门案例 提取码:e2ty

2、02.参数绑定及自定义类型转换 提取码:657g

3、03.SpringMVC常用注解 提取码:emrc

4、04.SpringMVC返回值类型及响应数据类型 提取码:bd9t

5、05.文件上传 提取码:pzy7

6、06.异常处理及拦截器 提取码:7a2y

7、07.SSM整合案例 提取码:lzzd

阶段4 3.Spring Data JPA

1、01.JAP的引入 提取码:o61r

2、02.JPA的入门案例 提取码:ld9u

3、03.主键生成策略 提取码:f8ri

4、04.JPA的基本操作 提取码:yxcv

5、05.JPQL查询 提取码:cxwq

6、06.spring data jpa 简介 提取码:678v

7、07.入门案例 提取码:2u3l

8、08.执行过程分析 提取码:upe4

9、09.spring data jpa查询 提取码:smsc

10、10.动态查询 提取码:qoxx

11、11.多表操作-一对多 提取码:fai2

12、12.多表操作-多对多 提取码:bvvg

13、13.对象导航查询 提取码:ietq

阶段4 4.Spring Boot

1、01.spring boot 介绍 提取码:fzi8

2、02.spring boot 入门 提取码:bp25

3、03.spring boot 原理分析 提取码:8yer

4、04.spring boot 配置文件 提取码:wvoc

5、05.spring boot 集成 提取码:ywin

阶段4 5.Git

1、01.Git简介及安装使用 提取码:a0kx

2、02.连接远程仓库 提取码:kziq

3、03.Git分支 提取码:5rm2


原文链接:https://zhuanlan.zhihu.com/p/2



首先,我个人比较推崇的学习方法是:先学java前段,也就是HTML,css,js,因为学习java以后肯定是往java ee方向发展的,学习完前端,在学习后端很多东西比计较容易理解!
其中J2SE是关键,如果学好了java se 部分,基础扎实了,后面进阶学习也比较轻松!
Java的学习内容分为几个阶段分享给你看看:
1基础知识
在学习Java之前要先了解计算机基础知识,然后再学习Java,同时也要熟知DOS常用命令、Java概述、JDK环境安装配置、环境变量配置,当JDK和环境变量配置完毕后,你便可以编写Java程序。
2编程格式
此时你需要了解编程的具体流程,在开发过程中要文字“注释”,也要掌握“关键词”的使用时注意事项,对“标识符、常量与变量、数据类型、运算符、流程控制语句、数组、方法”要理解并能熟练使用。
3面向对象
生活中随处可见的事物便是对象,对象分为“静态部门和动态部分”,想要真正了解Java面向对象,你要对“面向对象思想、类与对象、成员变量和局部变量、匿名对象、封装、this关键字、构造方法、继承、多态、抽象类、接口、内部类”能够理解,在开发中能够熟练使用。
4常用类
在程序设计中,合理和充分利用类库提供的类和接口,不仅可以完成字符串处理、绘图、网络应用、数学计算等多方面的工作,而且可以大大提高编程效率,使程序简练、易懂。
5集合与IO
集合是存放数据的容器,在学习Java中要清楚知道“什么是集合?数组与集合有什么区别,集合类的特点,掌握Collection接口、Iterator接口、List接口、ListIterator接口、ArrayList类、Vector类、LinkedList类、泛型、Set接口、HashSet类、Map接口、HashMap类、LinkedHashMap类等。”而IO是输出的借口,Java.io是Java的核心库,你需要了解“异常、File类、IO流”,编程中也会涉及到“多线程、网络编程、反射”,所以你也要熟悉它们的应用。
6J2EE
这一点在学习中必须知晓,在Java开发中CoreJava是核心,在JavaWeb开发中Servlet是核心,而在J2EE开发中,必须要知道MVC模型。
7框架
对于框架的作用,我想每个Java工程师都该知晓,除了著名的MVC模型,SSH(Struts+Spring+Hibernate)也非常好用,同时,也要对开发的JBPM、搜索引擎Lucence及使系统对外提供接口的webservice应用组件等都是应该要掌握的。
8工具
编写Java程序可以使用以下工具:notepad(微软操作系统自带)、Editplus、Notepad++、Eclipse、MyEclipse,最受欢迎的开发辅助工具有:日志工具Log4j、测试工具Junit、版本管理工具SVN还有项目管理maven等。
学习完这些差不多就学完了

  零基础学习Java想入门首先要学习一些JavaEE基础知识,比如:Java基础语、面向对象、核心类库、集合、异常、IO、线程、JDK新特性等知识点。学好基础知识,把基础打牢再继续学习会简单很多。
  打好基础后接下来还要学习JavaWeb开发、Java高级框架等知识,主要包含:前端技术、数据库 、JAVA数据库操作、软件服务器及服务器相关技术
、动态网页JSP、AJAX、SpringMVC、MyBatis、Spring、MySQL高级、Linux&Redis&Nginx、Maven等知识点。
  第三,想入门Java只学理论知识是不够的,还要多多进行实操训练,一是巩固所学的理论知识;二是增加自己的实战经验,找工作时有相关项目经验会容易很多;三是可以查漏补缺,找出自己学习中不足的地方好继续改进,一举多得。

次零基础学习Java想入门首先要学习一些JavaEE基础知识,比如:Java基础语、面向对象、核心类库、集合、异常、IO、线程、JDK新特性等知识点。学好基础知识,把基础打牢再继续学习会简单很多。
打好基础后接下来还要学习JavaWeb开发、Java高级框架等知识,主要包含:前端技术、数据库 、JAVA数据库操作、软件服务器及服务器相关技术 、动态网页JSP、AJAX、SpringMVC、MyBatis、Spring、MySQL高级、Linux&Redis&Nginx、Maven等知识点。
第三想入门Java只学理论知识是不够的,还要多多进行实操训练,一是巩固所学的理论知识;二是增加自己的实战经验,找工作时有相关项目经验会容易很多;三是可以查漏补缺,找出自己学习中不足的地方好继续改进,一举多得。

传智播客-黑马程序员-Java

每个人的学习方法是不同的,一个人的方法不见得适合另一个人,我只能是谈自己的学习方法。因为我学习Java是完全自学的,从来没有问过别人,所以学习的过程基本上完全是自己摸索出来的。我也不知道这种方法是否是比较好的方法,只能给大家提供一点参考了。

学习Java的第一步是安装好JDK

写一个Hello ?World,其实JDK的学习没有那么简单,关于JDK有两个问题是很容易一直困扰Java程序员的地方:一个是CLASSPATH的问题,其实从原理上来说,是要搞清楚JRE的ClassLoader是如何加载Class的;另一个问题是package和import问题,如何来寻找类的路径问题。把这两个问题摸索清楚了,就扫除了学习Java和使用JDK的最大障碍。推荐看一下王森的《Java深度历险》,对这两个问题进行了深入的探讨。

第二步是学习Java的语法

Java的语法是类C++的,基本上主流的编程语言不是类C,就是类C++的,没有什么新东西,所以语法的学习,大概就是半天的时间足够了。唯一需要注意的是有几个不容易搞清楚的关键字的用法,public,protected,private,static,什么时候用,为什么要用,怎么用,这可能需要有人来指点一下,我当初是完全自己琢磨出来的,花了很久的时间。不过后来我看到《Thinking in Java》这本书上面是讲了这些概念的。

第三步是学习Java的面向对象的编程语言的特性的地方。

比如继承,构造器,抽象类,接口,方法的多态,重载,覆盖,Java的异常处理机制。对于一个没有面向对象语言背景的人来说,我觉得这个过程需要花很长很长时间,因为学习Java之前没有C++的经验,只有C的经验,我是大概花了一个月左右吧,才彻底把这些概念都搞清楚,把书上面的例子反复的揣摩,修改,尝试,把那几章内容反复的看过来,看过去,看了不下5遍,才彻底领悟了。不过我想如果有C++经验的话,应该一两天时间足够了。那么在这个过程中,可以多看看《Thinking in Java》这本书,对面向对象的讲解非常透彻。可惜的是我学习的时候,并没有看到这本书,所以自己花了大量的时间,通过自己的尝试和揣摩来学会的。

第四步就是开始熟悉Java的类库。

Java的基础类库其实就是JDK安装目录下面jre/lib/rt.jar这个包。学习基础类库就是学习 rt.jar。基础类库里面的类非常非常多。据说有3000多个,我没有统计过。但是真正对于我们来说最核心的只有4个,分别是

java.lang.*;

java.io.*;

java.util.*;

java.sql.*;

这四个包的学习,每个包的学习都可以写成一本厚厚的教材,而O'reilly也确实是这样做的。我觉得如果时间比较紧,是不可能通过读四本书来学习。我觉得比较好的学习方法是这样的:  

首先要通读整个package的框架,了解整个package的class,interface,exception的构成,最好是能够找到介绍整个包框架的文章。这些专门介绍包的书籍的前几章应该就是这些总体的框架内容介绍。

对包整体框架的把握并不是要熟悉每个类的用法,记住它有哪些属性,方法。想记也记不住的。而是要知道包有哪些方面的类构成的,这些类的用途是什么,最核心的几个类分别是完成什么功能的。我在给人培训的时候一般是一次课讲一个包,所以不可能详细的介绍每个类的用法,但是我反复强调,我给你们讲这些包的不是要告诉你们类的方法是怎么调用的,也不要求你们记住类的方法调用,而是要你们了解,Java给我们提供了哪些类,每个类是用在什么场合,当我遇到问题的时候,我知道哪个类,或者哪几个类的组合可以解决我的问题,That'all!,当我们具体写程序的时候,只要你知道该用哪个类来完成你的工作就足够了。编码的时候,具体的方法调用,是边写代码,边查Documentation,所有的东西都在Documentation里面,不要求你一定记住,实际你也记不住3000多个类的总共将近10万个方法调用。所以对每个包的总体框架的把握就变得极为重要。

第五步,通过上面的学习,如果学的比较扎实的话,就打好了Java的基础了,剩下要做的工作是扫清Documentation里面除了上面4个包之外的其他一些比较有用处的类。相信进展到这一步,Java的自学能力已经被培养出来了,可以到了直接学习Documentation的水平了。除了要做GUI编程之外,JDK里面其他会有用处的包是这些:

java.text.*;

java.net.*;

javax.naming.*;

这些包里面真正用的比较多的类其实很少,只有几个,所以不需要花很多时间。

第六步,Java Web 编程

Web编程的核心是HTTP协议,HTTP协议和Java无关,如果不熟悉HTTP协议的话,虽然也可以学好Servlet/JSP编程,但是达不到举一反三,一通百通的境界。所以HTTP协议的学习是必备的。如果熟悉了HTTP协议的话,又有了Java编程的良好的基础,学习Servlet/JSP简直易如反掌,我学习Servlet/JSP就用了不到一周的时间,然后就开始用JSP来做项目了。

在Servlet/JSP的学习中,重头仍然是Servlet Documentation。Servlet API最常用的类很少,花比较少的时间就可以掌握了。把这些类都看一遍,多写几个例子试试。Servlet/JSP编程本质就是在反复调用这些类来通过 HTTP协议在Web Server和Brower之间交谈。另外对JSP,还需要熟悉几个常用JSP的标记,具体的写法记不住的话,临时查就是了。

此外Java Web编程学习的重点要放在Web Application的设计模式上,如何进行业务逻辑的分析,并且进行合理的设计,按照MVC设计模式的要求,运用Servlet和JSP分别完成不同的逻辑层,掌握如何在Servlet和JSP之间进行流程的控制和数据的共享,以及Web Application应该如何配置和部署。

第七步,J2EE编程

以上的学习过程如果是比较顺利的话,进行到这一步,难度又陡然提高。因为上面的知识内容 都是只涉及一个方面,而像EJB,JMS,JTA等核心的J2EE规范往往是几种Java技术的综合运用的结晶,所以掌握起来难度比较大。

首先一定要学习好JNDI,JNDI是App Server定位服务器资源(EJB组件,Datasouce,JMS)查找方法,如果对JNDI不熟悉的话,EJB,JMS这些东西几乎学不下去。 JNDI其实就是javax.naming.*这个包,运用起来很简单。难点在于服务器资源文件的配置。对于服务器资源文件的配置,就需要看看专门的文档规范了,比如web.xml的写法,ejb-jar.xml的写法等等。针对每种不同的App Server,还有自己的服务资源配置文件,也是需要熟悉的。

然后可以学习JTA,主要是要理解JTA对于事务的控制的方法,以及该在什么场合使用JTA。这里可以简单的举个例子,我们知道一般情况可以对于一个数据库连接进行事务控制(conn.setAutoCommit (false),....,conn.commit()),做为一个原子操作,但是假设我的业务需求是要把对两个不同数据库的操作做为一个原子操作,你能做的到吗?这时候只能用JTA了。假设操作过程是先往A数据库插一条记录,然后删除B数据库另一个记录,我们自己写代码是控制不了把整个操作做为一个原子操作的。用JTA的话,由App Server来完成控制。

在学习EJB之前要学习对象序列化和RMI,RMI是EJB的基础。接着学习JMS和EJB,对于EJB来说,最关键是要理解EJB是如何通过RMI来实现对远端对象的调用的,以及在什么情况下要用到EJB。

在学习完EJB,JMS这些东西之后,你可能会意识到要急不可待学习两个领域的知识,一个是UML,另一个是Design Pattern。Java企业软件的设计非常重视框架(Framework)的设计,一个好的软件框架是软件开发成功的必要条件。在这个时候,应该开始把学习的重点放在设计模式和框架的学习上,通过学习和实际的编程经验来掌握EJB的设计模式和J2EE的核心模式。

J2EE规范里面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外还有很多很多的企业技术,这里不一一进行介绍了。

另外还有一个最新领域Web Services。Web Services也完全没有任何新东西,它像是一种黏合剂,可以把不同的服务统一起来提供一个统一的调用接口,作为使用者来说,我只要获得服务提供者给我的WSDL(对服务的描述),就够了,我完全不知道服务器提供者提供的服务究竟是EJB组件,还是.Net组件,还是什么CORBA组件,还是其他的什么实现,我也不需要知道。Web Services最伟大的地方就在于通过统一的服务提供方式和调用方式,实现了整个Internet服务的共享,是一个非常令人激动的技术领域。Web Services好像目前还没有什么很好的书籍,但是可以通过在网络上面查资料的方式来学习。



新手应该如何学习Java编程语言
答:学习java的第一步是学会使用java程序语言编写程序,学习程序语言的第一步是熟悉其语法的使用。编程语言是一种语言,不同的是,这种语言是用来和计算机交流的,所以如果你想熟悉这种语言,北大青鸟云南计算机学院认为不是看别人写程序来理解,而是应该学习别人是如何使用Java解决问题的。二、学会使用搜索引擎 ...

java学习需要哪些步骤呢?
答:做项目是很重要的,从简单的做起,慢慢体会其中的分析与设计 学java还是从视频入门的好,千万不要一开始就去看《Thinking in java》,吃力不讨好,学到web时可以看看张孝祥的《深入体验JAVA Web开发内幕——核心基础》,写的很详细,不过他的视频一般,JavaScript就看《JavaScript高级程序设计》,html比较...

自学Java如何入门?
答:一、Java基础 JavaSE基础是Java中级程序员的起点,是帮助你从小白到懂得编程的必经之路。在Java基础板块中有6个子模块的学习:基础语法,可帮助你建立基本的编程逻辑思维;面向对象,以对象方式去编写优美的Java程序;集合,后期开发中存储数据必备技术;IO,对磁盘文件进行读取和写入基础操作;多线程与并发...

java到底学什么?怎么学?具体要学习哪些?
答:大一些的项目会考虑使用Oracle或者DB2. Java项目很少使用SqlServer。因此,你还需要学习数据库方面的一些知识。可以从SQL语言开始。这些数据库都支持标准SQL.学会基本的SQL,参考具体的数据库手册,就可以完成一般的项目开发了。当然,要想使你的程序运行的效率更高,需要更深入的学习。大部分的程序优化,都是...

想去学习参加Java培训,一般课程都有哪些内容呢?
答:想要学会JAVA一般分为四个学习阶段,通过每个阶段的学习就能很好的掌握了,要对自己有信心。这是需要学习的内容,你可以看一下 第一阶段:小型桌面应用开发 阶段目的:掌握JAVA语言的语法,理解面向对象的编程思想,能够熟练使用JAVA语言开发小型桌面应用。基础技能训练:操作系统与网络技术、JAVA面向功能对象...

Java新手如何学?
答:首先一点个人建议 建议一:有一个系统的学习方案,系统的学习教程,先把Java学了一遍之后才是真正的入门,然后就是不断的练习,不断的巩固,为之后的工作打下坚实的基础。建议二:我看很多新手刚学Java就看各种书籍,我走一个做了八年Java的人可以负责的告诉你,新手学习Java我不能说看书没用,但是从...

Java怎么学习?
答:学习java这项技术,年龄在18-30岁之间就可以,因为在这个年龄阶段,大家的学习能力与理解能力相对较好。至于如何学习更简单,首先要找对学习方法,很多学员下定决心之后就开始自学,但实际上1000个信心满满自学的人最后坚持下来的都不超过30%。不是因为自学这个方法不行,而是很多人在自学的过程中遇到问题...

初学JAVA应该从什么开始学
答:当你掌握了这些内容之后,你就可以做出诸如:电脑上安装的迅雷下载软件、QQ聊天客户端、考勤管理系统等桌面端软件。那我需要怎么才能学好java?学java无非就是自学和报班这两种方式,至于java自学还是报班好,这个还是需要根据您自身的条件来判断的。如果您自控能力、自学能力且有基础那自学好。反之报班好。

我想学JAVA,应该怎么学呢?
答:大一些的项目会考虑使用Oracle或者DB2. Java项目很少使用SqlServer。因此,你还需要学习数据库方面的一些知识。可以从SQL语言开始。这些数据库都支持标准SQL.学会基本的SQL,参考具体的数据库手册,就可以完成一般的项目开发了。当然,要想使你的程序运行的效率更高,需要更深入的学习。大部分的程序优化,都是...

我想自学java,怎么学?
答:学习JAVA应该从哪一部开始很多人都很迷茫,下面是我整理的学习路线和方向一共四点。希望对你有帮助!①【学习语言基础】很显然,掌握语言基础是第一步。如果你不了解基础知识,那么你就不知道自己是否做错了或者接下来该怎么做。当然,这并不是要求你把所有的基础知识都记住,比如所有的 Java关键字、...