怎样学习Java?

那些年87943


慕课网,B站等网站上都有很多免费的Java开发教程,跟着视频一步一步学,一定要多动手,多敲代码,键盘敲烂,月薪过万。


旅行的Java


一,首先学习语言基础,掌握语言基础是第一步。如果你不了解基础知识,那么你就不知道自己是否做错了或者接下来该怎么做。万事开头难,学习基础很乏味,容易睡着,而且看后容易忘,但是还是要看下去,因为书本是比较系统、深入的

二,看网络教学视频,教学视频可以让你迅速掌握编程,但通常比较生动、浅显,不成系统。

所以最好的方法是书和视频结合,两者形成互补关系,如此坚持三个月以上就会熬过艰难的入门期。

三,多练习,书上或者视频中的示例,要亲自写一遍,实验一下,不实验,看一万遍都没用,只有亲自写一遍,才会找到感觉,所以,多练习,才是最快速的学习方法.



三哥智造


一、Java基础学习

包括Java 开发环境的搭建、Java语言基础,流程控制,字符串,数组,面向对象编程基础、面向对象核心技术,包装类,数字处理类,接口、继承与多态,类的高级特性,异常处理,lambda 表达式,集合类,I/O(输入/输出),反射,枚举类型与泛型,多线程,网络通信,数据库操作。

二、Java基础框架学习

Spring 框架

Spring MVC

Spring MVC 是一个模型 - 视图 - 控制器(MVC)的Web框架建立在中央前端控制器servlet(DispatcherServlet),它负责发送每个请求到合适的处理程序,使用视图来最终返回响应结果的概念。Spring MVC 是 Spring 产品组合的一部分,它享有 Spring IoC容器紧密结合Spring松耦合等特点,因此它有Spring的所有优点。

Spring Boot

Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。

SpringBoot所具备的特征有:

(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以创建可执行的JARs和WARs;

(2)内嵌Tomcat或Jetty等Servlet容器;

(3)提供自动配置的“starter”项目对象模型(POMS)以简化Maven配置;

(4)尽可能自动配置Spring容器;

(5)提供准备好的特性,如指标、健康检查和外部化配置;

(6)绝对没有代码生成,不需要XML配置。

数据库映射框架

Hibernate(开放源代码的对象关系映射框架)

Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate的API一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通过这些接口,可以对持久化对象进行存取、事务控制。

MyBatis

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Ordinary Java Objects,普通的 Java对象)映射成数据库中的记录。

每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。

用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。

三、Web前端基础知识学习

大前端:

HTML、CSS、JavaScript、工具、后端、性能、测试、开发守则、用户体验。

HTML:

HTML语义化、HTML5、DOCTYPE、SEO、Wap、SVG/VML

CSS:

CSS2(布局方式、CSS权威指南、通用样式)

CSS3(new selector、new CSS style)

IE通用Bug(双倍边距、…)

IE hack方式(条件注释、CSS hack)

图片(IE png8透明、css font icon、css spirite、图片格式与压缩率的关系、预设值width/height提升性能)

JavaScript:

安全相关(跨站脚本攻击)、基础知识(DOM、兼容性bug、BOM、跨域相关)、Good parts、NodeJS、设计模式、熟悉一门框架(jQuery/YUI/MoonTool)

新技术(WebWorker、WebSocket、localStorage、Canvas、Audio/Video、SVG、ECMAScript 5、History api、File api、Geolocation API、Drag&Drop、Messaging、Offline cache、其他)

DOM:DOM Traversal、事件、其他、Rang api

BOM:XMLHttpRequest、CSS Object Model、其他

工具:

开发工具(编辑器、firebug/Web developer、chrome默认工具、fiddler/其他代理工具、jslint/jsdev)

构建工具(G-build、Google、YUI compressor、uglifyjs)

测试工具

学习工具(信息记录[workflowy.com、EverNote、zootool]、信息获取[RSS(google reader)、Twitter、新浪微博])

版本管理工具(SVN、git、hg)

四、Java高级技术

微服务治理框架

Spring Cloud

Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。

Dubbo

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和Spring框架无缝集成。

Dubbo是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用,智能容错和负载均衡,以及服务自动注册和发现。

Remoting: 网络通信框架,实现了 sync-over-async 和request-response 消息机制。

RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能

Registry: 服务目录框架用于服务的注册和服务事件发布和订阅

数据库

MySQL

MySQL 是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的 RDBMS应用软件之一。PostgreSQL

PostgreSQL是一个功能非常强大的、源代码开放的客户/服务器关系型数据库管理系统(RDBMS)。

缓存

Redis

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

消息中间件

Kafka

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。

AcitveMQ

ActiveMQ是一种开源的基于JMS(Java Message Servie)规范的一种消息中间件的实现,ActiveMQ的设计目标是提供标准的,面向消息的,能够跨越多语言和多系统的应用集成消息通信中间件。


软件新视界


不论学习什么知识,开始的时候都是会比较困难的,还是需要大家坚持的,坚持下来就会成功,并且最重要的一点就是要有学习热情,不要在一开始很有冲劲的学习,学几天之后就不想再继续了,毕竟java编程语言也不是那么简单的还是需要很长的时间进行学习的,那么怎么学习java呢?

 这里所指的Java学习是指对没有基础或者是稍微有点儿编程基础的小伙伴来说,网上也有那种说自己学习java一个礼拜就全部搞清楚了,有没有这种可能呢?有但是不会有很多这种人,java的入门难度相对于其它几种常用语言还是会稍微难一点儿的,而能一个礼拜左右就将java学的比较明白的人,基本都是别的语言已经十分精通了,毕竟各个语言之间还是有相通之处的。

  那么我们对java不是太了解的小伙伴要怎么学习java知识呢?由于是新进入到一个新的领域,建议大家还是需要找一个能带自己学习java和能够帮助自己解决在学习java问题的师傅,如果没有相关的资源的话,最好是报一个学习java的班,可以让自己在学习java的路上少走一些弯路。另一个比较重要的点,就是知道自己要学习的内容都有什么,学完这些内容,能不能凭借这些知识去找到工作,所以一定要有详细的规划,短期和长期的计划都要定下来。首先需要明确自己的学习能力和自己的学习热情是如何的,根据自己的实际情况去定下自己的学习计划,每天的学习java时间和巩固之前所学java内容的时间,自己定下的短周期需要掌握的知识点,大的目标是什么。只有定下自己的详细目标,并且按照自己的目标来进行学习java知识,才能够相对快速的学习java知识。


山东中公优就业


第一步:首先要做好学习前的准备工作:java语言一般用于大型的服务器程序开发,所有有必要了解如下内容:Unix开发环境Unix系统原理、Unix开发环境、Unix常用命令。熟练掌握Unix常用命令;熟练构建下的Java开发环境。

  第二步:然后进入Java语言基础的学习阶段,学习任何一门语言都要打好基础,曾经学过高级程序语言(C,C++等)来说,java语言基础有自己的特点,但是基本规律都是相通的,如:算法基础、常用数据结构、企业编程规范。掌握常见的数据结构和实用算法;培养良好的企业级编程习惯。

  第三步:掌握java语言基础后接下来就是面向对象语言的共性:Java面向对象面向对象特性:封装、继承、多态等。掌握面向对象的基本原则以及在编程实践中的意义;掌握Java面向对象编程基本实现原理。

  第四步:JDK核心API语言核心包、异常处理、常用工具包、集合框架。熟练掌握JDK核心API编程技术;理解API设计原则;具备熟练的阅读API文档的能力;JavaSE核心异常处理、多线程基础、IO系统、网络编程、Swing组件、JVM性能调优(JVM内存结构剖析、GC分析及调优、JVM内存参数优化)、Java泛型、JDK新特性。熟练掌握JavaSE核心内容,特别是IO和多线程;初步具备面向对象设计和编程的能力;掌握基本的JVM优化策略。XML XML语法、XML解析(SAX、DOM)、Dom4j组件、Digester组件。熟练掌握XML语法规则;理解DOM模型;熟悉Java对XML的各种解析方式。

  第五步:SQL语言SQL语句基础和提高、SQL语句调优。熟练的掌握SQL语句;掌握一定的数据库查询技巧及SQL语句优化技巧。Oracle数据库开发Oracle体系结构及系统管理、Oracle数据库高级编程、数据库设计基础。掌握Oracle体系结构及核心编程技术

  第六步:连接数据库:JDBC JDBC核心API(Connection、Statement、ResultSet)、JDBC优化技术(缓存技术、批处理技术、连接池技术)。理解JDBC作为规范的设计原则;熟练掌握JDBC API;具备使用JDBC对数据库进行高效访问的能力。

  第七步:软件工程基础软件过程和软件活动;需求设计、概要设计、详细设计基本原则和文档规范;配置管理的基本概念和必要性;CVS基本操作;Ant简介理解软件过程的普遍概念和基本的软件活动;理解迭代的意义;掌握Ant、CVS等常用配置管理及部署工具。

  第八步:OOAD及设计模式面向对象基本设计原则、工厂模式、策略模式、适配器模式、代理模式等、门面模式。理解面向对象设计的一般原则;理解重用的意义;掌握常见的设计模式。

  第九步:HTML/CSS HTML基本文档结构、掌握CSS基础语法、关于HTML文档块、链接、列表、表格、表单等。掌握HTML基本原理;掌握CSS各种选择器及常见样式设置;熟练使用HTML常用元素。


用户111145054153


作为一名计算机专业的教育工作者,同时也出版过Java编程书籍,所以我来回答一下这个问题。

首先,从编程语言自身的难易程度上来说,Java语言还是具有一定学习难度的,原因有三方面,其一是Java语言的抽象程度比较高;其二是Java语言的语法规则相对严谨;其三是Java语言比较依赖于框架和模式。

对于初学者来说,学习Java语言首先要从理解Java语言的各种抽象开始,其中类和对象是首先应该掌握的概念,掌握了类和对象之后,再理解封装、继承和多态这些概念的时候会更容易一些。理解抽象本身具有一定的难度,对于没有编程语言基础的人来说更是如此,而要想更好地了解这些抽象,应该通过各种实验来建立画面感。按照历史经验来看,Java语言的初期学习难度是比较大的,后期的学习难度相对会比较低。所以学习Java编程,一定要坚持。

Java语言本身是纯粹的面向对象编程语言,而且语法规则比较严谨,这样做的好处是保证了java语言的运行效率和程序可读性(规范性),但是坏处是初学者需要记住很多规则,只有多用才能逐渐熟悉这些规则。为了提高初学者编写代码的规范性,java初学者还需要学习一系列编程模式,所以在掌握了基本的Java语法之后,紧接着就需要学习一系列Java模式。

学习Java语言还需要学习一系列开发框架,不同的开发框架有不同的应用场景,会解决不同的问题,目前应该重点学习一下Spring框架,经过多年的发展,目前Spring系列框架已经比较成熟了,可以说为开发者提供了“一站式解决方案”。

最后,学习java一定要注重实践,所以在学习完基本的java框架之后,最好在实习岗位上锻炼一下。

我从事互联网行业多年,目前也在带计算机专业的研究生,主要的研究方向集中在大数据和人工智能领域,我会陆续写一些关于互联网技术方面的文章,感兴趣的朋友可以关注我,相信一定会有所收获。

如果有互联网、大数据、人工智能等方面的问题,或者是考研方面的问题,都可以在评论区留言,或者私信我!


IT人刘俊明


自学的话,有编程基础者,找本Java基础书,看看目录,通读一遍,然后在eclipse上练习每个知识点,写些小的测试程序,有助于深入理解基础知识,这样基础熟练后,移动端可以学习Android开发,搭建Androidstudio开发环境,像学习Java过程一样去炼狱吧,会涉及到MVP设计模式,sqlite greendao等数据库相关框架。如果想进行服务器开发,还要学习springboot框架,数据库持久层框架mybatis等,并发框架actor,netty等。没有基础者,先学习c语言吧。另外还可以去参加培训机构,这样可以让你入门Java。

BinaryMaster多哥


楼主你好,下面由我来给你详细回复怎么学习java。希望对你有帮助!

很多没有接触过java的朋友可能想要学习java,但苦于不知道从何处入手,怎么学习,因为java语言涉及的东西太多了,不是简简单单就能学会的,那么,应该怎么学习java呢?

首先要明确学习java的目的,因为语言有很多种,为什么要学习java,如果连自己学习的目的都不知道,只是看学习的人比较多,那么就失去了学习的意义。

开始可以买一本java的基础书籍,从头看起,好好的学习钻研,边看边敲代码,有些人只想用眼睛看,不动手,学习编程语言,不动手就学会那是不现实的。

要清楚java的三大体系,javaSE,javaEE和javaME,javaSE是java相对基础的部分,也是学习java的必经阶段,所以要从javaSE学起,然后在想另外两个体系扩展。

接下来就要学习面向对象最基本的封装、继承、多态。类,接口,泛型,输入输出流,线程,TCP/UDP协议,注解,反射机制等一些非常常用的部分。

常用的部分学好之后,就可以接触数据库的一些东西了,比如表,视图,索引,存储过程,触发器等,然后就是java与数据库连接jdbc,因为以后的工作中,最常用的就是java操作数据库。

然后就可以看一些java的框架了,因为现在很多企业开发中都是使用框架的,比如StringMVC,SSH等,使用框架可以减少工作量,增加工作效率。

总之,不管学习什么语言,都不是一朝一夕之间可以学会的,需要付出努力和汗水的,学习的过程很无聊,但是你坚持过来了,你会发现编程也是有很多乐趣的。

回答者:陌居者


蒙面哥讲科技有问必答


学习Java,要从计算机语言的基本语法开始学习。最为合适的是C语言程序设计。虽然C语言和Java不是完全相同的开发语言,但是Java是由C语言开发而来,很多编程基本知识是想通的。接下来需要学习Javase也就是Java基础语法。这个阶段相对枯燥,但是非常重要。这时你仅仅可以编写一些简单的后台逻辑。学完Java基础,需要学习一定量的web前端知识,这时你的页面才能展示效果。接下来数据库的学习。网络知识的学习。框架的学习。Java是学不完的。希望你下定决心,加油!


科技老扎


第一吧,我觉得学习Java,心态很重要

对于陌生的知识领域,大家最开始学的时候都会有一些困难,尤其是自学的,遇到不懂的地方,很难摆脱这个坎,特别需要有高人指点,但是又不能随时随地的去问题,所以学习Java开发,心态一定要摆正,要相信自己,刚开始我们要学习Java开发所需的语言、语法,因为他是计算机语言,我们需要一定的时间适应、摸索,等我们掌握基础之后就会感受到它的乐趣,自然也就不会觉得难了。

第二吧,学习Java开发,学习安排很重要,有计划学习,学习Java开发,最忌讳盲目的没有计划的学习,摆脱了系统学习计划,结果必然“一塌糊涂”。所以建议学习Java开发最好还是参加培训班效果更好些,还可以节约好多时间,时间对于一个程序员来说就是金钱。从Java开始一步步深入到大数据开发的各个知识点。与学习其他知识一样,有计划性能够快速的直达目的地。