PDF 课件和源代码下载地址:
https://gitee.com/geektime-geekbang/LetsJava
作者回复: 全栈在我看来是特指JS的。因为别的语言很少会把自己“限制”在一个“栈”里。 JS开始专攻前端。人多力量大之后,总有很多人要求进步。那么很自然的就是去涉及自己的后端,JS一杆子捅到底,做全栈。 当然,还有移动端H5。 这里的栈,其实是特指web技能栈。 Java不是也不大可能会是一个全web技能栈语言。前端Java是拿不下来的。不是没有尝试过。Google以及一些大公司也试过用Java做前端,思路和用js做后端是一样一样的:都是码,学那么多干嘛?干脆用一个。当然项目应该说是失败了。据说内部还有在用,但是没有推广开来。(啰嗦一句,Java做前端的思路是写Java,然后翻译成js) Java应用的领域很广,加上Java虚拟机技术的加持,应该说是真正意义上的通用编程语言。 所以如果要对标全栈,Java应该算全域。 Java的发展方向很多。之前Java做工具很火,因为可以跨平台,代表作就是eclipse。这个课程使用的IntelliJ也是Java写的。当然现在这个领域已经过时了。 然后就是服务端。js想拿下这块其实还是有难度的。很多时候,正所谓术业有专攻。刚开始起步,全栈当然好,可以优化人力资源。如果公司成长了,流量大了,业务越来越复杂了,开发人员越来越多了,大概率还是要用Java做。 Java在中间件,云计算,大数据等等领域的使用都很广泛。我个人从事数据处理领域很多年了,很多Java领域都要涉及。 回到正题,我的建议是,发展和自己工作相关的领域。这点很重要,是不是学Java不是最重要的。 对于iOS移动开发来说,不妨横向接触一下android,H5,这样可以让自己成为一个前端小能手。设想一下,一个功能,你可以在iOS上做出来,也可以在Android上做出来,还能用H5做出来,是不是很有意思 如果发现这些没兴趣,可以纵向学习一下Java服务端开发。设想一下,如果一个app的前后端都是你写的,左手前端,右手后端,是不是很带劲? 当然有规模的公司里服务器端不会简单的就一个服务。服务端开发的话层次就很多了,比如和前端打交道的Gateway层或者叫api层,后面的业务逻辑层,在后面的偏数据访问的层等等。每一层的侧重点都不一样。学习过程中你可能会接触到Spring,通讯协议,负载均衡,容器,ECI,云计算,微服务,以及各种各样的中间件等等等等。 再强调一下,发展和自己工作相关的领域(除非你想换个领域发展)。这样说的原因有俩:1)工作中有关的东西,才能坚持学下去 2)工作中有关的东西,才有可能用得上,才能检验自己是不是真的学会了。用得上就是对自己学习的最好的激励,容易形成正反馈。 (我竟然用手机打了这么多字)
作者回复: 这个后面会详细讲述。 简单来说,static的意思就是静态的,在方法上,就是这个词能表达的意思就是,这个方法是这个类的所有实例共享的。就好像一个手办,无论制作多少个,它们用的是同一个模具。这个模具就是static的。每个手办都是一个实例,他们使用的是同一个模具。 void的意思就是没有返回值。简单来说就是没有结果。就好像看电影。看了就看了,没有什么结果。与之对应的,出去买东西,就要有结果。两个动作都有过程,过程就是大括号里的代码。一个有结果,一个没有结果。在程序里,就叫做一个有返回值,一个没有返回值。那么没有返回值就用void表示。
作者回复: 终于找到一个听不懂的,快快告诉我哪里没听懂
作者回复: 你怎么知道我英文名滴?
作者回复: 楼上正解。 我们现在专注于基本表达式和语句的学习,class这部分内容安排在第二篇。花式内部类,一次讲过瘾~
作者回复: 一个项目里可以有多个main方法,但是执行的时候需要指定一个main方法。
作者回复: 你是说一个文件里有多个class吗? 我们现在(而且java的主流方式也是)一个文件只有一个class,这个class的名字就是文件名
作者回复: 那我再多说一个,printf,f是代表format。所以printf不换行
作者回复: 不public的class可以类名与文件名不一样哦,你可以试试看哈
作者回复: 是的。你可以认为一个人说的是英语(一种编码),听的时候被当成法语(另一种编码),那只能空耳出一串意义不明的文字😁