zoukankan      html  css  js  c++  java
  • JAVA基础知识

    1.int和integer有什么区别?
    Int是基本数据类型,integer是对应的包装类型。Int是基本数据类型,默认值是0,integer是引用数据类型,有很多功能方式和属性,默认值是null
    注意:String不是基本类型。
    8种基本数据类型和对应的包装类型.


    2.String 和StringBuffer,StringBuffer的区别?
    Java平台提供了两种类型的字符串:String和StringBuffer/StringBuilder,它们可以储存和操作字符串。其中String是只读字符串,也就意味着String引用的字符串内容是不能被改变的。而StringBuffer/StringBuilder类表示的字符串对象可以直接进行修改。StringBuilder是Java 5中引入的,它和StringBuffer的方法完全相同,区别在于它是在单线程环境下使用的,因为它的所有方面都没有被synchronized修饰,因此它的效率也比StringBuffer要高。


    3.重载(Overload)和重写(Override)的区别?

    重载(Overload)

    重写(Override)

    方法的名称相同,参数个数,类型不同

    方法名,参数列表和返回类型完全与父类一致

    方法的访问范围不要求

    子类中提供的重写方法的范围不能比父类小

    应用在一个类的内部

    应用于子父继承关系中


    4.抽象类(abstract class)和接口(interface)有什么异同?

    抽象类

    接口

    抽象类有构造方法

    接口没有构造方法

    抽象类不予许多继承

    接口允许多 继承

    有抽象方法的类一定是抽象类,抽象类不一定有抽象方法

    接口中的属性用public,static和final修饰的,接口的方法使用public,abstract修饰


    5.String s = new String("abc");创建了几个字符串对象
    两个,现在看String s = new String("abc");语句,这里"abc"本身就是字符串常量池pool中的一个对象,而在运行时执行new String()时,将pool中的对象复制一份放到堆heap中,并且把heap中的这个对象的引用交给栈中的持有。ok,这条语句就创建了2个String对象。


    6.Java 中的final关键字有哪些用法
    (1)修饰类:表示该类不能被继承;
    (2)修饰方法:表示方法不能被重写;
    (3)修饰变量:表示变量只能一次赋值以后值不能被修改(常量)。


    7.字符串equals和==的异同
    equals是比较值是否相等,==比较的是地址,判断两个字符串值是否相等比较需要使用equals


    8. Java中四种修饰符的限制范围

    访问权限

    子类

    其它包

    备注

    public

    任何类都可调用

    protect

    ×

    继承的类可以访问以及和private一样

    default

    ×

    ×

    包访问级别,包内均可访问

    private

    ×

    ×

    ×

    类访问级别,类本身及其内部方法可用


    9.Object类中的方法
    clone,实现对象的浅复制
    getClass,final方法,获取类运行时类型
    toString,子类多覆盖重写
    finalize,gc后释放资源
    equal,等同 == ,自定义比较需重写
    hashCode,获取hashCode
    wait,线程等待
    notify,唤醒该对象wait的某个线程
    notifyAll,唤醒该对象所有wait的线程


    10.short s1 = 1; s1 = s1 + 1;有什么错?
    short s1 = 1; s1 = s1 + 1; (s1+1运算结果是int型,需要强制转换类型)
    short s1 = 1; s1 += 1;(可以正确编译)



    11.数组有没有length()这个方法? String有没有length()这个方法
    数组没有length()这个方法,有length的属性。String有length()这个方法



    12.面向对象的特征有哪些?
    面向对象有三大特征,分别是封装,继承和多态



    13.final, finalize,finally区别?
    1)final为关键字;
    final修饰变量,变量为常量,一旦赋值后,不能再修改。
    final修改类,该类不能被继承。
    final修改方法,该方法不能被重写
    2)finalize()为方法;
    finalize()方法在Object中进行了定义,用于在对象“消失”时,由JVM进行调用,用于对对象进行垃圾回收,类似于C++中的析构函数;用户自定义时,用于释放对象占用的资源(比如进行I/0操作)
    3)finally用于try catche finally语句中;
    finally{}用于标识代码块,与try{}进行配合,不论try中的代码执行完或没有执行完(这里指有异常),该代码块之中的程序必定会进行
    try … finnally



    14. float f=3.4;是否正确
    3.4是双精度数,将双精度型(double)赋值给浮点型(float)属于下转型(down-casting,也称为窄化)会造成精度损失,因此需要强制类型转换float f =(float)3.4; 或者写成float f =3.4F



    15. Math.round(11.5) 等于多少?Math.round(-11.5)等于多少?
    Math.round(11.5)的返回值是12,Math.round(-11.5)的返回值是-11。四舍五入的原理是在参数上加0.5然后进行下取整



    16. 用最有效率的方法计算2乘以8
    2 << 3(左移3位相当于乘以2的3次方,右移3位相当于除以2的3次方)



    17.Java 中的static关键字有哪些用法
    静态变量:1.被所有实例共享,2.可以通过类名或实例访问
    静态方法:1.静态方法可以通过类名访问;2.静态方法只能访问静态变量,不能访问实例变量
    静态代码块:1.静态代码块只能被执行一次,它在Java虚拟机加载类时执行


     18.如果两个对象值相同(x.equals(y)==ture),它们的哈希码(hash code)

    不对,如果两个对象x和y满足x.equals(y) == true,它们的哈希码(hash code)应当相同。Java对于eqauls方法和hashCode方法是这样规定的:(1)如果两个对象相同(equals方法返回true),那么它们的hashCode值一定要相同;(2)如果两个对象的hashCode相同,它们并不一定相同。


    19.常见异常有哪些?
    - ArithmeticException(算术异常)
    - ClassCastException (类转换异常)
    - IllegalArgumentException (非法参数异常)
    - IndexOutOfBoundsException (下标越界异常)
    - NullPointerException (空指针异常)
    - SecurityException (安全异常)


    20.什么是反射

    java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法和属性;

    这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。

    友情链接:java反射机制

     

  • 相关阅读:
    计算机编程基础
    css3 压缩及验证工具
    BFC
    【原创】bootstrap框架的学习 第五课
    曼珠沙华
    仓央嘉措
    waiting for spring......
    一天
    21-chttp连接池该取多大
    守护线程会不会执行finally?默认情况new thread怎么样确定守护状态?
  • 原文地址:https://www.cnblogs.com/dsgerblog/p/10563753.html
Copyright © 2011-2022 走看看