大千世界,无所不有。这世上不光有人类世界,还有咱们的 java 世界。今天就由我这个实习导游带领你们了解了解咱们的 java 世界的奇妙之处。

有一种暖男叫 catch,有一种真爱叫 try---catch,世上最真情的爱恋就是你在 try 我在 catch,无论你发什么脾气,我都静静的接受,默默地处理,不管你有什么错,我都会原谅你,爱着你。

有一种懒汉员工叫 throws,甭管有啥事都往外抛,做错事了就交给上级擦屁股,上级不会再给上级,给到老板为止,老板也不会那就 gg 了,倒闭吧。

程序员心中都有一个江湖,java世界,就是一个江湖!
有一种听话员工叫循环,你让他做几遍工作他就做几遍,让他不睡觉一直加班他还就真 敢做,没有老板 break 的允许是断然不敢停下的。

有一种霸道总裁叫 finally,只要他想做的事就必须要做到,就算是 return 想要阻挡都不行,除非死亡,否则他会不顾一切去得到他的猎物。

有一种垃圾回收站叫 finallize,他和我们的霸道总裁 finally 的名字非常相似,但是千万不能叫错了,不然后果很严重的。重要的事情说三遍,不能叫错,不能叫错,千万不能叫错!

有一种江湖叫类,江湖里有了人就叫对象,人有了技能就叫方法。

有一本取名法典叫做标识符,专门用来给类,方法和变量取名字的,法典里规定了必须 以字母,下划线 _ 或者美元$符号为开头才行,而且对大小写还相当敏感,并且绝对不能是关键字,像 class,catch 那种是万万不能用来取名的。

法典里有一种取名规则叫驼峰规则,给方法和变量取名的时候第一个单词必须小写,第 二个、第三个单词首字母大写,此乃驼峰规则。当然了,如果是给类取名的话,那就是每个 单词的首字母都得大写,别问我为什么,就是这么牛。

程序员心中都有一个江湖,java世界,就是一个江湖!
看到这里可能会有一些人有疑惑了,什么是变量呢? 别着急,我来告诉你。

变量有三兄弟,分为老大静态变量,老二成员变量和老三局部变量。

老大呢,比较无私,把自己给共享出去了;老二比较顽皮,混迹于江湖,常在类与方法 中自由出入;至于老三嘛,乖乖仔一个,喜欢和方法在一起玩耍,当方法消失了,老三也会 跟着方法一起殉葬。

那你们知道为什么老大这么无私吗,因为老大被共享掌门人 static 所影响了,但凡听过 static 讲课的变量都会被其所影响,愿意将自己共享出去。

这个 static 可是拥有一个很庞大的静态家族体系,有静态代码块,优先于普通代码块先执行;静态内部类,可以直接被外部类调用;静态方法,不需要对象就可以被该类调用。

Static 家族都是随着类的加载而加载,优先于对象存在的。所以在 static 方法中不能使用 this 关键字,为什么呢?因为 this 代表当前对象的一个引用,简而言之就是 static 出现的时候 this 还没出生呢,所以 this 就不能在 static 方法中使用。

有一个老顽固叫 final,被 final 认定的事物就不能改变了,谁敢乱动跟谁急,小伙伴们都怕他,尤其是类,遇上 final 就要被结扎,从此不再有子类。真是一个让人悲伤流泪的故事。变量遇上他,从此不再长身高。方法遇上他,从此不再被子类重写。所以呢,对于那 些不想再对自我进行改变的方法,变量就可以去找 final 了。

程序员心中都有一个江湖,java世界,就是一个江湖!
有一种思想叫做万物皆对象!对象怎么来的呢?在程序员爸爸眼中那就是 new 一个就有了。看到这是不是有个大胆的想法,是不是想到了自己还是一条单身狗,迫切的给自己 new 一个对象出来呀。大胆的 new 吧,骚年,new 完你还是一条单身狗。对象依然是类的对象, 用来调用方法和成员变量滴。

一个创建对象的例子:基本上每个类都至少有一个构造方法,除了匿名内部类,如果一个类没有编写任何一个 构造方法,那么类就会自带一个空参构造。如果还有一个有参构造,那么在创建对象的时候 就能直接初始化值,那叫一个方便啊。

类长大了也该结婚生子了,类的小孩就叫子类,这名字通俗易懂吧。子类可以通过extends 继承父类的方法和属性,就好像人类当中子女可以继承父母的财产一样。有些子类比较独立,不甘平庸,这时候他们就自己增加了一些属性和方法,更厉害的子类不仅自创方 法,而且还能将父类的方法进行改良变得更加强大,也就是方法的重写。

继承与方法重写的例子:

不过呢,父类的构造方法子类不能继承,子类只能通过 super 关键字调用父类构造方法。就好比父亲有一套房子,但是父亲还要继续住,不能给儿子,就给了儿子一把钥匙,儿子也可以经常回来住。

在我们 java 中,一个子类只能继承一个父类,这一点和人类一样,一个儿子只有一个亲爹。啥?你问我能不能有干爹? 那当然可以有了,接口就是子类的干爹,而且一个子类可以有多个接口,子类名 implements 接口名,接口名就能实现多个接口了。

有一种保密叫封装,封装可以将该类的某些信息隐藏在类的内部,除了本类不允许其他 类直接访问,毕竟谁都有个小秘密是不想让人知道的。

程序员心中都有一个江湖,java世界,就是一个江湖!
那么怎么封装呢?简单,只需要在属性最前面加上 private 就行了。

如果想要修改和查看封装后的属性,那就需要通过 get(),set()方法了。不是特别重要的数据就可以使用 protected 修饰,这样子类还能在不同包中访问,还有两张访问权限修饰符是 public 和 default(默认不写),public 比较热情好客,谁都能访问他。

四种权限修饰符:封装可以隐藏实现细节,就好比人类有一台电视机,人类只需要知道怎么使用,并不用 了解电视机构成元件;而且还挺安全的,因为别人看不到啊,哈哈哈!

有一种照骗叫做多态,举个栗子吧:听说最近人类挺流行网恋的,然而没有线下见面谁 也不知道手机那一端的人长啥样啊,视频又太模糊了看不清,于是照骗出现了,人类将照片 ps 的美美哒,大脸盘变成瓜子脸,小眼睛变大眼睛,各种美白磨皮,然后再把照片发给对方来吸引对方,终于关系进一步发展到了奔现的程度了,然后就没有然后了。 这个故事告诉我们在没有真正见到对方之前,你永远也不知道手机另一端的对方长啥样。多态也是一个 道理,左边一个样,右边又是一个样。

多态存在有 3 个必要条件:1.要有继承 2.要有方法重写 3.父类引用指向子类对象

多态又分两种形式,一种是向上转型,格式是:父类名 父类对象 = new 子类名(); 向上转型对象不能使用子类新增的成员变量和方法;

还有一种是向下转型,格式是:子类名 子类对象= (父类名) 父类对象; 向下转型对象既能调用父类方法也能调用子类本身的方法和属性。

对此我有一个口诀分享给大家:(适用于向上转型)

多态的成员变量和方法:编译看左边(父类),运行看右边(子类); 多态的成员方法:编译看左边(父类),运行看右边(子类);

进 行 向 下 转 型 时 一 定 要 先 来 个 向 上 转 型 , 不 然 就 会 出 现 类 型 转 换 异ClassCastException。

程序员心中都有一个江湖,java世界,就是一个江湖!
多态的例子:

大家都知道梵高吧,人类当中有名的抽象派画家,巧了,咱 java 家族里也有一种类叫做抽象类。抽象类是一为严厉的父类,他的抽象方法没有方法体,他为子类提供了一个通用 模板,可以避免子类设计的随意性,子类必须重写抽象父类的方法。

抽象方法和抽象类都必须用 abstract 来修饰,而且抽象类也可以没有抽象方法。抽象类的例子:

提到抽象方法就不得不再说一下接口了,接口中所有方法都是抽象的,所有变量都默认使用 public static final 修饰,也就是说接口中的变量就是静态常量了,值不能被修改了。

接口的例子:

最后再给大家安利个美好的画面,人类流传着睡美人的故事,公主碰到纺锤让诅咒生效, 并在城堡里一直昏睡等待王子的亲吻将她唤醒。而我们 java 世界中就经常有这么一幅画面:有一种纺锤叫 wait(),有一种吻叫 notify()。

有一位美丽的线程公主,她遇上了 wait(),除非有王子吻醒她,否则她将一直处于昏睡状态,不久线程王子出现了,王子带着 notify()将公主唤醒了。从此公主和王子就在一起过着幸福美好的生活了。

怎么样?看了这么多,觉得咱 java 世界相当有趣吧,是不是还想继续深入探索呀?

点击链接加入群聊【java高级工程师】:https://jq.qq.com/?_wv=1027&k=5BZX64

烛光学院腾讯课堂免费公开课地址:https://ke.qq.com/course/260263?flowToken=1007019

本群提供免费的学习指导 架构资料 以及免费的解答

不懂得问题都可以在本群提出来 之后还会有职业生涯规划以及面试指导

转载于:https://blog.51cto.com/14084567/2350333

程序员心中都有一个江湖,java世界,就是一个江湖!相关推荐

  1. 程序员心中都有一个“静静”,想起它就能踏实写代码了

    一代文豪托尔斯泰在其三大传世名著之一的<安娜·卡列尼娜>中开篇明义,幸福的家庭都是相同的,不幸的家庭则各有各的不幸,而在所有这些不幸的家庭中,基本   上总会有一个共同的第三者,名曰&qu ...

  2. 在鹅厂,我作为一个Java 程序员每天都在摸鱼!!!

    作为一名 在大.中.小微企业都待过 的 Java 开发者,今天和大家分享下自己在不同公司的工作日常和收获.包括一些个人积累的工作提升经验,以及一些 Java 学习的方法和资源. 先从我的第一份 Jav ...

  3. 65% 的程序员竟都是自学成才?

    大多数优秀的程序员都是自学成才! 服不服? 很多人在听到这句话时,或许都会不屑一笑,毕竟这一结论的得出似乎在一定程度上抬高了非科班转行以及培训班出来的技术人,同时将科班出来的程序员们置于一个较为尴尬的 ...

  4. 转程序员,都去写一写前端代码吧

    转自: http://www.oschina.net/news/36972/programmer-write-frond-end-code 你可以认为我是一个极端的人,就像有许多人专注于自己的领域而不 ...

  5. java书籍_Java程序员必看的 13 本 Java 书籍!

    原文:Java程序员必看的 13 本 Java 书籍! 作者: java技术栈 关乎于程序员,除了做项目来提高自身的技术,还有一种提升自己的专业技能就是:多!看!书! 毕竟,书是学习的海洋呢!So,J ...

  6. 某程序员吐槽:免费教妹子Java编程,妹子却不让自己找她闲聊!

    许多程序员教妹子编程.带妹子打游戏,都是醉翁之意不在酒,名为教学,实为追求,但有一个程序员小哥哥却比较悲催,他答应一个妹子当她师傅,教她Java编程,结果妹子却说,学习是学习,平时是平时,让小哥哥平时 ...

  7. 厉害了,天刚一冷程序员就都换上了衬衫。。

    Java技术栈(id:javastack)整理于网络 这才农历九月初,大秋天的,深圳的天气就已经降温了.更搞笑的是,朋友圈.群里都在转发下面这张图片,相信大部分人已经看过了吧. 这是哪家公司的?这么搞 ...

  8. 35岁的程序员正在消失?No,我认识了一个50岁的程序员!

    35岁的话题真是无穷无尽.一开始的时候,以为只有公众号这类社交媒体上会有这种问题的讨论,没想到,公司内部的论坛上也有不少这类的文章.大家各有各的说法,但终究也没有找到银弹似的解决方案. 这段时间,倒是 ...

  9. 领域驱动设计,让程序员心中有码(七)

    领域驱动设计- 让程序员心中有码(七) -设计原则和设计模式,互联网开发者们共同的追求 前言 多年来,笔者一直从事传统软件企业的软件开发和项目管理工作.笔者发现在众多的传统软件企业中,评判优秀开发者的 ...

最新文章

  1. KDD 2020 | 理解图表示学习中的负采样
  2. 删除桌面上淘宝商城,高清电影,精彩小游戏图标
  3. Linux如何显示文件数目的技巧比较两个文件夹是否相同
  4. 刚学GDI+和.Net WinForm控件开发时做的Training Project
  5. Mybatis返回Map
  6. MySQL - Found option without preceding group in config file
  7. ruby hash添加数据_如何在Ruby中向Hash添加元素?
  8. 微软重拳出击:盗版 Windows 将无处遁形!
  9. 2018-2019-2 网络对抗技术 20162329 Exp5 MSF基础应用
  10. java web 之 WebRoot和WebContent目录
  11. 10 个 Python 初学者必知编码小技巧
  12. 通用非即插即用监视器分辨率_为什么垂直分辨率监视器的分辨率通常是360的倍数?...
  13. jdk16新特性_jdk8到jdk16新特性
  14. Scrapy爬虫代理IP的使用
  15. 用python画钢铁侠_Matplotlib绘制漫威英雄战力图,带你飞起来!
  16. CCleanner下载安装教程
  17. 「 C/C++疑难杂症 」warning: ISO C++ forbids converting a string constant to ‘CHAR*’ {aka ‘char*’} [-Wwrite
  18. oracle 18c ad登陆,Oracle 18c PSU
  19. Flink Kafka Doris实战demo
  20. TextView简介

热门文章

  1. Java list三种遍历方法性能比较
  2. 前端资源预加载并展示进度条
  3. 端口扫描程序nmap使用详解
  4. 渗透测试:正义黑客的渗透测试以及该过程和黑客活动的区别
  5. unix编程艺术的设计原则
  6. VPLS(Virtual Private LAN Service)
  7. .NET :如何对数组进行排序
  8. maven java 配置文件路径_Maven 的配置文件路径读取
  9. mysql 表空间监控shell_一种通过zabbix监控mysql表空间的方法
  10. macos降级_macOS Big Sur如何降级