求一份完整的java自学学习方法?

发布网友 发布时间:2022-03-01 03:56

我来回答

4个回答

懂视网 时间:2022-03-01 08:17

1、首先大概了解java的知识,然后根据自己的实际情况制定一份适用于自己的java学习计划,每天按照这个计划有规律的进行学习。

2、找java的书籍进行阅读,阅读的过程中可以结合网上的视频一起学习,边学习边做笔记。

3、学习java不能停留在书本上,在理解知识点后可以尝试敲代码,敲代码出现错误时不要着急,看是不是哪里出现语法错误或者是某个知识点没有掌握。

4、如果在学习过程中有困难可以报一个专业培训机构,培训机构有专业的课程,能让自己快速掌握java。

总结:

1、大概了解java的知识,然后指定学习计划。

2、找java的书籍进行阅读,阅读的过程中可以结合网上的视频一起学习。

3、在理解知识点后可以尝试敲代码。

4、如果在学习过程中有困难可以报一个专业培训机构。

热心网友 时间:2022-03-01 05:25

java自学网Java从入门到精通(第3版)PDF电子书.zip   免费下载

 链接:   https://pan.baidu.com/s/1vmPxcmXR7adtUZXwx64sFA

提取码: wut5 

   Java是一门面向对象的编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。    

热心网友 时间:2022-03-01 06:43

Java零基础的小伙伴,我建议看Java的在线教程去学习。

第一:先学习Java的核心库(JavaSE)

JavaSE的内容包括:环境搭建、基础语法、面向对象、数组、集合、常用类、IO流、反射机制、网络编程……..

第二:MySQL数据库

搞定一门数据库相关的课程,例如:MySQL、Oracle,搞定一个就可以了,目前互联网公司,例如:京东、阿里等,他们都在使用MySQL,所以建议大家学习MySQL数据库,小巧轻盈,免费。

由于互联网公司的项目访问量比较大,所以一般会搭建数据库的集群,可以一个数据库不够,所以需要搭建数据库集群,为了应付高并发。(搭建的比较多的时候,免费就很重要了。)

第三:WEB前端

以后从事Java开发,从事JavaEE开发,主要开发的系统结构是B/S结构的,B指的是Browser,S指的是Server。要开发这种系统,B端要会,S端也要精通。WEB前端的学习就是学习B端技术。

包括:HTML 、CSS、JavaScript(JS)、jQuery框架(底层对JS进行了封装)…

第四:JavaWEB

WEB后端其实可以是很多种不同的编程语言,例如:PHP、C、C++、Java,他们都可以进行WEB后端的开发,我们既然选择了比较火爆的Java,那么我们学习的后端一定是基于Java语言实现的。

包括:Servlet、Filter、Jsp、EL、JSTL、MVC架构模式、数据库连接池(阿里巴巴的Druid连接池)、代理模式(动态代理)。另外后端学习了之后,还要学习一个异步编程技术AJAX。(完成网页的局部刷新,AJAX其实不属于后端,是前端浏览器上的程序。)

学习到这里为止,表示Java基本/基础的技术已经学完了。但是这些最基层的技术在实际的开发中不会使用的,一般为了开发效率,都会使用大量的提前封装好的框架。

第五:最好能够停留下来,做一个项目。

这个项目最好能将之前所学全部串起来。(对以前的知识点进行巩固。)

这个项目最好是基于:Servlet + Jsp+AJAX+jQuery+MySQL….

在这个项目的开发过程中:大家一定要记住,目前比较好的项目自动构建工具:Maven是一定要精通的。还有一个就是团队协作开发:Git/SVN是一定要会用的。(目前使用Git比较多一些。)

第六:学习高级框架

Spring、SpringMVC、MyBatis(持久层框架,这个框架互联网公司使用比较多,因为互联网项目需要进行SQL优化,MyBatis的SQL优化很方便,所以大部分都是使用MyBatis)

Struts2(很少使用了,使用这个的肯定是很老的项目)、Hibernate(传统企业,还有*等可能会使用Hibernate。)

SpringBoot(新项目大部分使用的都是boot了。所以在项目中遇到还在使用SSM的一般都是遗留项目。)

当你走到这里之后,基本上你可以出山了。(去找工作应该问题不大,但前提是你学得好。学习的深度够了,广度够了。)

第七:最好能有一个大型项目是使用框架来完成的。

SpringBoot做一个项目。

Spring SpringMVC MyBatis做一个项目。

这个项目最好是找几个人搭伙做一下。体验一下团队协作。(尤其是使用一些协作的工具。怎么沟通,怎么写日报,怎么开会,怎么使用Git,等等….)

第八:如果你的薪资想达到15K的话,你可能需要还要学习一些分布式相关的一些技术。

能够应付高并发的一些技术,例如:分布式框架Dubbo、SpringCloud、MQ、Nginx、Redis…..

最后在啰嗦一下,一定要形成自己的编程思想。

编程思想的形成很难。需要大量代码的堆积才可以。怎么形成编程思想呢?

千万别死抄代码。不要像行尸走肉般的抄代码,没有用。只能提高指法速度,无法形成编程思路。

1、打好基础是重中之重

基础部分可能很枯燥,但是一定要耐心坚持下去。因为打基础好比是在造轮子造汽车,没有打好基础在后面的学习就好比走路,可以说后面遇到的百分之七八十的问题都是基础没学好造成的。

2、多看官方文档多读源码

一定要看JDK相关类库、常用框架各种功能的源码,去了解其底层实现的原理。总的来说这个也是在打基础的部分,Java基础非常扎实才能看懂,在我们学习一个类的源码时,肯定会衍生出其他各种各样的问题,供我们来了解和学习,这也就是我们下一步学习的目标和方向。慢慢的,我们就会学习更多的知识,并积累更多的经验。

3、系统性学习,循序渐进

不要急于求成,每个知识点都要看,并且每个知识点都要勤加练习。有的同学在学习过程中觉得这个知识点简单,就跳着学习,其实这是个很大的问题,知识点细节必须要了解。我们学习Java需要循序渐进,一步一步来,不能操之过急。

4、遇到问题

遇到不会做的问题,当然不能置之不理。先在网上查,目前网络上针对很多问题都有完美的解决方案,如果网上没有类似的问题,那可能是你犯了什么小错误。也不要在这个问题上花费太多时间,这需要一定的学习技巧。Java中的知识有很强的相关性,有不懂的地方,可以用其他周边相关知识再回过头来理解,这样既不会耽误学习进度,又能理解自己不懂的地方

1)jvm有很多种,其实jvm是一个标准,sun做的那个叫hotspot,作者就是后来v8的作者lars bak,其他公司也做过jvm,其中做得比较好的有bea的jrockit,其他的包括ibm的r9,apple的jvm等在内,都做得不行,所以jvm主要是整合淘汰掉这些做得不好的jvm(s),整合成一个统一的openjdk。

2)java是典型的oop语言,其执行效率的优化,最早就是lars bak等人从smalltalk等长期优化的经验中总结出来并apply到hotspot上去滴,而smalltalk在早期apple机上搞出了那种拖拖拽拽就开发出app的做法,后来vc,delphi之类的其实都是抄袭或者说借鉴apple的smalltalk的做法,jobs说微软从头到尾都在抄袭apple是空穴来风,这里空穴来风跟王垠使用的空穴来风是一个意思,有趣的是,java的gui并没有继承这种搞法,反而对这种拖拖拽拽就作出app的做法批判有加,到今天,其实java的gui都还不能真正做到拖拖拽拽就作出来,问题很多,个人建议对于纯java的gui开发,还是以写代码为主。

3)jee也是一个或者说是一堆标准,知乎上有些人把maven,jenkins都算做jee是不对滴,jee的标准核心是ejb,其实就是一个xml配置化的java文件,这个标准在4的时候,达到了顶峰状态,几乎所有的挨踢大厂都主动支持该标准,之后开始走下坡路,支持的厂越来越少。

4)java和javascript的关系比很多人认为的要密切,javascript里面的java这四个字母可不是白叫的,比如js的版权和商标都控制在oracle手里,oracle对于js的支持甚至超过其对java的支持,并且喜欢*销售,比如jvm里面就有一个js引擎。

5)jvm里面除了js engine以外还有一个浏览器排版引擎webkit,就是apple safari和google chrome用的那个那个。

6)java支持绝大多数脚本语言,你能叫得上名字的脚本语言,几乎都可以在jvm上执行,比如常见的js,ruby,python,甚至php,lua,只不过除了js以外你需要找到相关的脚本引擎。

7)spring的版权被控制在vmware手里,其实spring的那一大堆东西,本质上是一个非标准的jee实现,比如在jee里面用的inject,在spring里面就是autowire,当然spring曾经深刻滴影响了jee,所以有些东西比如di标准,是spring影响下制定出来的,所以spring的做法会比较特例一点。

8)maven上的jars数量前两天突破800万,其他语言的类库,排名第二的是npm,大概数量是maven的十分之一,也就是几十万,不知道现在突破100万没有,然后是gem,也就是ruby那个,大概是十几万,下来是python的mole,大概数量级是几万,没突破十万。

9)java的标准是由一个叫做jcp的组织制定的,所有标准需要经过jcp的执行委员会通过方可执行,jcp几乎包括了你所知道的绝大多数知名挨踢公司和组织,比如google,apple,ibm,intel,arm,red hat,*等,还有一些教育机构,比如我国的北京大学,阿里最近一次申请jcp执行委员会成员资格,似乎投票不通过,最近一次执行委员会新增两个成员是arm和jetbrains。

10)微软也曾经是jcp甚至是java的主要贡献者,但是利益驱使下,想扩展java,从而破坏java跨平台的特性,所以跟sun闹翻,其本质原因就是想让客户写的java代码跟windows绑定,sun坚决不同意,闹翻,今天回头看这个结果,只能说:双输,sun挂了,微软的ria也离挂不太远了,silverlight已经放弃了,比起当年ie自带有jvm的支持来说,那完全就是两回事。

11)除了微软以外,jcp还缺少一个重要组织apache,因为apache跟oracle也闹翻了,oracle似乎并不在乎开源组织,而更在意商业公司的支持。

12)java曾经有一个内置的数据库,9之后被剥离。

13)j2me是j2se的子集。

14)vert.x作者tim fox最早在vmware做spring时候看到了node.js,萌生出了制作支持多核的node.x的想法,并在离开vmware后加入red hat将其实现,vmware看到后开始耍无赖,claim node.x后来改叫vert.x的版权,不惜跟red hat打官司,后来各方妥协,将其交给eclipse foundation。

15)oracle在收购bea之前,一开始的目标并不是bea和bea的weblogic,而是jboss,但是jboss表现出了极为有种的一面,在oracle收购成功之前,投入了red hat的怀抱,因为都是开源组织,从此jboss成了red hat的一个子部门,oracle收购jboss失败之后,转向bea,庄思浩气死了,但是没用,最后还是被恶意收购。

16)sun在玩不下去之前最早尝试接触的目标是ibm,ibm嫌太贵,放弃之后,被转手给了oracle。(Java学习交流QQ群:589809992 我们一起学Java!)

17)vert.x的作者tim fox在离开red hat之前曾经发过*抱怨,外人比如我们,猜测是因为red hat内部已经有了一个jboss,所以跟vert.x在应用上有了重叠,所以导致tim fox的出走,但是出走之后,red hat答应对vert.x做持续性的战略投入,所以vert.x core的几个developers,其实拿的是red hat的工资,但是vert.x的版权并不在red hat手里,而在eclipse foundation手里。

18)vert.x的几个核心开发人员都是google summer of code的导师,每年年初时候会招收在校大学生搞项目。

19)教育机构相关:scala的作者马丁是德国人,eth的博导,groovy的主要领导人是法国人,jruby背后是东京大学,jboss的作者是法国大学校x的校友,x就是伽罗瓦考不进去的那所大学,伽罗瓦进不了x,所以改读巴黎高师,tim fox毕业于帝国理工,*去的那个,netty作者trustin lee是acm银牌,现在line工作,毕业于sky里面的延世大学,kotlin是毛子公司jetbrains的作品,看linkedin,很多人毕业自圣彼得堡大学,spring作者rod johnson是悉尼大学的音乐博士,hibernate作者gavin king是澳洲莫那什大学的数学本科毕业生,james gosling这种cmu和calgory的估计烂大街了,sun是斯坦福大学网络的意思,夹带两个私货,aspectj有一个维护小组在mcgill,hbase跟waterloo关系密切。

20)java早期被人认为慢,跟java坚持不用硬件加速渲染有关,死活就是不肯接入directx和opengl,7之后总算开窍,搞了一个图形引擎接入了directx/opengl。

21)casssandra是*做失败的项目,被贡献给了apache之后老树开花。

22)groovy被贡献给了apache,现在叫做apache groovy,ceylon被贡献给了eclipse,现在叫做eclipse ceylon。

23)netflix现在是java shop,之前是用.net的。

先想到这么多,有空再写。

热心网友 时间:2022-03-01 08:18

有必要知道什么是程序,什么是算法。
你知道它是什么,便不会学得懵懵懂懂。
学习java编程跟学习其他编程语言一样,都需要明白这是一种解决问题的语言表达形式。
通过这种计算机语言描述出解决问题的方式方法,以便于在计算机上实现它。
就比如,你希望有一个可以计时的秒表,我就用编程语言设计一个秒表软件实现你的需求。
实现需求的过程就是用编程语言编写程序的过程,解决这个需求的方法也叫算法,也就是解决问题的方法。
算法是任何一个编程语言的核心。了解了这个,就已经走上了学习编程的正路。
如何自学java编程
编程与生活息息相关,两者要始终保持密切联系。
如何准确理解程序呢?
举个例子,我要去买饭。买到饭是我想要的结果,而解决这个问题的过程我们需要几个步骤。就简单的步骤来说:
第一步想要找到饭馆,第二步挑选自己想要的饭菜,第三步付费结账。
这是简单来说,如果具体到每个人的生活环境,解决这给问题的步骤还要多一些。
刚才那三个步骤是用文字表述的程序,也就是自然语言,这也是程序。
程序是解决问题的方法步骤,解决买饭问题的步骤就是买饭的程序。
如果用计算机能理解的语言表述出来,那个程序变身为计算机语言程序。
程序还有编程是并不复杂的概念,也没有太高大上到你无法理解。
再重复一遍,程序就是解决问题的方法步骤或者既定方式。
编程就是将解决问题的方法步骤写出来。
而计算机编程便是用计算机能理解的语言将其方法步骤写出来。
看似编程是高大上,冷抽傲的,其实它是很贴地气的,处处与生活接轨。
如何自学java编程
编程语言有很多种,选择java是只选择了其中一种表述和实现方式。
设定编程语言是因为计算机是一个僵硬的东西,自然语言是它所不能理解的,故而需要设定一种它可以理解的语言,让它听懂你说的指令,它才能为你服务。
理解了何为计算机程序和编程,下面就具体到不同种类的编程语言的选择。
不同种类的编程语言就类似于现实中的各国家的语言,英语,法语,还有我们最熟悉的汉语,同样的问题,会有不同形式的表现。
汉语中描述自己是“我”,英语中是“I”,其他语言中又是另外的表述。
不同的编程语言的区别也基本类似。
不同语言的区别主要在于对于算法的表述方式不同,程序语言的适用范围不同。
因为表述方式和适用范围的问题,诸多编程语言便可以区分开来,使用时也根据这两点进行选择。
学习时有很多语言,如C、C++、java,这三种编程语言是因为不同的需求而研发的。
java与前两者相比的优势在于可移植性强,对于系统和硬件要求不高。
了解了这个你就大体知道java的特性了。其实只要有java虚拟机,它几乎可以在任何机器上运行。而c和c++是没有这种特性的。
也就是只需要安装一个java虚拟机,电脑上可以运行java程序,手机上也可以,平板上也可以,对系统和硬件类型没有硬性要求。
这种特性就是java得以推广的重要原因,它的适应性太强了。
说这些是让大家对于java有一定更深的理解。
java和C语言有一定渊源,团和C++是很像的,学过C和C++的再学习java比较简单一些,没有这些学习经历也不用担心,只需要足够的练习量便可解决这一问题。
如何自学java编程
练习的频率要远大于看知识点的频率;教程的选择最好以视频为主,书本教材为辅。
真正的自学是练和学结合。
开始需要选择合适的教程,可以是视频的,也可以是书本的。
多数人是选择书本较多,书本携带方便,便于记录重点和心得。
其实就实效性而言,我倒是建议以教学视频为主比较好。
也就是视频教程为主,书本教材为辅。
首先,书本教材的操作可视化是个问题,就算有图片辅助,也无法完全展现操作的全貌。
其次,教材的学术性太强。为了保证教材的知识质量和高学术性,往往很多章节包含了太多资料和知识点,学习这些章节时往往会被各种密集的要求和解析所弄晕。
就比如,教材中开篇对于编程发展的阐述,如果仔细去看会发现涉及到太多历史事件,人物,公司等等……
再者,教材中的表述语言书面化太强。教材中缺乏大白话,一句话可以简而言之的,往往为了追求准确的定义而使用书面化的严谨的学术语言,看着枯燥,学着也枯燥。
而视频教程往往强调实践,互动性强一些,教授过程多数是在编写中进行,很多进行很多调节操作。
看着视频,你会了解某个学习问题的全貌。
整体上而言,选择一个视频教程要比书本教程更有实效。
当然,书本教材中内容丰富作为一种知识补充是很好的,学的时候想要看更仔细的一些解释就可以翻看教材了。
教材选择方面,国内的用得较多的是清华大学出版社出版的《Java语言与面向对象程序设计》,而国外的经典教材《Java编程思想》,这个需要有一定学习经历之后才可以看,建议开始不要买这个教材学习,而且里面有很多例子是以C,C++做实例比较的,没有C类语言的学习,估计也难以看懂。
关于编程语言的发展,只要了解一下就好,教材中的学术性总结有时太多,妨碍编程的学习。
编程还是要从实践性强的方面入手的。
具体不赘言了,源远流长的东西讲太多实际上是舍本逐末,学到技能是根本。
如何自学java编程
在学习java过程中还需要巧妙的理解方法和思维转换。
比如“变量”这一概念的理解,就可以对应成房间或者箱子,编程中声明一个变量就是开一个房间,变量名是房间名,变量类型是房间类型,赋值给变量就是房间里住了一个人。由此你也可以知道,为什么叫变量呢,因为这个“房间”里可以反复进出很多“人”。
很多人刚碰触编程,对于编程那些一行行的字母感到恐惧,其实编程的模式再简单不过,几乎是固定的模式。
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com