半年前,我还在迷茫到底该学什么,如何走出现在的困境。时隔半年,成功登陆阿里。感谢这段时间所有帮助过我的人。面试中总结了1000道经典的Java面试题,里面包含了面试中要回答的知识点,并且我按照知识的类型进行了分类,可以说是非常全面了~由于篇幅文章全文,下方只展示了部分题目内容,要求完整的文档朋友,点赞后点击【点此】免费领取!基础知识1.Java语言的特点是什么1.简单易学,类库丰富2.面向对象(Java最重要的特点,使程序耦合度低,内聚性强)3.平台无关(JVM是Java跨平台使用的基础)4.可靠安全5.支持多线程2.面向对象和面向过程的区别大家在使用的时候可以一一调用。性能要求高,所以单片机、嵌入式开发等一般采用面向过程开发和面向对象:就是把构成问题的事务分解成各种对象,建立对象的目的不是完成每个步骤,而是描述在解决问题的过程中发生的某些行为。面向对象具有封装、继承、多态的特点,因此易于维护、复用和扩展。可以设计低耦合的系统。但是在性能上,它低于面向过程的。JVM那篇文章讲了堆和栈的区别。栈是表示逻辑的运行时单元,包含堆中的基本数据类型和对象引用,位于一个连续的区域,没有碎片;heap是一个表示数据的存储单元,可以被多个Stack共享(包括基本数据类型、成员中的引用和引用对象),这里的区域不连续,就会有碎片。1.功能不同栈内存用于存放局部变量和方法调用,而堆内存用于存放Java中的对象。无论是成员变量,局部变量,还是类变量,它们指向的对象都存放在堆内存中。2.分享不同。栈内存是线程私有的。堆内存由所有线程共享。3.不同的异常错误。如果栈内存或堆内存不足,就会抛出异常。堆栈空间不足:java.lang.StackOverFlowError。堆空间不足:java.lang.OutOfMemoryError。4、空间大小栈的空间大小比Spring堆小很多1.什么是spring?Spring是一个用于Java企业应用程序的开源开发框架。Spring主要用于开发Java应用程序,但也有一些扩展是针对在J2EE平台上构建Web应用程序。SpringFramework的目标是通过基于POJO的编程模型简化Java企业应用程序开发并促进良好的编程习惯。2、为什么在项目中使用Spring框架?如果你问这个问题,就说说Spring框架的好处吧。比如Spring有以下特点:轻量级:Spring是轻量级的,基础版2MB左右。控制反转:Spring通过控制反转实现松散耦合,对象给出自己的依赖关系,而不是创建或寻找依赖对象。面向切面编程(AOP):Spring支持面向切面编程,将应用业务逻辑与系统服务分离。容器:Spring包含并管理应用程序中对象的生命周期和配置。MVC框架:Spring的WEB框架是一个设计良好的框架,是Web框架很好的替代品。事务管理:Spring提供了一个持续的事务管理接口,可以从本地事务扩展到全局事务(JTA)异常处理:Spring提供了一个方便的API来处理特定技术相关的异常(比如JDBC、Hibernate抛出的异常)变成一致的unchecked例外。MyBatis篇SpringBoot篇MySQL篇说说InnoDB和MyISAM的区别InnoDB支持事务,MyISAM不支持。对于InnoDB,每一种SQL语言默认都封装成一个事务,自动提交。这样会影响速度,所以最好把多个SQL语言放在begin和commit之间,形成一个事务;InnoDB支持外键,但MyISAM不支持。将包含外键的InnoDB表转换为MYISAM将失败;InnoDB是聚簇索引,数据文件与索引绑定。必须有主键,主键索引的效率很高。但是,辅助索引需要两次查询。首先查询主键,然后通过主键查询数据。所以主键不宜太大,因为如果主键太大,其他索引也会很大。而MyISAM是非聚集索引,数据文件是分离的,索引存放的是数据文件的指针。主键索引和二级索引是独立的。InnoDB不保存表的具体行数,执行selectcount(*)fromtable时需要全表扫描。但是,MyISAM使用一个变量来保存整个表的行数。执行上述语句时,只需要读取变量即可,速度非常快;Innodb不支持全文索引,而MyISAM支持全文索引,MyISAM查询效率更高;SpringCloud为什么Redis单线程模型效率这么高?C语言实现,效率高,基于非阻塞IO多路复用模型机制的纯内存操作,单线程,可以避免多线程频繁的上下文切换问题丰富的数据结构(全称采用hash结构,读取速度非常快,不错对于数据存储做了一些优化,比如亚索表、跳表等)部分内容展示
