设计模式之美
王争
前Google工程师,《数据结构与算法之美》专栏作者
立即订阅
17460 人已学习
课程目录
已更新 20 讲 / 共 100 讲
0/6登录后,你可以任选6讲全文学习。
开篇词 (1讲)
开篇词 | 一对一的设计与编码集训,让你告别没有成长的烂代码!
免费
设计模式学习导读 (3讲)
01 | 为什么说每个程序员都要尽早地学习并掌握设计模式相关知识?
02 | 从哪些维度评判代码质量的好坏?如何具备写出高质量代码的能力?
03 | 面向对象、设计原则、设计模式、编程规范、重构,这五者有何关系?
设计原则与思想:面向对象 (11讲)
04 | 理论一:当谈论面向对象的时候,我们到底在谈论什么?
05 | 理论二:封装、抽象、继承、多态分别可以解决哪些编程问题?
06 | 理论三:面向对象相比面向过程有哪些优势?面向过程真的过时了吗?
07 | 理论四:哪些代码设计看似是面向对象,实际是面向过程的?
08 | 理论五:接口vs抽象类的区别?如何用普通的类模拟抽象类和接口?
09 | 理论六:为什么基于接口而非实现编程?有必要为每个类都定义接口吗?
10 | 理论七:为何说要多用组合少用继承?如何决定该用组合还是继承?
11 | 实战一(上):业务开发常用的基于贫血模型的MVC架构违背OOP吗?
12 | 实战一(下):如何利用基于充血模型的DDD开发一个虚拟钱包系统?
13 | 实战二(上):如何对接口鉴权这样一个功能开发做面向对象分析?
14 | 实战二(下):如何利用面向对象设计和编程开发接口鉴权功能?
设计原则与思想:设计原则 (3讲)
15 | 理论一:对于单一职责原则,如何判定某个类的职责是否够“单一”?
16 | 理论二:如何做到“对扩展开放、修改关闭”?扩展和修改各指什么?
17 | 理论三:里式替换(LSP)跟多态有何区别?哪些代码违背了LSP?
不定期加餐 (2讲)
加餐一 | 用一篇文章带你了解专栏中用到的所有Java语法
加餐二 | 设计模式、重构、编程规范等相关书籍推荐
设计模式之美
登录|注册

加餐一 | 用一篇文章带你了解专栏中用到的所有Java语法

王争 2019-11-17
尽管说设计模式跟编程语言没有直接关系,但是,我们也无法完全脱离代码来讲设计模式。我本人熟悉的是 Java 语言,所以专栏中的代码示例我都是用 Java 语言来写的。考虑到有些同学并不熟悉 Java 语言,我今天用一篇文章介绍一下专栏中用到的 Java 语法。
如果你有一定的编程基础,熟悉一门编程语言,结合我今天讲的 Java 语法知识,那看懂专栏中的代码基本不成问题。
如果你熟悉的是 C/C++、C#、PHP,那几乎不用费多大力气,就能看懂 Java 代码。我当时从 C++ 转到 Java,也只看了一天的书,基本语法就全部掌握了。
如果你熟悉的是 Python、Go、Ruby、JavaScript,这些语言的语法可能跟 Java 的区别稍微有些大,但是,通过这篇文章,做到能看懂也不是难事儿。
好了,现在,就让我们一块儿看下,专栏中用到的所有 Java 语言的语法。

Hello World

我们先来看一下,Java 语言的 Hello World 代码如何编写。
在 Java 中,所有的代码都必须写在类里面,所以,我们定义一个 HelloWorld 类。main() 函数是程序执行的入口。main() 函数中调用了 Java 开发包 JDK 提供的打印函数 System.out.println() 来打印 hello world 字符串。除此之外,Java 中有两种代码注释方式,第一种是“// 注释…”双斜杠,表示后面的字符串都是注释,第二种是“/* 注释…*/”,表示中间的内容都是注释。
取消
完成
0/1000字
划线
笔记
复制
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
该试读文章来自付费专栏《设计模式之美》,如需阅读全部文章,
请订阅文章所属专栏。
立即订阅
登录 后留言

精选留言(88)

  • 辣么大
    Java用的时间最长,大概4-5年,不敢说自己“熟练”掌握了。最近反而觉得不懂的更多了。我没有抓入Java8不放,而是跟着Java的发展,开始学习Java11和Java13的新特性,紧跟语言的变化,并学习虚拟机和并发编程的相关知识。

    我觉得熟练使用某种编程语言,在技术能力评价中占比起码50%。因为“熟练”是衡量一名程序员对一门语言掌握程度的重要指标。说明他\她不但会使用该语言,而且知道语言的细节,优缺点、适用场合等等。从入门到掌握、精通一门语言或者技能,是要花大功夫的,能看出一个人是否能把一件事(可能很枯燥)做到极致,有是否钻研的精神。这种能力是很多人不具备的。

    国内招人还是很实际的,来了就能干活。学习能力是很虚的一个东西,嘴上说说没啥用。熟练掌握一门语言,才能看出你有学习能力。
    2019-11-17
    9
    45
  • 编程界的小学生
    原谅我这篇文章三十秒就看完了,因为我是JAVA
    1.用了多久我也不确定,但是学习方法是有的,首先看视频,资料,动手敲,晚上睡觉前在脑海里回顾一下学了什么,明天在动手敲一遍昨天学的内容,最后用自己的语言将其组织成一篇属于自己的文章。
    2.熟练需要看成都,就比如很多人都说看源码感觉没用,看了就忘,也不知道能干嘛。我认为看源码首先能隐形锻炼你写代码的风格,学习里面的架构设计思想,且遇到奇葩问题你能知道怎么debug进去找问题,这些才是最主要的。我个人认为,如果没有看懂看清他里面的设计思想和核心源码,那我觉得你只是掌握了他的api,而不是熟悉。
    2019-11-17
    2
    13
  • 李小四
    从第一次接触Java,到得心应手,大概花了两年时间。这个周期让我理解了学习的非线性。
    大一开始学习C语言,学的似懂非懂,做了课程设计就放下了,发大二开始学Java,同样似懂非懂。大三开始接触Android开发,用到了Java,才发现自己Java知识不足,于是花时间重学了Java,过程中发现有些东西不理解,又穿插着把C需要的指针内存啃了几遍,大三结束的时候,Java才算熟练了,距离刚开始学习过去将近两年,中途无数次被打击,也放弃了很多次,因为每个字都认识,但看一次两次根本不理解,直到某一天你发出了一声恍然大悟的“哦~~~”,这种非线性的特点应该是很多人最终放弃的原因吧,一次次被打击,多次尝试没有正反馈,出于自我保护心理,说服自己放弃了。
    2019-11-17
    11
  • 极客不落🐒
    Day013 加餐一
    勘误:第二种是“/注释…/”
    应为:第二种是“/* 注释…*/”

    作者回复: 嗯嗯 多谢指出

    2019-11-17
    7
  • 摸爬滚打三十年
    因为看老师的专栏太入迷,坐过了站
    2019-11-29
    5
  • 丁源(156*****518)
    常人嗑语言,高手玩算法,大师谈模式,神人给定律。计算机,数学,哲学,神学。对抽象的理解越发深刻,构建高层次,高维度的模型就越稳定,由此意识形态泛化出的物质形态也会跟着越接近现实。
    2019-11-22
    1
    4
  • Jason
    大学开始主要了两年Java,然后毕业找到深度学习的岗位,主要用python和c++。

    有java基础,上手就很快,学习python就跟着GitHub上一个python 100 days那个项目学了一个礼拜,但没看web相关的,主要是看机器学习相关的一些库怎么用。反正现在能用tensorflow调调参。

    然后两周前又转回Java,感受就是语言层面的没设计模式,数据结构与算法重要,更没分析问题,解决问题的能力重要。
    2019-11-19
    3
  • 被水淹没
    高中学了vb,以为大多编程语言都差不多,基本的变量、控制语句都差不多
    然后去学C,看到后面... 我擦这指针啥玩意?看来得补一下指针,然后搜了下.. 厚厚的一本指针教程... 然后就被打击到了
    直到大学学了java,没指针,舒坦... 大学完就只会ssh,ssm,还好实习找得到工作,现在努力提升自己,先把争哥的这2套课程学了先 ^-^
    2019-11-18
    1
    3
  • 阿辉
    Swift, Object-c,Java
    2019-11-18
    3
  • 小马哥
    大学课程中学习了C,工作中自学并使用JAVA,主要用于web和大数据开发,JAVA不仅仅是一门语言,还是一个技术体系,包括了后来的很多技术框架,学习JAVA语言如果有其他语言基础是很快的,精通后面的一些常用框架就需要一些设计模式的积累。所以还是学习能力最重要:学习,操练,总结,分享,这个路线是我认为很快捷的学习方法。最后学习的东西越多,越容易融会贯通,后来使用Python做推荐系统,我们几个JAVA开发人员,基本是用一个小时过了一遍Python语法,就开工了
    2019-11-17
    3
  • Flynn
    “熟练使用某种编程语言”所占的比重:入门程序员80%,之后的程序员20%
    2019-11-18
    2
  • halweg
    小争哥真的是在手把手扶着我们往过淌
    2019-11-18
    2
  • 斜杠ing...
    语言虽然只是个工具,但对于大多数人来说,几乎就用一种语言,还是精通后才能说语言是相通的。
    2019-11-17
    1
    2
  • William
    居然有加餐,666.
     
    一篇文章涵盖java 语法,赞.

    另外补充一下,关于权限限定符,
    还有个default,支持的范围是 本包内可用,

    protected 也支持本包内可使用.

    编程语言确实不是最重要的,因为在企业中需要的是能够产生价值的软件,而非其他.
    2019-11-17
    2
  • 相逢是缘
    非计算机专业,在学校就学习了C语言,在工作中也一直使用C。后来自己看了C++,JAVA。学习一门语言最开始就是一些基本语法和数据结构,了解了这两个就可以自己调试一些简单的demo。接下来就是你的程序不能只在控制台打印信息,要能对外输入和输出。这块一般是两部分:1、还是在自己的计算机内部,能从磁盘读取和保存数据。2、能够和别的计算机通信,也就是socket http等网络编程。再接下来就是一些每个编程语言自己特有的特性,需要好好琢磨和体会。深入一些就是编写的程序到计算机执行是个什么过程,对c来讲,程序如何被编译的,如何链接的,如何被系统装载运行的;对JAVA来讲,需要了解JVM。只有了解了这些,才能了解前辈大牛们的程序为什么那样去写,也才能解决后面遇到的一些深层次的问题。
    2019-11-17
    1
    2
  • 日拱一卒
    这篇看得毫无压力😁
    2019-11-29
    1
  • 无名氏
    这篇毫无压力
    2019-11-26
    1
  • CHS
    学习一门新语言的时候,必须把基础过一遍,并且自己练一遍。是语言是一个工具,编程思想是互通的,但编程工具的使用却不一样,有的些工具相似,有些工具差异却很大。

    所以一定要把这个工具的基础弄熟练,这样当你想要实现自己的某个思想的时候,才能得心应手。就比如开车,我们都会开车,之前开的是老式的车,在后来的新车有了很多新的功能,比如定速巡航,我们不知道,还是按照老式的车来开,虽然可以开,但是很多好用的功能都没用到,在到以后可以自动驾驶了,我们还是用老式车的方式去开,任然无法享受到新式车带来的便利
    2019-11-26
    1
  • AllenGFLiu
    跟大家一样,在学校里学的C,自然是没学懂,更谈不上精通了。

    后来工作上用的是Delphi,只会CRUD,期间也想自学Java,但在学习过程中,对基本的数据结构都不了解,并且也没项目可以边学边做,所以很痛苦。

    后来,转部门学了Python,并且学了争哥的上一门数据结构课,现在再过来看Java的基础知识课,真是眼前一亮的感觉,不过如此嘛,当时自学的时候死扣的容器,现在瞄一眼就知道干啥了,现在懊悔的是当时没早点学习基础知识。
    2019-11-20
    1
  • Chandler
    感觉学编程还是得注重语言特性的学习,编程语言有很多种,但语言特性就那么些东西。推荐一篇关于如何学习,选择编程语言的文章。
    http://www.yinwang.org/blog-cn/2017/07/06/master-pl
    2019-11-18
    1
收起评论
88
返回
顶部