美文网首页
java面试题总结

java面试题总结

作者: 落云和枫 | 来源:发表于2019-07-10 22:45 被阅读0次

    1. Spring 框架都配置了哪些内容?

      <!-- 注解扫描 -->

            <context:component-scan base-package="com.chen.service.impl"></context:component-scan>

        <!-- 加载属性文件 -->

            <context:property-placeholder location="classpath:db.properties"/>

        <!-- 数据源 -->

           <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">

             <property name="driverClassName" value="${jdbc.driver}"></property>

            <property name="url" value="${jdbc.url}"></property>

             <property name="username" value="${jdbc.username}"></property>

             <property name="password" value="${jdbc.password}"></property>

        </bean>

        <!-- SqlSessionFactory -->

            <bean id="factory" class="org.mybatis.spring.SqlSessionFactoryBean">

             <property name="dataSource" ref="dataSource"></property>

             <property name="typeAliasesPackage" value="com.chen.pojo"></property>

        </bean>

        <!-- 扫描器 -->

        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

             <property name="basePackage" value="com.chen.mapper"></property>

             <property name="sqlSessionFactoryBeanName" value="factory"></property>

        </bean>

        <!-- 事务管理器 -->

        <bean id="txManage" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

             <property name="dataSource" ref="dataSource"></property>

        </bean>

        <!-- 声明式事务 -->

        <tx:advice id="txAdvice" transaction-manager="txManage">

             <tx:attributes>

             <tx:method name="ins*"/>

             <tx:method name="del*"/>

             <tx:method name="upd*"/>

            <tx:method name="*" read-only="true"/>

             </tx:attributes>

    </tx:advice>

        <!-- 配置aop -->

        <aop:config>

            <aop:pointcut expression="execution(* com.chen.service.impl.*.*(..))" id="mypoint"/>

             <aop:advisor advice-ref="txAdvice" pointcut-ref="mypoint"/>

        </aop:config>

    </beans>

    Spring的优点

         方便解耦,简化开发

             Spring就是一个大工厂,可以将所有对象创建和依赖关系维护,交给Spring管理

         AOP编程的支持

             Spring提供面向切面编程,可以方便的实现对程序进行权限拦截、运行监控等功能

         声明式事务的支持

             只需要通过配置就可以完成对事务的管理,而无需手动编程

         方便程序的测试

             Spring对Junit4支持,可以通过注解方便的测试Spring程序

         方便集成各种优秀框架

              Spring不排斥各种优秀的开源框架,其内部提供了对各种优秀框架(如:Struts2、Hibernate、MyBatis、Quartz等)的直接支持

         降低JavaEE API的使用难度

             Spring 对JavaEE开发中非常难用的一些API(JDBC、JavaMail、远程调用等),都提供了封装,使这些API应用难度大大降低

    2.Spring Bean 的配置内容有哪些?

    1. 基于XML的配置

            通过<bean> </bean>来定义Bean,通过id或name属性定义Bean的名称,如果未指定id和name属性,Spring则自动将全限定类名作为Bean的名称。通过<property>子元素或者p命名空间的动态属性为Bean注入值。

    2. 基于注解的配置

            在Bean实现类中通过一些Annotation(标注)来标注Bean类:

            @Component:标注一个普通的Spring Bean类(可以指定Bean名称,未指定时默认为小写字母开头的类名)

            @Controller:标注一个控制器类

            @Service:标注一个业务逻辑类

            @Repository:标注一个DAO类

    3.基于java

            在标注了@Configuration的java类中,通过在类方法标注@Bean定义一个Bean。方法必须提供Bean的实例化逻辑。

    3.MySql 数据库有什么特点?

            1、可以处理拥有上千万条记录的大型数据;

            2、支持常见的SQL语句规范;

            3、可移植行高,安装简单小巧;

            4、良好的运行效率,有丰富信息的网络支持;

            5、调试、管理,优化简单(相对其他大型数据库)。

    4. MySql联合索引遵循的是什么原则?

           1、需要加索引的字段,要在where条件中

            2、数据量少的字段不需要加索引

            3、如果where条件中是OR关系,加索引不起作用

            4、符合最左原则

     举例:

            联合索引(a、b、c) 使用a或者a或者a、b或a、b、c这3种可以进行查找,不支持b、c进行查找

    5. 我看你精通Tomcat等中间件,那你说下我Tomcat 如何做调优?

            第一个方法:就是从外部系统稳定性方面,他现在时使用的Xp,但是我还是建议要是做服务器的话,还是使用服务器版本的操作系统,稳定性更好,要是系统不稳定造成的服务器重启或者中断,结果是可想而知的。

          第二个方法:就是加大JVM的虚拟内存,大家应该都知道Tomcat是依附于JVM的,默认JVM的内存只有128mb,这对于小系统或者是自己练习使用完全够用了,但是要是大的项目就够了,这个可以根据自己项目自己选择,这里因为公司项目很大,我还是建议他增大到256MB了。

         第三个方法:就是配置Tomca服务器的连接设置,

         对于默认连接数,Tomcat是提供了10个连接数

         对于最大连接数:Tomcat默认是75个连接数

         对于允许最大连接数:Tomcat默认为100个连接数

         这对于大系统是远远不够的,一般要是增大连接数,建议把最大连接数,允许最大连接数这两项同时增大,

    且允许最大连接数比最大连接数要大,一般大1就可以了

    6. Spring Service 层有很多业务代码,可能是100 多行或更多,可读性非常差,读完它可能需要个把小时,那么怎么去做让他的可能性提升呢?

    7. 你有过数据库性能调优经验,那么数据库的耗费都耗费在了哪里

    数据库调优

    相关文章

      网友评论

          本文标题:java面试题总结

          本文链接:https://www.haomeiwen.com/subject/fvqzvqtx.html