反射和动态语言
动态语言
动态编程语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。
Java 引入反射后可以算「动态语言」
因为反射允许正在运行的 Java 程序观测,甚至是修改程序的动态行为。
反射的使用场景
大多数情况使用的还是反射的 introspection,即观测,比如
- rpc 调用,根据协议 invoke 某个类的某个方法
- 序列化和反序列化,如 fastjson
- ORM
- 用注解搞事情
- ide 里的提示。如你继承了某个抽象类后,能检测到你有没有实现某个抽象方法
动态vs 静态类型语言
动态类型语言是在编译器没确定,运行时才确定变量类型的语言。当你给变量赋值的时候,该变量的类型才确定。
动态类型的优点
- 少些很多代码。比如定义很多功能相同的方法,只是入参类型不一样
缺点
- 运行时报错。使用 api 时
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JavaScript之扑朔迷离的this
JavaScript之扑朔迷离的this JavaScript这门语言中,最令人迷惑的地方有三个,闭包、this、原型。针对大多数人,可以利用词法作用域等避开this的坑,但是我们不能一直生活在舒适区,要敢于打破砂锅问到底,对我们来说也是一种提升。 一、一般对this关键字的误解: 1、this指向函数自身 2、this指向函数词法作用域 我们可以看以下一段代码: 1 function test() { 2 test.a = 1; 3 this.a = 2; 4 console.log(test.a); 5 console.log(this.a); 6 console.log(test.a === this.a); 7 } 8 9 test(); 10 console.dir(test); 在上面这段代码中,我们在全局声明一个方法test,给test中的a属性赋值1,当前方法中的this中的a属性赋值2,加入this指向函数自身,那么test.a === this,a并且都等于2. 下面我们来看下这段代码的运行结果: 从上可以看出,scopes为全局作用域window,this也指向...
- 下一篇
linux服务器---百科mediawiki
Mediawiki Mediawiki是一个强大的维基软件,可以实现页面编辑、图像和多媒体管理。 1、下载mediawiki软件(“https://www.mediawiki.org/wiki/News”) 2、为mediawiki-1.22创建一个自己的数据库,我们起名为“mediawiki-1.22” 3、将mediawiki安装包解压到apache的网页根目录“/var/www/html/” [root@localhosthtml]# cp/wj/mediawiki-1.22.tar/var/www/html///拷贝压缩包 [root@localhosthtml]# tar–xvfmediawiki-1.22.tar//解压 [root@localhosthtml]# mvmediawiki-1.22mediawiki-1.22//重命令,这样方便从浏览器打开 4、安装。在浏览器输入地址“127.0.0.1/mediawiki”,开始安装 1)提示“localsetting.phpnotfound”,点击“setupthewiki” 2)选择语言 3)检测环境,如果有严重问...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7安装Docker,走上虚拟化容器引擎之路
- CentOS7编译安装Cmake3.16.3,解决mysql等软件编译问题
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- Docker快速安装Oracle11G,搭建oracle11g学习环境