作为一个从事Java开发的应届生的面试总结(一)

作为一个刚毕业的应届生,在杭州做过4个月左右的实习生,然后来到无锡发展,现在总结一些我面试的时候遇到的一些问题。

首先,自我介绍这是必须的,其次让介绍简历上写的项目或者就职业技能询问(看面试官的要求),然后就开始面试(一般是人事,然后是技术面试),最后一般会问你有什么想要了解的吗?(可以问工作地点、时间、内容、几个人开发、公司的项目情况,薪资待遇一般都是和人事谈的)。

1.mybatis中resultType和resultMap的区别

select有两个属性resulttype(适合使用返回值得数据类型是非自定义的,即jdk的提供的类型),SQL语句查询出的字段在相应的pojo(Java对象)中有相同字段对应,而resulttype的内容就是pojo在本项目中的位置,适合于单表查询;resultmap(适合使用返回值是自定义实体类),要在mapper.xml中定义resultmap进行pojo和相关字段的对应,一对一使用associate进行配置,一对多使用collection进行配置

2.hashTable和hashSet、hashMap的区别

hashTable:同步的,继承dictionary,实现map接口,初始容量为11,扩充*2+1

hashSet:不允许重复,存储对象,使用add添加,实现set接口

hashMap:不同步,允许一个空键,多个空值,继承abstractMap,不允许重复,使用put添加,实现map接口,比较快,初始容量为16,扩充*2

3.spring和spring boot配置事务

在spring配置文件中首先配置事务管理器,然后配置事务传播特性最后配置类中方法使用事务

 
    
        
    

 
    
        
            
            
            
            
        
    

    
    
        
    

spring boot 配置事务一:xml配置

使用@ImportResource("classpath:transaction.xml") 注解引入配置文件,编写transaction.xml配置文件,然后在启动类上添加@ImportResource("classpath:transaction.xml")注解

spring boot 配置事务二:注解配置

在进行事物管理的方法上添加注解@Transactional

4.resource和autowired区别

resource和autowried都是做bean的注入时使用

共同点:两者都可以写在字段和setter方法上。如果写在字段上,就不需要再写setter方法。

不同点:@Autowired是Spring提供的注解,需要导入包org.springframework.beans.factory.annotation.Autowired;只按照类型byType注入,默认依赖对象必须存在;允许为空,设置required属性为false;若想要按照名称注入,与@Qualifier注解一起使用。@Resource默认按照ByName自动注入,需要导入包javax.annotation.Resource;使用name属性,则使用byName的自动注入策略,而使用type属性时则使用byType自动注入策略。

5.mybatis批量添加

使用forearm循环插入,属性collection为列表



    INSERT INTO lp_user_test_batch
    (
    id,
    uid,
    uname,
    uage
    )
    VALUES
    
        (
        #{item.id,jdbcType=BIGINT},
        #{item.uId,jdbcType=VARCHAR},
        #{item.uName,jdbcType=VARCHAR},
        #{item.uAge,jdbcType=INTEGER}
        )
    

6.MySQL中concat函数和group_concat函数

一般输出连接字符串首先想到的是查询出两条记录然后使用string的方法拼接字符串,MySQL中有相应的函数处理连接字符串。

concat函数:连接字符串(有一个参数为null,返回值为null)

 select concat('1','2','3')结果为“123”      select concat('11','22',null)结果为null

group_concat函数:将group_by产生的同一分组中的值连接起来,返回一个字符串

语法:group_concat(要连接的字段,【排序字段】,【separator】分隔符默认为逗号)

基本查询
mysql> select * from a;
+------+------+
| id| name |
+------+------+
|1 | 10|
|1 | 20|
|1 | 20|
|2 | 20|
|3 | 200   |
|3 | 500   |
+------+------+
6 rows in set (0.00 sec)
以id分组,把name字段的值打印在一行,分号分隔
mysql> select id,group_concat(name separator ';') from a group by id;
+------+----------------------------------+
| id| group_concat(name separator ';') |
+------+----------------------------------+
|1 | 10;20;20 |
|2 | 20|
|3 | 200;500   |
+------+----------------------------------+
3 rows in set (0.00 sec)
以id分组,把去冗余的name字段的值打印在一行,逗号分隔,以name排倒序
mysql> select id,group_concat(distinct name order by name desc) from aa group by id;
+------+---------------------------------------+
| id| group_concat(name order by name desc) |
+------+---------------------------------------+
|1 | 20,10   |
|2 | 20|
|3 | 500,200|
+------+---------------------------------------+
3 rows in set (0.00 sec)

 

你可能感兴趣的:(作为一个从事Java开发的应届生的面试总结(一))