统观我的Java理解程度

     不断地学习,不断地忘记,只有真正理解的东西才是我们脑海里的东西,让一个东西忘不掉,一个就是永远的用下去,一个就是深深的记住在心里。而我是偏向于前者的,但是这个缺点是一旦我离开那么这些东西也就会理我而且,我没有那么好的记忆力,那么只能在一次的理解后马上记下来,依照记忆曲线来做我的事。

       Java,非常符合时代的一门语言,他让很多人从完全不了解语言到了一个新的阶段----了解了开发。虽然这些还完全不够,但是不得不说,这让很大一部分人有了可以生存的基础,时代需要这样的语言,需要一门看似可以独立的语言。这也许是C++一派的见解,个人还是非常偏向于Java的。

    Java的三个特性:继承、封装、多态。在我看来这三者是互相体现的,举个例子来说我们需要一个封装一个或者以下方法,从而达到它可以维我所用的目的,所以我们就用一个类家里面的权限修饰词将我们所有的东西全部封装起来,这就是封装,当我们需要将我们的类继续扩展之时我们需要在这个类的基础上再做一些扩展,由于这个需要就定义了继承,在封装的基础上再次封装,同时两者的联系又使得原来的封装不是那么的封闭,而权限修饰词也使类不那么开放。当然我认为这里的继承与Java里面的继承(extends关键字)是不一样的,我认为这里的继承是一个概括,包裹抽象类接口这些东西,定义一个标准,沿着这下标准走下去。最后由于继承这个方法,让多态不可避免的产生了,因为对于继承的实现从而产生了新的类,而这些类是以不同人的思想而在变化的,从而产生不同的状态,这样多态即产生了。所以可以以实例概括:String就是一个极端的封装,接口就是一个极端的继承,所有超类的子类就是多态。

    Java的垃圾回收,说简单一点就是C++之中的delete关键字,但是我想这还不是唯一的区别,在C++之中我们自己在堆内存里面所创建的空间我们可以自己删除,而在面向对象的原则之中大多数的内存回收都是交由析构函数,这是C++所确定的回收方式。但是Java为了方便程序员把这些全部交给了Jvm,这虽然的确是解决了内存自动回收,但是毫无疑问,这大大的加大了程序资源回收的复杂性,但是不得不说根搜索算法是一个不错的思想,加之对内存碎片的处理等等算法的确是解决了问题。在个人来看,应该不会是所有的公司认可这些功能的,我猜测阿里巴巴在自己的介绍中说拥有自己定制的Jvm,我想应该就是在垃圾回收之上做了手脚,因为在我的小眼睛之中完全想不到Java还有在哪方面上是不完整的。

    一直在想:为什么Java要定义接口这个东西,这些东西难道就是那么的重要,我的意思是重要到非要单独来定义关键字来完成,都是一群没有实体方法的类,抽象类是没有代替的余地吗?大家通常会说,interface这个关键字定义的就是一个规则,关于什么的规则呢,我想大多是关于Jvm或者是关于定制虚拟机的一种规则。这么解释应该合理,虚拟机一定程度上是要接触硬件的,而对于硬件是有特定的触发方式的,何时才能触发,都被生生的写进了虚拟机,没有变通,想要接触硬件或者其他的Jvm定好的流程规则,就必须要走接口这条路,这是一个流程。没有看过Jvm源码,只能猜测,但应该是没什么问题的。

    Java的类库,这是他的亮点,不得不说,解放了底层的实现,而更有意义的是将将所有的类库进行了合理的设计,从而不像C++那么的分散,虽然使用起来都是那么的用法,可是对比起来马上就有一种清新的感觉,把以前所有必须考虑的情况全都解放出来。从上到下,每一个阶层都为程序员考虑的清清楚楚,虽然这对于学习是没有很好的益处,但的确是解决了C++的一个初学性质问题。Java的类库基本上是可以分为两大类(对于用户来说),第一种当然是平时所调用的类,用来实例化实现自己想要的东西,方便你我。对于第二类,我认为是一种介于程序和系统之间的“方法”,可以这么说,因为这是属于Java的类库实现方法,可使用途不仅仅是用来实现功能。一方面,这些类可是为程序所用的,另一方面,又可以调用系统级任务来完成或者服务其他的程序。有点复杂,举个例子,守护线程所实现的方法就是API所提供的Thread类,可是他的方法就是实现程序的完成,他的生命是随着他所守护的线程而生成或者消亡的。另一个例子,System类,与Thread类是一样的效果,但是在有些时候可以调用一下合适的方法来辅助进程的良好走下去,就好笑freememory这个方法,能够实时观察内存的使用情况,并且干预周期性的垃圾回收(gc方法)。两者分类还是在自己的程序实现的功能上进行区别,有本质上的区别,也是涉及到程序质量的一个问题。

    Java Web,说起Java就不得不说说他的网络,毕竟Java就是在网络上得到了发展,的确,这方面倒是没有其他语言可以非常好的超越。首先说起Java Web,那就必须说他的JSP和Servlet,这是走向后面框架搭建的最好步骤。对于Spring、Struts2和herbinate算是一个支持,但是我不认为JSP算是一个为他们打造的基础,只是一个发展,到达了另一个地步。毫无疑问这些虽然不属于W3C,但是确实是开发网络的一个很好地语言。

    广度扩展,写完只能说是当做一个小文章看一看,没有一点的实用意义,唉。。。浪费了时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值