java基础面试题总结

1.sleep() 和 wait() 有什么区别?

        sleep():是线程类的静态方法,让调用线程进入睡眠状态,让出执行机会给其他线程,等到休眠时间结束后,线程进入就绪状态和其它线程一起竞争cpu的执行时间。

        wait():方法是Object类的方法,当一个线程执行到wait方法时,它就进入到一个和该对象相关的等待池,同时释放对象的锁,使得其他线程能够访问

2.线程的 run()和 start()有什么区别?

        start()方法来启动一个线程,真正实现了一个多线程的运行

        run()方法是在本线程里的,只是线程里的一个函数,而不是多线程

        每个线程都是通过某个特定Thread对象所对应的方法run()来完成其操作的,方run()称为线程体,通过调用Thread类的start()方法来启动一个线程

3.如何将字符串反转

        ①,使用StringBuilder或StringBuffer的reverse方法,本质都调用了他们的父类

        ②,递归

4.什么是反射,有什么作用?

        就是在运行状态中:

                获取任意名称,package信息,所有属性,方法,注解,类型。

                获取任意对象的属性,并且能改变对象的属性

                调用任意对象的方法

                判断任意对象所属的类

5,重载和重写有什么区别

        ①,作用范围:重写的作用范围是父类和子类之间;重写是发生在一个类里面

        ②,参数列表:重载必须不同,重写不能修改

        ③,返回类型:重载可修改,重写方法返回相同类型或子类

        ④,抛出异常:重载可修改,重写一定不能抛出比父类更广的异常

        ⑤,访问权限:重载可修改,重写一定不能做更为严格的限制

6,简单工厂和抽象工厂有什么区别?

        简单工厂模式:是由一个工厂对象创建产品实例,简单工厂模式的工厂类一般是使用静态方法,通过不同的参数创建不同的实例对象实例;可以生产结构中的任意产品,不能增加新的产品

        抽象工厂模式:提供一个创建一系列相关或相互依赖对象的接口,而无需指定他们的具体类,生产多个系列产品;生产不同产品的全部产品,不能新增产品,可以新增产品族 

   

7.java常见的算法

        ①,冒泡排序算法

        ②,选择排序算法

        ③,插入排序算法

        ④,快速排序算法

        ⑤,堆排序:是借助对来实现的选择排序,思想同简单的选择排序

8,throw和throws的区别?

        throw:表示方法内抛出某种异常对象

                    用于程序员自行抛出异常

                    位于方法体内部,可以作为单独语句使用

        throws:方法的定义上使用throws表示这个方法可能抛出某些异常

                       用于声明该方法内抛出了异常

                        必须跟在方法内抛出异常

9,什么是动态代理?应用场景?

        动态代理:在运行时,创建目标类,可以调用和扩展目标类的方法 

        应用场景:

                ①统计每个api的请求耗时

                ②统一的日志输出

                ③校验被调用的api是否已经登录和权限鉴定

                ④Spring的AOP功能模块就是采用动态代理的机制来实现切面编程

10,java跨平台原理

        ①.java源文件要先编译成与操作系统无关的.class字节码文件,然后字节码文件再通过java虚拟机解释成机器码运行

11,什么是java的垃圾回收机制

        java语言不需要程序员直接控制内存回收,由JVM再后台自动回收不再使用的内存

        

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员慕慕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值