博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
反射和动态语言
阅读量:6225 次
发布时间:2019-06-21

本文共 405 字,大约阅读时间需要 1 分钟。

动态语言

动态编程语言是一类在运行时可以改变其结构的语言:例如新的函数、对象、甚至代码可以被引进,已有的函数可以被删除或是其他结构上的变化。

Java 引入反射后可以算「动态语言」

因为反射允许正在运行的 Java 程序观测,甚至是修改程序的动态行为。

反射的使用场景

大多数情况使用的还是反射的 introspection,即观测,比如

  • rpc 调用,根据协议 invoke 某个类的某个方法
  • 序列化和反序列化,如 fastjson
  • ORM
  • 用注解搞事情
  • ide 里的提示。如你继承了某个抽象类后,能检测到你有没有实现某个抽象方法

动态vs 静态类型语言

动态类型语言是在编译器没确定,运行时才确定变量类型的语言。当你给变量赋值的时候,该变量的类型才确定。

  • 动态类型的优点

    • 少些很多代码。比如定义很多功能相同的方法,只是入参类型不一样
  • 缺点

    • 运行时报错。使用 api 时不知道支持的变量类型,可能运行时才报错

转载地址:http://izfna.baihongyu.com/

你可能感兴趣的文章
python 效率测试
查看>>
iphone开源网络编程cocoaasyncsocket
查看>>
sql 分頁查詢
查看>>
Nginx负载均衡
查看>>
过滤求素数的好方法
查看>>
T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他
查看>>
Android UI开发第八篇——ViewFlipper 左右滑动效果
查看>>
调试js 试用火狐的firebug
查看>>
Solr使用SolrJ出现Lock obtain timed out: NativeFSLock
查看>>
解决maven模块化开发打jar包会过滤掉配置文件(xml,properties)的问题
查看>>
android中使用ViewPager实现图片左右拖动
查看>>
MVC设计模式
查看>>
JavaScript字典
查看>>
A Tour of the Dart Language(译文):三函数
查看>>
从C++到java
查看>>
05. Java NIO Scatter / Gather
查看>>
java.lang.IllegalStateException异常产生的原因及解决办法
查看>>
IOS中常用的知识总结(二)
查看>>
调用另一个Activity
查看>>
关于 Apache 的 25 个初中级面试题
查看>>