1 Integer int相等问题
Integer对象和int比较的时候会有一个拆箱的过程,始终相等
Integer和new Integer对象不会相等,引用不同
两个Integer对象比较,Integer ii=3,等同于Integer ii=Integer.valueof(3);当值在-128-127之间从cache中取回引用,其他的new,所以在区间内的对象相等,值相等
Integer.equals是比较intvalue()
String.equals也是比较内容是否相同
StringBuffer类中没有重新定义equals这个方法,因此这个方法就来自Object类,而Object类中的equals方法是用来比较“地址”的
 
2 HashMap工作原理
负载因子 0.75,自动resize参考
选择常量作为键值,这也是选择String的原因
数据存放在Entry[]自定义数组里,Entry实现了链表功能,也就是bucket(key,value,next(key,value))
 
 
Vector 和ArrayList
vector线程安全的,其他都和ArrayList一样
 
 
ArrayList和CopyOnWriteArrayList 
HashMap和ConcurrentHashMap
itorator遍历增删改 ,前者都是fail-fast,有增减元素时候触发,因为后者 Iterator重新实现了,不会checkForComodification
 
 
5 ThreadLocal
线程隔离的秘密,就在于ThreadLocalMap这个类。ThreadLocalMap是ThreadLocal类的一个静态内部类, 每个线程中都有一个独立的ThreadLocalMap副本,它所存储的值,只能被当前线程读取和修改
 
6 handlermapping放的什么
 
7事务嵌套
 
8 mybatis原理
     连接池
     当我们需要创建SqlSession对象并需要执行SQL语句时,这时候MyBatis才会去调用dataSource对象来创建java.sql.Connection对象
     MyBatis将连接池中的PooledConnection分为两种状态: 空闲状态(idle)和活动状态(active),这两种状态的PooledConnection对象
分别被存储到PoolState容器内的idleConnectionsactiveConnections两个List集合中
     PooledConenction实现了InvocationHandler接口,并且,proxyConnection对象也是根据这个它来生成的代理对象, 我们调用PooledDataSource
的getConnection()方法返回的就是这个proxyConnection对象,当我们调用此proxyConnection对象上的任何方法时,都会调用PooledConnection对象内invoke()方法
 
    Configuration 加载 
     org.apache.ibatis.session.Configuration 对象作为一个所有配置信息的容器,Configuration对象的组织结构和XML配置文件的组织结构几乎完全一样
MyBatis初始化的过程,就是创建 Configuration对象的过程, mybatis的初始化就发生在 SqlSessionFactoryBuilder.builder, 方法中调用了XMLConfigBuilder的parse()方法,然后返回了Configuration对象
 
      MyBatis的事务管理的实现机制
     
       MyBatis的事务管理分为两种形式:
        一、使用JDBC的事务管理机制:即利用java.sql.Connection对象完成对事务的提交(commit())、回滚(rollback())、关闭(close())等               
        二、使用MANAGED的事务管理机制:这种机制MyBatis自身不会去实现事务管理,而是让程序的容器如(JBOSS,Weblogic)来实现对事务的管理 
 
     mybatis框架分为:接口层、数据处理层(框架支撑)
          接口层  MyBatis和数据库的交互有两种方式:
       a.使用传统的MyBatis提供的APISqlSession根据Statement ID, 在mybatis配置对象Configuration中获取到对应的MappedStatement对象,
          然后调用mybatis执行器来执行具体的操作。
        b. 使用Mapper接口,纯粹是为了满足面向接口编程的需要,原理和a一样
          框架支撑  事务管理机制  连接池管理机制 缓存机制
 
 
 
<context:property-placeholder  location="classpath:/config/ibatis/jdbc.properties"/>
 
CountDownLatch用来进行多线程测试
 
redis过期时间设置
hash内部key设置过期时间?
 
Spring MVC的实例化和自动装配工作
     <content:component-scan base-package="" annotation-config="true"/>
     <aop:aspectj-autoproxy />
     系统初始化时,component-scan 扫描(Controller、Service、Repository)后将BeanDefinition实例放入BeanFactory,
同时annotation-config的设置注册AutowiredAnnotationBeanPostProcessor(实例执行了自动装配 )到bean工厂,
Bean实例初始化是在第一次请求Bean实例的时候,spring调用BeanFactory的getBean,Spring会检查确定调用的构造器,并实例化该Bean.
实例化完成后,Spring会调用Bean工厂的populateBean方法, populateBean方法便是调用了BeanPostProcessor实例来完成属性
元素的自动装配工作,来填充bean实例的属性,也就是我们前面提到的自动装配了,Spring会检查被装配的属性是否存在自动装配的
其他属性,然后递归调用getBean方法,直到所有@Autowired的元素都被装配完成
@Autowired是根据类型进行自动装配的。如果当spring上下文中存在不止一个UserDao类型的bean时, 可以使用@Qualifier配合@Autowired来解决这些问题
 
@Aspect
public class aspectAnotationClass{
     @PointCut("execution(* *(..)&&annotation(com...classname))")
     public void gg(){}
 
     @Before("gg()")
     public void beforefun(){}
     @After("gg()")
     public void afterfun(){}
     @Around("gg()")
     public Object aroundfun(ProceedingJoinPoint pjp){}
     
}

java面试问题收集(2)的更多相关文章

  1. 转:最近5年133个Java面试问题列表

    最近5年133个Java面试问题列表 Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来 ...

  2. 近5年133个Java面试问题列表

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别就能让你直接进入第二轮面试,但是现在问题变得越来越高级,面试官问的问题也更深入. 在我 ...

  3. java 面试

        115个Java面试题和答案——终极列表(上) 本文我们将要讨论Java面试中的各种不同类型的面试题,它们可以让雇主测试应聘者的Java和通用的面向对象编程的能力.下面的章节分为上下两篇,第一 ...

  4. Java 面试知识点解析(三)——JVM篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  5. Java 面试知识点解析(四)——版本特性篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  6. Java 面试知识点解析(七)——Web篇

    前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...

  7. java面试——jvm

    背景:用来总结java面试过程中与jvm相关的问题. 垃圾回收以及优化总结 <JVM 垃圾回收器工作原理及使用实例介绍> 介绍常用的垃圾回收算法,垃圾收集器,垃圾收集器相关的调试参数. J ...

  8. Java面试集合(三)

    前言 大家好,给大家带来Java面试集合(三)的概述,希望你们喜欢 三 1.在Java中是否可以含有多个类? 答:可以含有多个类,但只有一个是public类,public类的类名与文件名必须一致. 2 ...

  9. 最近5年183个Java面试问题列表及答案[最全]

    Java 面试随着时间的改变而改变.在过去的日子里,当你知道 String 和 StringBuilder 的区别(String 类型和 StringBuffer 类型的主要性能区别其实在于 Stri ...

随机推荐

  1. Linux之ansible 常用模块

    目的 代码发布系统 代码发布:把本地的代码通过某些方式弄到线上,可以供别人访问 部署 前戏 ansible 批量在远程主机上执行命令 puppet ruby ansible saltstack pyt ...

  2. mysql学习笔记--数据库索引

    一.索引的优点:查询速度快 二.索引的缺点: 1. 增.删.改(数据操作语句)效率低了 2. 索引占用空间 三.索引类型: 1. 普通索引 2. 唯一索引(唯一键) 3. 主键索引:只要主键就自动创建 ...

  3. Linux镜像清理日志操作

    1.安全 没有其他用户 查看 ll  /home下没有其他用户 2.清理日志 rm -rf /root/* rm -rf /tmp/* rm -rf /etc/udev/rules.d/persist ...

  4. Froms 认证 二级域名共享session登录凭证

    1. 需要共享的web.config 里需要加添 <authentication mode="Forms"> <forms name="/> &l ...

  5. 51单片机学习笔记(清翔版)(13)——LED点阵、74HC595

    如图3,点阵屏分单色和彩色,点阵屏是由许多点组成的,在一个点上,只有一颗一种颜色的灯珠,这就是单色点阵屏,彩色的在一个点上有三颗灯珠,分别是RGB三原色. 图4你可能没看出来,那么大块黄色的就是点阵屏 ...

  6. [转]vue跨域解决方法

      vue跨域解决方法 vue项目中,前端与后台进行数据请求或者提交的时候,如果后台没有设置跨域,前端本地调试代码的时候就会报“No 'Access-Control-Allow-Origin' hea ...

  7. java反射调用dubbo接口

    需求:项目增加幂等 场景:1.三个项目:a .b.c2.a项目加幂等3.b项目dubbo调用项目a的时候超时没有获取返回结果,增加重试机制(非立即重试,3min or 5min 后重试)4.c项目是一 ...

  8. intel xeon家族介绍

    Xeon - Intel   < intel Xeon Past and current logos         Developer Intel Manufacturer Intel Typ ...

  9. 00.pt-toolkit 目录

    一. 好用便利的工具,常用 pt-align 对齐文本格式pt-archiver 循序渐进的归档表,删除表,迁移数据pt-config-diff 对比不同配置文件.服务器配置参数pt-diskstat ...

  10. mysql约束以及数据库的修改

    一.约束 1.约束保证数据完整性和一致性. 2.约束分为表级约束和列级约束. (1)表级约束(约束针对于两个或两个以上的字段使用) (2)列级约束(针对于一个字段使用) 3.约束类型有: (1)NOT ...