zoukankan      html  css  js  c++  java
  • 编程基础(3)

    1、c++与java的相似点以及不同点?(不全)

      Java支持类,但不支持结构体;所有的类继承自Object类;所有的函数及方法必须定义在类中;

        Java支持接口(interface),可以创建出一种只包含方法申名与常量的接口。c++不支持interface。

        Java不支持多继承,在某中程度上接口机制实际上可以提供多继承的某些特性,同时又能避免多继承带来的底层问题。

       Java不支持自动类型转换。不支持指针;拥有String类型,该对象是不可变得字符串常量,支持StringBuffer该类型的对象是可修改的。

     2、Java抽象类和接口的区别:

         接口中的方法都是抽象的,不能包含实现代码;而抽象类里面的实例方法,则可以提供默认的实现代码。这是抽象类与接口在方法上的主要区别。

    3.Java中,ArrayList与Vector之间的重要区别是什么?

        数组比ArrayList和Vector都快。如果能提前知道元素的个数,那么可以考虑使用数组。(数组的大小,不能向List那样,随着元素个数而增长。)

        ArrayList和Vector在内部也使用数组,提供add(),remove()等方法。

    4.Java中的HashMap和Hashtable有什么区别?

    HashMap和HashTable都实现了Map接口,主要区别有:线程安全性、同步、速度

    1、线程安全:HashMap是非synchronization(同步)的,HashTable是synchronization的,这意味着HashTable是线程安全的。

    2、同步:因为HashMap是非synchronization的,HashTable是synchronization的,所以需要同步的话用HashTable。

    3、速度:由于HashTable是线程安全的也是synchronized,所以在单线程环境下它比HashMap要慢

    5.String、StringBuffer、StringBuilder的区别

     String是字符串常量,内容是不可修改的;StringBuffer 和 StringBuilder 是字符串量,可用来字符串拼接。

     在执行速度上,String < StringBuffer < Stringbuilder 。每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,因此会有较大的影响。其次因为StringBuffer是   线程安全的,StringBuilder不是,因此StringBuilder要比StringBuffer快一些。

    6.Java中 == 和 equals 区别

     ==比较的是引用相等,比较的是两个对象是否相等,也可能是int 型得常见类型的值;

     equals  若对象没有重写equals方法,则与==作用是相同的;若重写了eg:String那么比较的就是值相等。或其他自定义的相等比较。

    一切美好的都是值得等待的。
  • 相关阅读:
    java通过LinkedList实现堆栈和队列数据结构
    华硕笔记本无法调节屏幕亮度
    Java8新特性
    GitLab使用记录
    Java IO流关闭问题之原理简析
    gradle build docker image
    mysql安装及使用
    前端div层级控制
    Could not get dialect instance.
    Starting a Gradle Daemon, 5 busy and 1 incompatible and 1 stopped Daemons could not be reused, use --status for details FAILURE: Build failed with an exception. * What went wrong: Could not dispatch
  • 原文地址:https://www.cnblogs.com/minghua-b/p/9695922.html
Copyright © 2011-2022 走看看