成都青白江区Java培训哪家好
阶段性学习内容 | |||
一阶段 | Java基础Java基础语法、面向对象、异常处理、集合框架、常用类、I/O操作、多线程、网络编程、XML解析 | 第二阶段 | JavaWeb网站开发HTML5、CSS3、JavaScript/ES6、JQuery、JSP/Servlet、MySQL数据库、JDBC、Linux、SVN |
第三阶段 | SSM/SSH框架MyBatis框架、Spring框架、Spring MVC框架、Struts2框架、Hibernate框架、Git、Maven 、Oracle数据库 | 第四阶段 | 基于分布式微服的互联网架构分布式微服架构、Dubbox、Spring Cloud、Spring Boot、Docker环境搭建实现自动化部署、分布式下ID唯 一性、Redis、分布式事务处理、分布式下三方接入、Active MQ消息队列等 |
第五阶段 | Python爬虫+ELK+分析Linux Shell编程、Python编程、NumPy&Pandas、Scrapy、LXML、PySpider、数据采集、整理和清洗、Elasticsearch、Logstash、Kibana | 第六阶段 | Hadoop生态圈HDFS、MapReduce、YARN、Hive、Sqoop、HBase |
第七阶段 | Spark技术栈Scala编程、Spark RDD、Spark SQL、Spark GraphX、PySpark、Jupyter、Hadoop数据模型、Atlas&Ranger、NiFi、Kafka、Oozie、Cassandra&Hive、Redis&Hive、MongoDB、Tableau | 第八阶段 | 实时流处理平台Spark Streaming、Flink、Flume、Storm、d3.js、Echarts,机器学习Spark Mllib |
重载和重写
先区分一下重载(overload)和重写(override):重载指多个名字相同,但参数不同的函数在同一作用域并存的现象;重写出现在继承中,指子类重定义父类功能的现象,也被称为覆盖。重载中说的参数不同有三种情况:参数个数不同,参数类型不同,参数顺序不同。重写一般指函数的覆盖,即相同签名的成员函数在子类中重新定义(实现抽象函数或接口不是重写),是实现多态(polymorphism)的一种关键技术。成员变量也可以重载/覆盖,但一般不会这么做。
用简单的C代码来说明重载:
1
2
3
4
|
intadd(inta,intb) {returna + b; }
doubleadd(doublea,doubleb) {returna + b; }
doubleadd(inta,intb,doublec) {returna + b + c; }
doubleadd(doublea,intb,intc) {returna + b + c; }
|
一个函数为参考基准,其他三个对应重载的三种情形。函数重载多见于强类型语言,编译后函数在函数符号表的名称一般是函数名加参数类型。上面的四个函数,g++编译后,nm命令查看符号表中的名字,输出如下:
[tlanyan@server ~]# nm test | grep add
0000000000400730 t _GLOBAL__sub_I__Z3addii
0000000000400851 T _Z3adddd
00000000004008b1 T _Z3adddii
000000000040083d T _Z3addii
000000000040087d T _Z3addiid
后四行的第三列对应编译后四个函数的符号信息,_Z3为前缀,add是函数名,剩下的字母d代表double,i代表int,与生命一一对应。
再回到PHP的重载。PHP的函数声明中参数无需声明类型,直接排除参数类型不同、参数顺序不同两种重载,只剩下参数个数不同一条路可走。定义一个参数个数不同名字相同的函数,这么一个小小的重载要求,在PHP中也是不合法的!原因是PHP中不允许同名函数存在,想定义重名函数,死心吧!虽然大多数情况下以默认参数方式实现重载基本上够用,但不时还会觉得憋屈,忍不住想问一句:PHP为什么不允许(同名函数)重载啊?!
更多培训课程,学习资讯,课程优惠等学校信息,请进入 成都青白江区IT培训成都新都区php培训成都温江区java培训 网站详细了解,免费咨询电话:400-998-6158