阿里java面试题都考些什么

6 篇文章 0 订阅

AOP与IOC的概念(即spring的核心)

a)IOC:Spring是开源框架,使用框架可以使我们减少工作量,提高工作效率并且它是分层结构,即相对应的层处理对应的业务逻辑,减少代码的耦合度。而spring的核心是IOC控制反转和AOP面向切面编程。IOC控制反转主要强调的是程序之间的关系是由容器控制的,容器控制对象,控制了对外部资源的获取。而反转即为,在传统的编程中都是由我们创建对象获取依赖对象,而在IOC中是容器帮我们创建对象并注入依赖对象,正是容器帮我们查找和注入对象,对象是被获取,所以叫反转。

b)AOP:面向切面编程,主要是管理系统层的业务,比如日志,权限,事物等。AOP是将封装好的对象剖开,找出其中对多个对象产生影响的公共行为,并将其封装为一个可重用的模块,这个模块被命名为切面(aspect),切面将那些与业务逻辑无关,却被业务模块共同调用的逻辑提取并封装起来,减少了系统中的重复代码,降低了模块间的耦合度,同时提高了系统的可维护性。


最近整理了一份覆盖一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!

 

想要领取这份PDF的伙伴 +V:BGM7756  回复【CSDN】即可免费领取PDF资料

hibernate的核心思想。

a)Hibernate的核心思想是ROM对象关系映射机制。它是将表与表之间的操作映射成对象与对象之间的操作。也就是从数据库中提取的信息会自动按照你设置的映射要求封装成特定的对象。所以hibernate就是通过将数据表实体类的映射,使得对对象的修改对应数据行的修改。

Struts1与Struts2的区别。

15、最优删除某字符串的某个字符。

16-17、Arraylist与linkedlist的区别

a)都是实现list接口的列表,arraylist是基于数组的数据结构,linkedlist是基于链表的数据结构,当获取特定元素时,ArrayList效率比较快,它通过数组下标即可获取,而linkedlist则需要移动指针。当存储元素与删除元素时linkedlist效率较快,只需要将指针移动指定位置增加或者删除即可,而arraylist需要移动数据。

数据库优化

a)选择合适的字段,比如邮箱字段可以设为char(6),尽量把字段设置为notnull,这样查询的时候数据库就不需要比较null值

b)使用关联查询(leftjoinon)查询代替子查询。

c)使用union联合查询手动创建临时表。

d)开启事物,当数据库执行多条语句出现错误时,事物会回滚,可以维护数据库的完整性。

e)使用外键,事物可以维护数据的完整性但是它却不能保证数据的关联性,使用外键可以保证数据的关联性。

f)使用索引,索引是提高数据库性能的常用方法,它可以令数据库服务器以比没有索引快的多的速度检索特定的行,特别是对于max,min,orderby查询时,效果更明显。

g)优化的查询语句,绝大多数情况下,使用索引可以提高查询的速度,但如果sql语句使用不恰当的话,索引无法发挥它的特性。

Tomcat服务器优化(内存,并发连接数,缓存)

a)内存优化:主要是对Tomcat启动参数进行优化,我们可以在Tomcat启动脚本中修改它的最大内存数等等。

b)线程数优化:Tomcat的并发连接参数,主要在Tomcat配置文件中server.xml中配置,比如修改最小空闲连接线程数,用于提高系统处理性能等等。

c)优化缓存:打开压缩功能,修改参数,比如压缩的输出内容大小默认为2KB,可以适当的修改。

HTTP协议。

a)常用的请求方法有get、post。

b)Get与post的区别:传送数据,get携带参数与访问地址传送,用户可以看见,这的话信息会不安全,导致信息泄露。而post则将字段与对应值封装在实体中传送,这个过程用户是不可见的。Get传递参数有限制,而post无限制。

Java集合类框架的基本接口有哪些?

a)Collection集合接口,List、set实现Collection接口,arraylist、linkedlist,vector实现list接口,stack继承vector,Map接口,hashtable、hashmap实现map接口。

类加载的过程。

a)遇到一个新的类时,首先会到方法区去找class文件,如果没有找到就会去硬盘中找class文件,找到后会返回,将class文件加载到方法区中,在类加载的时候,静态成员变量会被分配到方法区的静态区域,非静态成员变量分配到非静态区域,然后开始给静态成员变量初始化,赋默认值,赋完默认值后,会根据静态成员变量书写的位置赋显示值,然后执行静态代码。当所有的静态代码执行完,类加载才算完成。

对象的创建

a)遇到一个新类时,会进行类的加载,定位到class文件。

b)对所有静态成员变量初始化,静态代码块也会执行,而且只在类加载的时候执行一次。

c)New对象时,jvm会在堆中分配一个足够大的存储空间。

d)存储空间清空,为所有的变量赋默认值,所有的对象引用赋值为null。

e)根据书写的位置给字段一些初始化操作。

f)调用构造器方法(没有继承)

jvm的优化

a)设置参数,设置jvm的最大内存数

b)垃圾回收器的选择


最近整理了一份覆盖一线大厂Java面试题总结+各知识点学习思维导+一份300页pdf文档的Java核心知识点总结!

 

想要领取这份PDF的伙伴 +V:BGM7756  回复【CSDN】即可免费领取PDF资料

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值