为什么学JAVA

学习一门语言时候要问自己为什么要学,它有啥优劣,就像追个女孩纸一样,但是她没啥优劣,就是你心中小绵羊。扯远了,言归正传。

为什么学JAVA?

①JAVA跨平台(一次编译处处运行),其实解释性语言都应具备跨平台,但就要依托于解释器(如JVM),那么会导致执行效率相对于c/c++较低,且.class字节码文件可以反编译,这点算得上机缘巧合优劣并存。

②简单易学流行指数高,而且生态圈广

已经了解为什么,那么到底那点让你无法自拔坠入爱河呢?那喜于她的脸蛋(字节码)忠于她的人格(生态圈),又扯出轨了。

何为字节码

字节码简单说是java文件被JVM解释编译后的class文件,而此文件含有类相关信息,这样便可以神不知鬼不觉动态操作类,这或许也是那个ta的瑕疵中亮眼的魅力,这种魅力我们就称之为字节码编程,为了能更好的铭记,此时就需要使用一些法子咯(工具

字节码编程工具

(1)JDK反射:只能取值或设置,代理接口。

(2)基于JDK指令ASM:无所不能但复杂。

(3)基于ASM的CGLIB类库:对final方法,无法进行代理。

(4)Javassist:但是成员执行需要借助JDK反射。

效率:ASM >> CGLIB > Javassist > JDK反射

此时问题来了,它能动态操作类,有什么场景可以证明?

场景

(1)字符串中语句执行

(2)Spring中IoC(依赖注入)与aop(切面编程)

(3)mybatis中mapping接口(代理/委派)

(4)……

对于场景(1)还可以使用Java脚本引擎(如:Rihno、Nashorn)或者bsh.jar框架,但是JDK反射不能。

现在我们已经慢慢因为她的脸蛋而喜欢上这个ta,但是这不足以动以情钟于心,如果没有人格(生态圈),那么ta终将销声匿迹,而恰恰这样的ta却圈子爆膨。

生态圈

服务器、大数据、微服务、消息件、搜索引擎、脚本引擎、数据库、缓存等圈子

如有说得不当,请谅解,若有好的建议,欢迎提供,彼此交流交流,后续会更新java点滴,尽请期待^_^(bugbiu)

你可能感兴趣的:(为什么学JAVA)