zoukankan      html  css  js  c++  java
  • 学习面试题Day02

    1、Java的引用和C++的指针有什么区别?


         1、类型:引用其值为地址的数据元素,Java封装了的地址,可以转成字符串查看,长度可以不必关心。C++指针是一个装地址的变量,长度一般是计算机字长,可以认为是个int;


         2、所占内存:引用声明时没有实体,不占空间。C++指针如果声明后用到才会赋值,如果用不到不会分配内存;


         3、类型转换:引用的类型转换,也可能不成功,运行时抛异常或者编译就不能通过。C++指针只是个内存地址,指向哪里,对程序来说还都是一个地址,但可能所指的地址不是程序想要的;


         4、初始值:引用初始值为Java关键字null.C++指针是int,如不初始化指针,那它的值就不是固定的了,这很危险;


         5、控制:引用不可以计算,所以它只能在自己程序中,可以被控制。C++指针是内存地址,也可以计算,所以他有可能指向了一个不属于自己程序使用的内存地址,对于其他程序来说是很危险的,对自己程序来说也是不容易被控制的;


         6、计算:引用是不可以计算的。C++指针是int,它可以计算,如++或--,所以经常用指针来代替数组下标;


         7、内存泄漏:Java引用不会产生内存泄漏。C++指针是容易产生内存泄漏的,所以程序员要小心使用,及时回收;


         8、作为参数:Java的方法参数只是传值,引用作为参数使用时,会给函数内引用的值COPY,所以在函数内交换两个引用参数是没意义的,因为函数直叫唤参数的COPY值,但在函数内改变一个引用参数的属性是有意义的,因为引用参数的COPY所引用的对象是和引用参数同一个对象。C++指针作为参数给函数使用,实际上就是它所指的地址在被函数操作,所以函数内使用指针参数的操作都将直接作用到指针所指向的地址(变量,对象,函数等)。


    2、请简述Java的main()方法。
         main()方法是一个程序的执行入口,它是一个定义在类中的、公开的、静态的、无返回值的、参数为一个字符串数组的方法,他的参数args与执行参数一一对应。


    3、Java中equals和==的区别是什么?

         equals和==两者均表示相等的意思,但是它们相等的含义却有所区别。
         “==”运用在进本数据类型的时候,通过比较它们实际的值来判定是否相同;而用于比较引用类型的时候,则比较两个引用的地址是否相等,也就是是否指向同一个对象。


         equals方法是java.lang.Object的方法,也就是所有的Java类都会有的方法。它可以被覆盖重写,通过自定义的方法来判定两个对象是否相等。对于字符串java.lang.String类来说,它的equals方法用来比较字符串的字符序列是否完全相等。


    4、Java提供了哪几种循环结构?它们各自的特点是什么?
         Java提供了3种循环结构,即for、while和do...while语句。它们各自适用于不同的情况,其中,for循环适合于能确定循环次数的循环结构。while语句则适合单条件的循环。而do...whie语句在执行某段代码之后,再循环的时候更适合一些。


    5、Java中的三元运算符是什么?


         Java中唯一一个三元运算符为“表达式一?表达式二:表达式三”。在问号?之前是一个布尔表达式,它只能返回true或false,如果表达式一返回的是true则执行表达式二,否则执行表达式三,并产生相应的返回值。它的主要目的是为了是代码更简洁。

  • 相关阅读:
    在Eclipse中制作SSH配置文件提示插件
    JsonUtil
    jQuery Callback 函数
    jcifs包实现域认证的单点登录带来了个奇怪的问题
    jQuery AJAX 函数
    java反射技
    jcifs的NTLMHTTP验证及所犯错误
    jQuery CSS 函数
    JCIFS
    JCIFS NTLM HTTPAuthenticationJCIFS使用NTLMHTTP认证
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5622306.html
Copyright © 2011-2022 走看看