栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

总结 背 面试题(第二天)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

总结 背 面试题(第二天)

1.jdk和jre的区别
           jdk是开发工具包,jdk包含java源码和编译器javac,
           内部包含开发和运行环境
   
           jre是运行工具包,为java提供运行环境,编写需要j
           dk,运行只需要个jre就行
    
2.==和equals的区别
   ==            作用域基本类型和引用类型是不一样的,
                 基本类型比较的是值,引用类型比较的是地址
   equals        在引用类型中若是没有重写Object类时,则默认使用Object类的equals方法,则仍然
                 利用“==”比较两个对象的内存地址,若是重写Object类的equals方法,则调用子类重写后
                 的方法可以进行内容或值的比较
                 equals内部使用的也是==
                 
3.final的作用(和finallyde1区别)
    final修饰的方法不能被重写,修饰的类不能被继承,修饰的变量叫常量。不能被修改
         修饰的类为最终类,不能被继承
    final的好处是提高了性能,在多线程中可以安全的实现共享
    
    finally:是在异常处理中的捕获异常中使用的,往往写在catch之后
            finally在异常中往往是关闭物理资源的,如果没有可以不写
            
4.String是基本类型吗
    不是,String是引用类型,是个对象
5.对象的特征有哪些
    封装:将事务的属性和功能隐藏起来,只保留特定的方法与外界练习
    继承:子类使用父类的属性和方法
    多态:同一个函数名,引用不同的对象,所表达的内容不同,输出结果不同,父类引用指向不同的子类
          输出结果不同
6.什么是异常
    异常:异常就是程序遇到了问题,然后跳出当前程序,然后抛出提醒
    
    编译期异常:在编译期间的异常,必须要进行处理,需要使用try-catch捕获
    运行期异常:在运行是的异常,一般不用处理。直接抛出
    
    捕获异常:在方法中进行捕获,此异常必须进行处理
    抛出异常:直接抛给方法,对此异常不进行处理
    
    throw:在方法中,是一定会出现的异常,其后只能定义一个异常
    throws:在方法名之后,是可能出现的异常,以后可以定义多个异常
7.什么是乐观锁和悲观锁
    悲观锁:为了数据的安全, 会进行锁定,只允许一个线程调用,而阻塞其他线程,先锁定在修改,多写少读
    乐观锁:本质是无锁的,多个线程同时操作数据,但只有一个能成功操作
    
    cas:
8.死锁和活锁的区别
    死锁:一直处在等待状态,线程之间相互占用着其他线程的资源,形成的阻塞状态
    活锁:没有阻塞状态,但由于一些原因无法完成,从而一直重复的运行
9.什么是串行,并行,并发,分布式
    串行:在同时要执行两个线程时,当一个线程执行时,要等这个线程执行完毕后,才能执行第二个线程
    并行:多个线程在多个cpu上执行时,可同时执行,但当线程数大于cpu时,使用串行
    并发:一个cpu执行多个线程,每个线程执行固定的时间,从而实现宏观上的同时执行,通过穿插执行的
          串行并发:一个cpu并发多个线程
          并行并发:多个cpu并发多个线程
    分布式:实际就是将一个系统分成几个系统,然后分成的系统之间还相互联系
    多线程:多个线程能同时运行
    高并发:高并发就是在一定时间内大量的请求访问
10.说说内部类是什么
    内部类:在一个类中定义一个类那么这个类就是内部类
    内部类分为:
           成员内部类:定义在成员的内部类,往往是在成员变量的位置
                       可以引用外部类的方法和变量
                       使用场景:A需要引用B,B同时需要引用A
           静态内部类:定义的和成员内部类差不多,在成员内部类钱加静态static
                       不能直接访问外部类的方法和变量,需要使用new对象,否则只能引用外部类中的                            静态
                       方法和变量
                       使用场景:A需要引用B,而B不需要引用外部类A
           局部内部类:局部内部类定义在外部类的方法中只能在方法中使用
                       使用场景:只在方法中使用,一次性的
           匿名内部类:不需要添加类名class,往往与匿名对象使用
                       往往使用的是继承其他类或实现接口,不能有构造方法,而且参数要使用final
                       使用场景:需要实现接口单不需要他的引用
11.this和super的区别:

          this:可以引用自己本身类中的数据和方法,也可以引用父类中数据和方法,但不能引用父                     类中的构造方法。

          super:可以在子类中引用父类数据,方法,构造方法,不能引用本子类的。
12.什么是流,包含什么

           流:流是个抽象概念,数据的输入和输出就是流

           流可以分成两大类:字符类和字节流,字节流包括字节输入流和字节输出流,字符流包括                                                字节字符输出流和字节输入流

           字节流和字符流的区别:

                                           字节流:以一个字节进行传输,可以对所有数据进行传输

                                           字符流:按两个字节进行传输,只能以二进制的方式传输

           序列化和反序列化:

                                           序列化:将java对象转化成二进制的形式

                                           反序列化:将二进制的形式转化会java对象
13.什么是ioc,使用的是什么容器

          ioc:控制反转,表示的是对象的创建和管理都要交给spring容器来管理,其实ioc只是一种                      理念,真正实现ioc的其实是依赖注入di。

         java容器:java容器其实就是一个程序,管理着对象和对象之间的联系,控制着对象的生命                              周期。

         java容器类:list,arraylist,hash,hashmap,map。。。。。
14.数据库连接池的理解

          数据库连接池:数据库连接池就是,在程序初始化后,创建多个对象链接数据库,使用时引                                     用,不使用时放入到池中。
          线程池:池都是一样的概念,创建多个线程到内存中,使用时引用,不使用时放在池中。

          使用池的好处:节约了资源,不用每次使用都创建,提高了效率
15.springmvc的工作流程

       1.客户向前端控制器发送请求,前端控制器接收请求

       2.前端控制器使用url访问处理器映射器,处理映射器将查询的数据返回给前端控制器

       3.前端控制器将数据再交给处理器适配器,处理器将数据和视图返还给前端控制器

       4.前端控制器将视图交给视图解析器,然后解析完返还给前端控制器

       5.前端控制器在吧视图交给视图渲染后,返还给客户
16.事务的四大特性

       原子性:就是操作要么全部完成,要么全部失败

       一致性:数据修改完成后,数据发生了改变,但数据本质是不变的

       隔离性:数据在修改时,数据是相互隔离不受影响的

       持久性:数据修改成功后,数据就永久修改了
 什么是回滚

        回滚:返回到事务开始的数据

        回滚点(savepoint):返回到自己设定的点上
 什么是脏读,什么是幻读,什么是不可重复读

         脏读:一个事务在读取数据时,读取到的数据是其他事务回滚前的脏数据

         幻读:一个事务在查询完数据后,另一个事务添加了一事务的数据,从而使一数据第二次查                      询比第一次查询的数据多了

         不可重复读:一个事务第一次读的数据和第二次读的数据不同(被第二个事务修改了)
17.二十四种设计模式

         (理解不了,跳过)
           https://blog.csdn.net/weixin_46460843/article/details/118740236

18.常见的数据类型:

       栈:遵循的是先进后出的原则,当数据进入后会被放入底部,在进行添加和删除是只能从一                  端开始,不能从中间进行

       队列:遵循的是先进先出的原则,当数据进入后会被放在顶部,和栈一样是只能在一段进行                      增加和删除

       数组:在内存开辟一部分空间,用来存储元素,对数据的查找通过下标来查找,特点是查找

                  快,增删慢

       链条:是由一系列的节点(元素)组成,节点包含两大部分,数据域和指针域,链条的特点

                  是查找缓慢,增删快

       红黑树:红黑树本质就是二叉查找树,和二叉查找树的区别就是不会出现由于数据较小,从                          而形成链条

19.什么是向上转型和向下转型

        属于多态的范畴

        向上转型:就是把自己子类看成父类,进行继承后发生重写,重写的数据输出,其他数据输                              出还是父类的数据

        向下转型:就是指向子类,在发生向上转型后,子类还向引用自己的方法,那么就会使用向                              下转型

20.string和stringbuilder

        string:string的长度是固定的,每次拼接都会生成新的对象,拼接效率缓慢,对字符串操作                         方便

       stringbuilder:stringbuilder的长度默认是16,在超出是会进行扩容,所以stringbuilder拼接不                                用创建新的对象,一直是同一个,拼接效率快,但对字符串操作不方便

21.抽象类和接口的区别

       抽象类通过abstart创建,而接口通过interface创建

       抽象类使用extends继承,接口时通过inplanents继承

       抽象类能创建main方法,接口不能

       抽象类能有构造方法,接口不能

        抽象类中中可以有抽象方法还可以有普通方法,接口中只能有抽象方法

22.什么是泛型:

        泛型:简单的来说就是参数化类型,把他看作是一个参数,可以被不同的类型重用

        泛型通配符:在接收时,无法确定数据的数据类型,可以使用?,?就是通配符

        泛型通配符的上下限:

                          泛型的上限:就是父类及其子类的类型,extends

                          泛型的下限:自己及其父类的类型:super

 

       

     

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/329059.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号