C、C++、Java、JS(长期贴)

来源:互联网 发布:dht网络翻墙 编辑:程序博客网 时间:2024/05/19 01:08

先对他们分个类
C/C++:有指针,变量存放内容,指针存放地址
Java/JS:无指针,变量都存放地址(无论什么类型)
C:面向过程,可用结构体进行简单的封装
C++/Java:面向对象(三大特征),对于事物先做抽象,再根据对象的联系进行流程编写(C++更偏向底层一些;Java则封装了很多方法,以及跨平台)
JS:基于Java的语法规则,但是是一个极弱类型语言,所以很随意,所以有一些规则很特殊,但是毕竟是script,所以也不能要求它能做什么惊天动地的事儿了
Java和C++:对于堆区的资源来说,C++需要用delete或free去释放资源,而Java则是根据资源是否能再被调用而智能的释放掉,所以习惯了Java再去搞C++指不定就会浪费许多内存
比较有意思的是,js中提供了delete这个方法(原因就不知道了)
一个双向链表删除节点的例子

//C/C++中,给出一个节点做参数,则手动释放掉这个资源,并返回这个节点的下一个节点list* deleteListNode(list *node){    list *p = node;//这里的p是必须的,为了释放资源    node->pre->next = node->next;    node->next->pre = node->pre;    node = node->next;    delete p;    return node;}//Java中,则不用去管资源释放,好像也不提供方法去释放,list deleteListNode(list node){    node.pre.next = node.next;    node.next.pre = node.pre;    node = node.next;    return node;}
原创粉丝点击