jjb_chain_boy: 一直有一个问题,就是为啥C语言里面没有注解,但是好像C语言也不需要注解,但是在java的世界里好像没有注解就会感觉java没有那么神秘或者说没有那么高级,因为java的框架是用注解来实现的。 但C语言并没我快注解,但是却并不能说C语言不高级,或者说C语言简单,为什么呢?我想了很长时间,我的理解是,java的方法数据和类在框架中需要二次处理,或者相对于C来说又多了一层处理,其实不止是一层,除了框架的一层还有中间码一层。 但C没有这么多层,C比较直接,这也是他的优势,所以C的效率最高。 为什么C不需要多层处理呢?或者说为什么java非要搞的那么繁琐有什么意义呢?不是自己给自己找麻烦不是吗,直接干多好啊,其实java多层处理的意义就是为了,让重复的工作交给后台来处理,无论是编译器还是框架,都是后台,说白了就是为了能省点事,当然,处理问题的总是也产生了问题,那就是使用框架也变的越来越复杂,指令越来越复杂。越来越多。 而C就是以不变应万变,不怕麻烦。为了效率可以费点劲也认了。 当然虽然C没有那么多层处理,但是从本质上C也是有注解的,其实注解的本质就是指针,无论你认不认可。因为指针同样是标注了一块地址的内存,通过指针你可以找到这块内存的一些信息。 在java里面是没有指针的概念的,而所谓的标注数据或者方法,其实就是地址指针。明白了吧。 比如说你写的注解,框架是怎么知道的呢? 是通过反射得到的,所谓的反射就是用过一个名称获取到一个内存的地址,因为这块地址被提前标注了。就是这么回事,别在拿着什么反射或者注解来忽悠人了。 或者说别在说java里面没有指针了,纯属胡说,没有指针的名称了,只是换了一种方式,java本来是想把程序搞简单些,但是还是回到了原点,甚至比C搞的更加让人疑惑。其实就是因为java不承认用了指针。其实不用指针程序是无法变的这么灵活的,而且无法实现间接调用,或者什么非入侵式的模式,什么非入侵,就是指针共享了内存地址而已,或者叫做指针的间接访问而已。或者叫做地址的间接访问而已。 如果不用标注,或者说不用注解,能实现框架的功能,那才叫做非入侵式,有注解就不能说没有入侵,不能说没有产生联系,而且不产生联系,还用框架做什么。 Java有些东西就像变魔术,变戏法,看着神秘,其实揭秘之后发现,太欺骗人了。因为很多时候起名字的人内心里就想忽悠别人,让别人认为搞的很神秘的样子,或者就是为了不让别人听懂。其实就是阴险小人罢了。 Java没那么多歪理邪说,没那么多稀奇古怪,都是计算机做出来的。 不要太嚣张。也不要忽悠人,心地善良些为好,名字起的正常一些为好。不要感觉好像java什么都反着来的,什么反射,什么注解。反射就叫通过指针过去数据,注解就叫做指针的标注地址就好了。这样说谁还不懂。
Java和C语言有什么区别?
Java和C语言有什么区别?