-
自我介绍
-
equal和==的区别
如果=比较的是基本数据类型,那么比较的是两个基本数据类型的值是否相等
如果=是比较的两个对像,那么比较的是两个对像的引用,也就是判断两个对像是否指
向了同一块内存区域:equals方法主要用于两个对象之间,检测一个对象是否等于另一个对象
public boolean equals(object obj){ return (this =obj); }
情况1,类没有覆盖equals(O方法。则通过equals(比较该类的两个对象时,等价于通
过“=="比较这两个对象。
情况2,类覆盖了equals(0方法。一般,我们都覆盖equals(0方法来两个对象的内容相等;
若它们的内容相等,则返回true(即,认为这两个对象相等)。例如String 类重写 equals() 方 法,所以可以用于两个不同对象,但是包含的字母相同的比较。 -
springboot启动项注释有什么用?
@SpringBootApplication注解源码包含三个注解:
@SpringBootConfiguration 实际上就是一个 @Configuration 注解。加上这个注解就是为了让当前类作为一个配置类交由 Spring 的 IOC 容器进行管理。
@ComponentScan 用于定义 Spring 的扫描路径。
@EnableAutoConfiguration
**@AutoConfigurationPackage ** 也就是说当SpringBoot应用启动时默认会将启动类所在的package作为自动配置的package。
@Import
AutoConfigurationImportSelector
AutoConfigurationImportSelector`类必定实现了`selectImports()
SpringFactoriesLoader
的loadFactoryNames()
方法从所有的spring.factories文件中获取需要配置的bean全限定名列表。springboot的自动装配实际上就是为了从spring.factories文件中获取到对应的需要进行自动装配的类,并生成相应的Bean对象,然后将它们交给spring容器来帮我们进行管理。
Spring Boot里面的这些特性,都是为了让开发者在开发基于Spring生态下的企业级应用
时,只需要关心业务逻辑,减少对配置和外部环境的依赖。 -
springboot有什么优势
一、独立运行 Spring Boot而且内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器 中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。
二、简化配置 spring-boot-starter-web启动器自动依赖其他组件,简少了maven的配置。 三、自动配置 Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starterweb启动器就能拥有web的功能,无需其他配置。
-
string、stringBuffer、stringBuilder 的区别
第一个,可变性。
String内部的value值是final修饰的,所以它是不可变类。所以每次修改String的值,都会
产生一个新的对象。第二个,线程安全性。
String是不可变类,所以它是线程安全的。
StringBuffer是线程安全的,因为它每个操作方法都加了synchronized同步关键字。
String Builder不是线程安全的,所以在多线程环境下对字符串进行操作,应该使用
StringBuffer,否则使用String Builder
第三个,性能方面。
Stringl的性能是最的低的,因为不可变意味着在做字符串拼接和修改的时候,需要重新创
建新的对象以及分配内存。
其次是String Buffer要比String性能高,因为它的可变性使得字符串可以直接被修改最后
是StringBuilder,它比StringBuffert的性能高,因为StringBuffer加了同步锁。
第四个,存储方面。
String存储在字符串常量池里面
String Buffe和String Builder存储在堆内存空间,
以上就是我对这个问题的理解!
最后再补充一下,StringBuilder和StringBuffer都是派生自AbstractString Builder这个抽象类。 -
在实习的时候使用的框架是springboot,讲讲spring中的bean对象的生成以及相应的生命周期
(1)实例化Bean: 对于BeanFactory容器,当客户向容器请求一个尚未初始化的bean时,或初始化bean的时候需要注 入另一个尚未初始化的依赖时,容器就会调用createBean进行实例化。对于ApplicationContext容 器,当容器启动结束后,通过获取BeanDefinition对象中的信息,实例化所有的bean。
(2)设置对象属性(依赖注入): 实例化后的对象被封装在BeanWrapper对象中,紧接着,Spring根据BeanDefinition中的信息 以 及 通过BeanWrapper提供的设置属性的接口完成依赖注入。
(3)处理Aware接口: 接着,Spring会检测该对象是否实现了xxxAware接口,并将相关的xxxAware实例注入给Bean: ①如果这个Bean已经实现了BeanNameAware接口,会调用它实现的setBeanName(String beanId)方法,此处传递的就是Spring配置文件中Bean的id值; ②如果这个Bean已经实现了BeanFactoryAware接口,会调用它实现的setBeanFactory()方法,传 递的是Spring工厂自身。 ③如果这个Bean已经实现了ApplicationContextAware接口,会调用 setApplicationContext(ApplicationContext)方法,传入Spring上下文;
(4)BeanPostProcessor: 如果想对Bean进行一些自定义的处理,那么可以让Bean实现了BeanPostProcessor接口,那将会 调用postProcessBeforeInitialization(Object obj, String s)方法。
(5)InitializingBean 与 init-method: 如果Bean在Spring配置文件中配置了 init-method 属性,则会自动调用其配置的初始化方法。
(6)如果这个Bean实现了BeanPostProcessor接口,将会调用 postProcessAfterInitialization(Object obj, String s)方法;由于这个方法是在Bean初始化结束时调 用的,所以可以被应用于内存或缓存技术; 以上几个步骤完成后,Bean就已经被正确创建了,之后就可以使用这个Bean了。
(7)DisposableBean: 当Bean不再需要时,会经过清理阶段,如果Bean实现了DisposableBean这个接口,会调用其实现 的destroy()方法;
(8)destroy-method: 最后,如果这个Bean的Spring配置中配置了destroy-method属性,会自动调用其配置的销毁方 法
-
数据库的索引失效
讲讲反射机制
反射机制中实际调用的方法(我没太答上来)
MyBaits中#和$的区别
6.安装过mysql吗
讲讲sql注入
如何防止sql注入
1.Java的特性,多态实现的方法,读锁和写锁
2.JDBC具体如何实现的,讲出详细的步骤
3.数据库的基本查询语句,一些关键字的含义,给出具体的例子,让写出相应的数据库语言讲讲反射机制
反射机制中实际调用的方法(我没太答上来)
MyBaits中#和$的区别
讲讲sql注入
如何防止sql注入
* string stringbuffer stringbuilder
* hashtable hashmap
* 创建对象方法
* sql注入及预防
* 写一种排序算法
1.说一下自己一段学习经历
2.spribgcloud的结构
3.服务如何注册到注册中心
4.java枚举和for循环遍历的区别
5.spring中AOP理解
hashmap hashtable区别
事务隔离级别
Object类有哪些方法
项目相关问题
手撕浮点数相加 BigDecimal
1.65535是什么数字
2.常用数据类型,以及占用空间
3.TRUNCATE和delete区别
4.项目
5.redis默认端口号
6.如何搭建mysql
7.手撕代码:约瑟环
8.ddl,dml,dcl定义1.自我介绍
2.JVM调优参数
3.如何解决OOM问题
4.过滤器、拦截器、AOP的执行顺序Java创建对象的方式?简单聊聊GC?简单聊聊AOP
八股 常用的集合, 问的有点跳跃,下一个就问微服务的ribbon知道吗, 和feigh什么关系
2.链表和数组的区别、优缺点、应用场景
3.两个栈实现队列
4.计算机网络
5.过拟合及解决办法
1.风险控制的核心是政府监管/制度创新
2.金融业务推广系统重要/技术重要
3.金融风险防控政策重要/制度重要
4.金融行业精神文化重要/技术创新重要
5.人才和制度哪个更重要
6.技术创新/模式变革哪个更重要
7.数字人民币(虚拟货币)对传统金融行业的正面影响/负面影响
做题 字符串中的单词反转