java到底是什么
Java是一门全球范围内使用最广泛的,面向对象的编程语言.Java语言具有功能强大和简单易用两个特征,它作为面向对象编程语言系列的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程.
JAVA怎么学0基础起步,最快要多长时间
Java相对是比较好学习的语言,如果没有任何基础,需要做多点功课,比如先从了解什么是程序开始。
了解操作系统和硬件之间的关系,了解程序和操作系统之间的关系,然后再看具体的语法。
学习java是个好选择,目前有大量的程序都采用java开发,可以参考的资料也比较丰富,建议先自己买本书仔细阅读一下,比如java编程思想就是本不错的入门书籍,然后自己搭建一下开发环境,自己多动操作一下。
java目前是1.9的版本,具备了更多功能,速度和性能也得到了前所未有的优化,当然学起来内容也更多了,但是作为初学者来说这些新增加的内容可能并不是现阶段需要学习的,所以不要担心。
java涵盖了很多内容,包括web开发,数据库开发,框架开发,安卓开发也使用java语言,所以需要一个系统的学习计划。
我在头条上写了个java系列文章,目前也在逐步更新中,你可以参考一下,希望对你能有所帮助。
至于多久能学会,这个因人而异,一般3到6个月能就能参加实习了。
小白怎么学习java
给您推荐Java学习路线图,是菊厂童鞋做开发经常使用的一些技术和工具,希望能帮助到您~
前端部分:
1)HTML:网页的核心语言,构成网页的基础
2)CSS:使网页更加丰富多彩灿烂的利器
3)JavaScript:使网页动起来的根本,加强了网页和用户之间的交互
4)HTMLDOM:换一种更加形象化的角度来看待网页,让我们更加方便的控制网页
5)HTMLBOM:与浏览器交互不可或缺的工具
6)JavaScript库,主要是:jQuery及其插件、YUI及其插件,使编写网页更加的方便快捷和健壮的强大工具
7)AJAX:异步提交,增强了用户使用网页的良好交互体验
8)JSON:比XML更小、更快,更易解析的数据传输工具
9)FLEX:提供丰富多彩的动画效果
10)普元工作流:更加清晰明了的帮助用户处理业务流程上面的工作
11)JSP:Servlet的展示层,使网页逻辑与网页设计的显示分离
12)JSTL:加强和简化了JSP页面的开发
13)EL:使JSP页面写起来更加简单
后台部分:
1)JAVA语言编程基础部分:内容丰富是Java知识体系结构的核心和基础
2)JDBC:提供了一种基准,据此可以构建更高级的工具和接口,使Java开发人员能够编写数据库应用程序
3)JavaMail:用于电子邮件的相关的编程工作
4)JUnit:单元测试,整个变成工作测试的地位始终非常重要
5)Log4j:使我们能够更加细致地控制日志的生成过程
6)Servlet:JavaWeb的核心
7)Struts2:JavaWeb编程中明星级的框架,优点多功能强使编程工作更简单,主要用于控制跳转
8)Spring:JavaWeb编程中明星级的框架,同样优点多功能强使编程工作更简单,主要用于管理对象
9)iBatis:JavaWeb编程中明星级的框架,同样也是优点多功能强使编程工作更简单,主要用于程序和数据库之间的交互
10)SQL:与数据库交互式编程的必备工具
版本控制:
1)SVN:版本控制,方便团队协同工作
WEB服务器:
1)Tomcat:优秀免费的中小型WEB服务器
2)Weblogic:功能很强大的WEB服务器
开发工具:
1)Eclipse:开源强大的Java编程工具
2)MyEclipse:在eclipse基础上加上自己的插件开发而成的功能强大的企业级集成开发环境
数据库:
1)Oracle:数据库业界老大,这个常用一点当然,也仅仅是常用一些常用的功能而已,需要加强
2)MySQL:最好的关系型数据库之一
3)SqlServer:最好的关系型数据库之一
数据库客户端:
1)Toad:非常棒的数据库客户端软件
操作系统:
1)Windows
2)Linux
远程登录的会话工具:
1)SSH:一直在用,非常不错
其他:
各种种类和版本的浏览器(推荐使用FireFox)、office办公软件系列、各种文本编辑器(推荐Sublime)、各种阅读器等等
下面是从网上找的三幅图片,比较好的说明了作为一个Java程序员的学习路线图,这里作为一种自我提醒的工具,不时看看,并且会赶紧修补自己的知识树!
1、Java的知识体系结构
2、JavaWeb开发的基本学习路线图
3、JavaWeb开发的成长路线图
第一部分:Java高级学习课程大纲
1、工程化专题
我们的工程化专题有五大内容:Maven、Nexus、jenkins、代码审查、Git/SVN
一共耗时一个月
2、源码分析专题
源码分析有三大内容:spring的源码分析,里面包括FactoryBean和MVC和事务处理与Spring源码中设计模式分析;持久层;企业级开发前瞻,一共耗时2个月
3、高并发与高性能
高并发与高性能有四大内容:并发编程,里面又包含有线程安全和NIO和AIO。异步通信,里面包含有本地队列和消息中间件。分布式协调技术,里面包含有Zookeeper和服务锁。NoSqI:里面包含有MongoDB和Redis和Memcached。一共耗时2个月
4、高可用性与可扩展
高可用性与可扩展有两大内容:分布式架构介绍,里面有导流技术和服务设计和存储设计。服务调用,里面包含有WebService和Dubbo。一共耗时2个月
5、性能优化
性能优化有四大内容:优化技巧,如何寻找性能瓶颈。JVM优化。数据库优化。服务器优化。一共耗时2个月
上面这五大专题,是几位工作经验十多年的大牛,根据自己往年的工作经验与经历,在根据现在科技发展的实际情况,历经几个月的时间编写而成,换句话说,上面的五大专题,也就是他们这十几年精华总结,现在,您只要按照上面的课题学习,只需要花费掉七个月多的时间,就能够学会与理解几位大牛十多年总结出来的精华。学完这些,还怕公司老总不给涨工资和升职么?
第二部分:阶段性的学习
学什么东西都一样,小宅相信大家也是一样,在学东西的时候,总会安排好自己阶段性的学习,这样才能有效的提升自己与有效的理解和认知所学的知识。合理安排好,才能起到事半功倍的效果。
阶段一:
阶段二:
阶段三:
阶段四:
阶段五:
怎样深入学习JAVA的基础
给大家安利下java学习网站,记得点赞(?ò?ó?):
前端练手项目,模仿天猫前端
http://how2j.cn/k/tmall-front/tmall-front-790/790.html?p=49846
JAVAWEBJ2EE练手项目,模仿天猫整站
http://how2j.cn/k/tmall-j2ee/tmall-j2ee-894/894.html?p=49846
JAVA桌面软件练手项目,一本糊涂账
http://how2j.cn/k/hutubill/hutubill-tutorials/710.html?p=49846
JAVA自学网站
http://how2j.cn?p=49846
JAVA练习题
http://how2j.cn/frontshowJavaPractises?p=49846
Hibernate教程
http://how2j.cn/k/hibernate/hibernate-tutorial/31.html?p=49846
Struts教程
http://how2j.cn/k/struts/struts-tutorial/54.html?p=49846
SSH整合教程
http://how2j.cn/k/ssh/ssh-integrationtest/100.html?p=49846
Mybatis教程
http://how2j.cn/k/mybatis/mybatis-tutorial/1087.html?p=49846
SpringMVC教程
http://how2j.cn/k/springmvc/springmvc-springmvc/615.html?p=49846
有C语言的基础,自学JAVA的话,应该怎么开始
谢谢邀请!
一、作为一个大学入门编程语言是C,毕业多年之后跨行自学java且已入行多年的我来说,对此有着深切的感受,自学java的那段日子,即使时过多年,但往事仍历历在目。自我感觉,自学java并能找到工作这件事绝对是我人生中最值得骄傲的一件事,那真是一段刻骨铭心岁月,后续有机会会把我学习的心路历程和感受写出来。
二、java语言是从C语言衍生过来的,java设计思想很多地方都借鉴了C,既然你对C语言有很好的基础,那么学习java也就很容易上手。其实我在很多回答中说过java的主要应用方向和学习体系,有两个:
javaweb方向安卓方向三、由于职业规划和安卓方向外在的一些原因,我我目前从事的是互联网比较火热的javaweb方向,分前端和后端学习。要成为一个初级的java程序员或者入门基础,以下就是它学习体系:前端web基础:html+css+js——>(知识简单,网上资料学习为主,w3cschool,菜鸟教程等)前端框架:jquery,bootstrap,easyui等——>(难度一般,视频+api)后端javase基础——>(非常重要,重点学习,后面框架学习的基础,视频为主+api+相关入门书籍)后端javaee基础:jsp+servlet——>(基础+网上资料学习为主)数据库:oracle+mysql+sqlserver——>(必须掌握,视频+资料学习)后端java五大框架:spring+springmvc+struts2+mybatis+hibwrnate——>(重要,视频+网上资料)项目学习:两个或两个以上的项目——>视频学习以上是作为一个初级程序员要求的学习体系,也可以作为java入门的基础,涉及到视频和资料网上有很多,一搜一堆,不做详述,避免生嫌。如果还是不懂可以私信或留言给予专门指导。因个人学习习惯,入门初期不建议书籍学习,但因人而异,各做选择。四、上述都是我作为一个自学java的过来人学习的经历,但限于篇幅和时间,比较简略,后期会详细写出来与大家分享,希望能给你们一些学习和帮助。
【无情怀,不编码。做一个有情怀的码农,虽千万人,吾往矣!】关注java自学,为你导航领路,指点迷津,分享经验验收。欢迎关注留言,任何java自学问题可以留言私信,一定知无不言,言无不尽。
怎样学习Java
学习计划
首先,我把Java系统学习分成两个阶段。
第一阶段:建立完整的的技术栈,成为一个有富于生产力的高级软件工程师。
在这个阶段要掌握一系列的基础知识和工具。这些东西前后关联,所以学习过程成线性顺序,要从上往下进行。
下面是第一阶段的学习路线:
第二阶段:这个阶段的目标是成为Java技术专家、架构师,因此必须在上一阶段的技术上,往高处(例如设计模式、大数据)走,往深处(Spring源码、Java虚拟机)走。
这个阶段的知识,并不存在前后的关联。在完成第一阶段的学习之后,完全看工作的需要,以及个人的兴趣,安排学习的优先级。
下面是第二阶段的学习目标:
接下来,我就点一下这个学习计划中的“关键点”。
Servlet
要成为一个优秀的Javaweb专家。无论是你用SpringMVC实现的普通REST接口,还是微服务。往深地走,都要深刻理解Servlet以及容器(例如Tomcat).
因此,在深度学习微服务,以及SpringMVC之前,一定要把Servlet学精,因为他是整个Javaweb的基石。所以,在成为软件专家的路上,Servlet是最基本的垫脚石,务必重视。
SQL
在我作为程序员入行的时候,没少在SQL语言下功夫,尤其是在SQL语言优化方面,包括在存储过程中各种折腾。
但现在,SQL优化在开发过程中的优先级显著降低,有几个原因:
各种ORmap框架(例如Hibernate、Mybatis)的出现,使SQL的工作量大大降低。各种ORmap框架本身也会对编写的、自动生成的SQL进行优化。当前的服务器架构,如果要提高性能,首先应该考虑架构的横向扩展性,而不是在SQL上进行极端优化。但现在也不是说可以完全“任性”地编写SQL。只是说对于程序员,只要掌握最常见的SQL优化原则,做到工整就够了。
缓存、队列
缓存,队列。业界都有了较成熟的方案,例如Redis,ActiveMQ等。在学习的过程中,第一步是掌握核心概念,以及他们要解决的问题。然后就要亲自安装,使用这些软件,建立感性的认识。
其次就是在掌握核心概念的基础上,掌握这些开源软件的JavaAPI,然后试着在此基础上,编写典型的Demo,从而在Java语言层面上彻底掌握。
至于有些朋友提到的把概念再“实现一遍”。不知道朋友指的是使用API,还是把缓存和队列软件,用Java语言实现一下。如果是后者,不是说不可以,关键是太费时间。同时,就业界实践来说,不是特别必要。如果你真有兴趣,把优先级放低一点,作为一个更长期的目标。
Linux
这个学习计划是一个长期的,深入的学习计划。最终是要成长为技术专家、或架构师。那么有必要适时的掌握下Linux。因为在实践中,服务器往往委托于Linux服务器。而且将来,还有不少开源软件只能在linux上运行。
因此,在开始学习缓存和队列前,需要先掌握了Linux的基本用法。然后再学习的过程中,就把这些开源软件在Linux上运行。
这样,在你学习Java的过程中,顺便也把Linux学习了,这远比你将来单独学习Linux要有趣,印象要深刻。
微服务
微服务并不是一门具体的技术,而是一个设计理念,很多语言和框架都可以实现,例如Java中的SpringMVC等。
因此,如果已经掌握了SpringMVC、Springboot。那么对微服务的掌握是水到渠成的事情。你要做的就是注意力放在微服务的应用场景上。
设计模式
设计模式是较为靠上的东西。如果Java基础不是太好的话,很容易陷入空泛,眼高手低。
如果你的Java基础太薄弱,例如没有掌握“抽象类”。那么我建议你先把设计模式学习停一下,先把Java的基础知识补充下,至少要学完《Java核心技术》第六章,也就是掌握完整的现象对象的概念。然后再回来学习设计模式。
在学习设计模式的时候,一定要动手。最起码要把书中列举的设计模式,用Java语言实现一下。如果你阅读时是经典的GOF《设计模式》,其中的代码(用C++描述),就不容易用Java实现。建议你可以参照《HeadFirst设计模式》,其中的demo都是短小精悍,很适合用Java来实现。
这样,一则有利于理解设计模式。二则在学习设计模式的过程中,也进一步增强对Java基础知识的掌握。这种学习过程是一个相互促进的过程。
学习笔记很重要
特别重要的一点,学习的过程中,尽量的写学习笔记,其中包括难点和重点。
因为,系统深入的学习Java必然是一个长期的,综合的过程。到后期,一定会出现学着后面,忘了前面。如果你没有学习笔记,又没有实践中积累的代码,那么就会出现边学边忘的情况。
而有了学习笔记,可以给自己的学习留下了“踪迹”,以后复习的时候用来参考,很快就能把早前学习的记忆“唤醒”。
而且,这些学习笔记在后来的工作中,还能成为自己的参考手册,随用随查。
还有,那就是学习笔记还是一个特别好的面试宝典。因为既然你记下了笔记,这些东西往往经过你深度思考,深度消化的东西,也是你区别于其他工程师的卓越之处。
此回答转自乐字节