开源中国社区 高手问答邀请疯狂软件李刚老师 和你们一块儿探讨关于 Java 的问题。html
李刚,十余年的软件开发从业经验,疯狂软件教育中心教学总监,疯狂 Java 实训营创始人,疯狂 Java 体系原创图书做者。李刚老师做为国内著名高端 IT 技术做家,已出版《疯狂Java讲义》、《疯狂Android讲义》、《轻量级Java EE企业应用实战》、《经典Java EE企业应用实战》、《Struts 2.x权威指南》、《疯狂HTML 5/CSS 3/JavaScript讲义》等著做。前端
Java 从诞生至今,便一直长盛不衰,做为一门长期霸占编程语言排行榜前列的语言,它有何独特之处呢?咱们能够列出许多因素,好比 Java 是工业级别的编程语言,它的标准和规范都是面向对象编程的表明;好比 Java 的生态至关成熟,社区活跃度高,不管什么样的问题基本都有现成的开源解决方案。java
并且偏偏是因为 Java 的流行和开放性,在 Java 平台之上还衍生出了不少轻量级的编程语言,好比 Scala、Groovy、Kotlin 等等,这些语言均可以运行在 JVM 之上,造成了极具生命力的生态环境。而这种反哺的关系使得 Java 生态愈来愈壮大。android
问:jdk7升jdk8要注意哪些问题
疯狂软件李刚: 主要是接口变化比较大。 另外Lambada表达式很是方便,很好用。另外流式编程也是一大利器。
网友问:李老师,请问您一下,Java相比于PHP语言,最大的优点是什么,劣势又是什么
疯狂软件李刚: Java和PHP根本不是同一个方向的东西呀,Java主要用于开发高并发、高可靠的应用,固然Java也能作小应用 而PHP则主要用于作一些中小型的应用。典型场景就是,taobao当年就是靠一套PHP起家,但用户多了以后只能改成用Java。
网友问:老师你好!我本身是一个在小公司成长的人,本身的技术很杂,从毕业到如今基本都是独立负责项目(小项目),开发到是也知足了公司的须要,在公司,领导和同事也以为我能力不错,可是我发现本身如今不能找到技术方向突破,也就是多而不 精。我应该怎样找到方向呢?另外我的学习能力还行,天天基本保证2小时学习量。
疯狂软件李刚: 那挺好呀。按你的描述,我也以为你的能力挺不错的。 你能够从两个方向着手。 1. 尝试学习一些更底层、更原理性的东西。 2. 尝试去大公司学习一些软件开发的相关规范、流程。
问:我想了解一下Java在近将来还会一直这样流行下去吗?
疯狂软件李刚: 实际上,喜欢讨论”xxx语言要被淘汰了“这种话题的,自己一般就是刚入行的小菜鸟,一般是由于以为本身要学习某个语言太难,才会说淘汰这种话题。对一个真正成熟的开发者而言,用哪一个语言不是用?编程语言本是末技,他会选择本身喜欢、适合本身的编程语言。
疯狂软件李刚: 看看C/C++,不少问题,但因为它的现实,因此它一直坚挺。 Java也同样,如今世界上绝大部分的银行、通信、航空、电力、交通、公共安全等领域的核心系统,都是Java写的。 据我观察,从2004年以来,每隔1~2年就会听到有很多初学者会谈论“Java要被淘汰了”,但实际状况是是Java一直排在第一位。
问:老师,我是一个刚刚从事java一年多的小白,之前也不是学这方面的,不知道如何可以快速成长,最让我头疼的就是算法方面的,这个要如何学习啊?
疯狂软件李刚: 首先要搞清是广义的算法,仍是狭义的算法。 狭义的算法就是通常计算机专业所学的各类排序、线性表、树、图等,这些内容都有固定的知识,按照书学习就是了。我有一本《疯狂java程序员基本修养》的书是介绍这些内容的。 广义的算法指的是软件背后的算法逻辑,也就是人们所说的业务知识,这些内容只能靠你在行业慢慢积累。
问:java在将来的发展方向在哪里?面对社会竞争压力,以及新进入该行业的人才,如何让本身可以立于不被淘汰之地?除了自己的技能的强大以外,还须要具有哪些能力?有人说,程序员是吃青春饭的,您怎么看待这个问题?
疯狂软件李刚: 程序员吃青春饭——这个问题也是每段时间就被各类菜鸟传一遍。其实很荒谬,一来中国软件行业历史原本就短。一个如今60岁的人,他30岁才1988年,他想编程也编不了呀。从行业来看,你今天看到的互联网大佬,除马云以外,你看看谁不是从编程干出来的? 2周前疯狂软件李刚: 如今世界上绝大部分的银行、通信、航空、电力、交通、公共安全等领域的核心系统,都是Java写的。换掉Java,意味着这些系统所有都用重写,谁能有这么大的财力和物力去干这个事情?
网友问:老师,你好,请问当下正处于人工智能兴起阶段,之前应用开发热门阶段已通过去了,当下咱们应如何经过学习Java以迎接人工智能时代。
疯狂软件李刚: 说得好。人工智能时代必然到来,软件行业必然更加蓬勃——据个人观察,第三次工业革命(信息产业根明)如今正刚刚开始。Java做为目前应用在各行业核心系统应用最广的语言,拥有无可比拟的竞争力,认真掌握Java是一项基础技能。 与此同时,也应该注意学习Python
网友问:请问李刚老师,着手学习一门新语言或新框架,像Kotlin,springcloud等,通常的步骤是怎么样的?或者有没有什么好的方法
疯狂软件李刚: 学习一门编程语言,其实蛮简单的,你仔细体会《疯狂Java讲义》的知识体系:变量->数据类型->流程控制->函数(若是有)->类->对象->属性->方法->构造和析构->封装->继承、多态->下标(若是有)->监听、委托(若是有)->扩展(若是有)。当你把编程语言的这些本质弄清楚了,你学任何编程语言都很是快——由于编程语言只是末技。
网友问:李老师您好,我如今是一个四年Java后台开发。我想问:一、Groovy,Kotlin,scala等jvm语言有没有必要去学习研究,有的话选择哪一个比较好。二、四年这个阶段,本身学习的话,适合朝哪些方向深度学习。三、若是是在一个IT不发达的小城市,除了自学还有哪些途径能够提升本身呢。很是感谢李老师!!!
疯狂软件李刚: 1. 为何不学习Java呢?其实没有一个真正的程序员永远只用Java,若是你只用Java开发,你怎么理解Java的优秀,怎么体会Java的不足。并且学习一门语言并不难。 2. 一方面能够单纯地从技术角度深挖;另外一方面也可从业务方向提升。 3. 不管你在哪里。技术的提升都是靠本身。如今是互联网时代,即便你在深山,你依然与世界同步。
网友问:老师你好,我也买了你的书,如今我大四,不知道作java还有没有前景,好迷茫啊,外面各类培训机构培训java,致使不少转行作java,竞争又大
疯狂软件李刚: 1. 通过20多年的发展,Java已经发展成为各行业核心系统必选的开发语言,Java拥有异常强大的生命力和普遍的引用。选择作Java程序员是一份职业,不只是一份工做。 2. 外面各类培训Java,正好也说明了Java的就业前景好。 3. 竞争激烈是必然的。任何一个有前景的行业,天然有不少人但愿进入,竞争天然激烈——由于咱们中国最不缺乏的就是人。若是你单纯地由于惧怕竞争而退出,有一天你会发现无路可退。
网友问:李老师你好,我毕业后一直作Android开发,大概三年了,愈来愈以为移动前端没什么上升空间,想转热门些的Python或js又以为语言不太熟悉,一直对服务器颇有好感,是否立马转Java服务器开发是最好的选择?有什么好的转行建议吗?是否加入一个小公司接触些项目经验比较好转行?
疯狂软件李刚: 你的问题很广泛,不少开发者当初为了快速入行,或当初android人才比较缺少时选择了android,后面不少人都会慢慢地转服务端开发——这是客观事实形成了,Android开发须要的人就那么多、android开发的发挥空间就那么大(对于一个普通android开发者而言,android其实至关于一个Java框架),而Java服务端开发的内容就多太多了。程序员