Java基础技术

1.java都有那些数据类型

        基本数据:byte、short、int、long、char、float、double、boolean

        引用数据:类、接口、数组

2.java语言的几大特性

        封装:将对象的属性和行为结合为一个独立的整体,别人可以使用我提供的功能,但不知道我是怎么实现的,提高安全性

        继承:子类继承父类的数据属性和行为,并且自己可以拓展出新的功能,提供代码复用性

        多态:同一个行为的不同表现形式,同一个接口,使用的实例不同,执行不同的操作

        存在条件:继承,重写,父类引用指向子类对象

        方法重载:编译时的多态性,方法重写:运行时的多态性

        实现多态:

        1.方法重写,子类重写父类已有的或抽象的方法

        2.对象造型,用父类引用子类对象,调用同样的方法就会根据子类对象不同而表现出不同的行为。

3.java的权限修饰符

        四种:public,protected,default,private

        加在哪些地方:类,方法,成员变量

        特点:

        public:公共的,任意位置都能访问

        protected:当前类、同一个包下、子类都能访问,其他包不能访问

        default:当前类,同一个包下可访问,其他包和子类不能访问

        private:私有的,只能在当前类访问

4.什么是重写和重载

        重写:发生在父子类中,方法名,参数列表必须相同

        重载:发生在同一类中,方法名必须相同,参数类型不同,个数不同,顺序不同,返回值和修饰符可以不同

5.final关键字能加在哪些地方

        属性:属性不可变

        方法:方法不可变

        类:不可以被继承

        数据:一个数据只能进行一次赋值操作,不能修改

6.static关键字能加在哪些地方,分别代表什么

        成员变量:变成静态变量,该类的所有实例都将共享此变量

        方法:静态方法,类加载后,可直接调用,不用实例化

        代码块:类加载是会执行代码块

7.接口中可以有哪些成员,接口和抽象类有什么区别

        接口:

                接口类中,成员变量必须是常量,也就是final修饰的

                接口中的默认方法都是public abstract 抽象的

        抽象类:

               和普通类一样,多了个抽象方法

        区别:

                1.接口中不可以定义构造器;抽象类可以

                2.接口中方法全部是抽象方法;抽象类可以有抽象方法和具体方法

                3.接口中的成员都是public的;抽象类任意一种都可以

                4.接口中的成员变量被final修饰,都是常量;抽象类可以定义成员变量

                5.接口中不能有静态方法;抽象类可以有

                6.一个类可以实现多个接口;一个类只能继承一个抽象类

8.java中的异常体系是什么?运行时异常和编译异常有什么区别

        异常体系:

                throwable类是所有异常和错误的父类

                两个直接子类分别是error和exception,表示错误和异常

                异常类exception又分为运行时异常和编译时异常

                错误:运行中程序出现了无法处理的错误

        运行时异常和编译时异常的区别:

                异常:程序本身可以捕获处理的异常

                运行时异常:属于不可查异常,在程序处理中可以选择处理也可以不处理

                编译时异常:编译时必须处理,不然编译不通过,可以捕获可以抛出 

     常见的运行时异常有:NUllPointerException(空指针异常)、ClassNotFoundException(类         不存在)、ArrayIndexOutOfBoundsException(数组下标越界)、NoSuchMethodError(方         法不存在)、IndexOutOfBoundsException(索引越界异常)、NumberFormatException(数据转换异常)、SQLException(sql语句执行异常)、ClassCastException(类转换异常)

9.==和equals的区别

        ==:

                是运算符,比较基本类型,比较值是否相等;比较引用类型,比较对象的地址值

        equals:

                是方法,用来比较两个对象的内容是否相等;不能用于基本数据类型的变量,如果没有重写该方法,比较的变量指向对象的地址值

10.&与&&、|与||的区别

        &:左右两边都为true,表达式的值才是true

        &&:如果左边为false,右边会直接短路,不会进行运算,整个表达式就是false

        |:左右两边只要一个为true,整个都为true

        ||:如果左边的为true,右边直接短路,不会进行运算,整个表达式就是true

11.string本身可以改变吗

        不可以

        字符串内部其实就是一个使用final关键字定义的char[]数组,数组长度一旦声明不可改变

         字符串一旦声明则不可改变,变的只是引用变量所指向的对象

12,stringbuffer和stringbuild区别

        stringbuffer是线程安全的,适用于多线程在字符缓冲区进行大量操作

        stringbuild是线程不安全,效率更高,单线程

13.valueof和toString的区别

        toString()返回的是字符串,而valueof()返回的是原始值,没有原始值返回对象本身

        toString:值为空,会抛出空指针异常

        valueof:会对转换对象进行非空判断,null则返回null,不抛出异常

14.使用+号拼接效率高吗

        不高   

        大量字符用+号进行拼接,每次拼接都会创建一个Stringbuilder对象,时间空间开销太大

        可以使用stringbuilder中的append方法代替,append方法其实是创建了一个新的数组,将添加字符串给复制到新的数组中

15.创建一个类的实例有哪些方法

        1.new关键字。工厂模式是对这种方式的包装

        2.类实现克隆接口,克隆实例

        3.用类的加载器,newinsatnce

        4.sun.misc.unsafe类,allocateInsatance

        5.实现序列化接口的类,通过io流反序列化读取一个类,获得实例

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值