牛客网Java面试题(三)

已知表达式int m[]={0,1,2,3,4,5,6};下面哪个表达式的值与数组下标量最大值相等?

  1. m. length()
  2. m. length - 1
  3. m. length()+1
  4. m. length+1

正确答案:B

解析:因为数组的下标从0开始,所以数组下标的最大值应该是数组的总长度减去1,获取数组的长度用length属性而是不是length()方法

下面不属于HttpServletRequest接口完成功能的是?

  1. 读取cookie
  2. 读取HTTP头
  3. 设定响应的content类型
  4. 读取路径信息

正确答案:C

解析:

  1. request.getCookies();
  2. request.getHeader();
  3. response.setContextType(“text/html;charset=utf-8”);
  4. request.setContextPath();request.getServletPath();

Math.floor(-8.5)=( )

  1. (float)-8.0
  2. (long)-9
  3. (long)-8
  4. (double)-9.0

正确答案:D

解析:

floor方法:返回最大的(最接近正无穷大)double 值,该值小于等于参数,并等于某个整数。

代码题

Integer i = 42;
Long l = 42l;
Double d = 42.0;

下面为True的是

  1. (i == l)
  2. (i == d)
  3. (l == d)
  4. i.equals(d)
  5. d.equals(l)
  6. i.equals(l)
  7. l.equals(42L)

正确答案:G

解析:

@Test
public void demo3(){
    Integer i = 42;
    Long l = 42l;
    Double d = 42.0;
    //不同类型引用的==比较会造成编译错误
    System.out.println(i == l);
    System.out.println(i == d);
    System.out.println(l == d);
    //包装类的equals()方法不会自动处理数据转型,两个不同的数据类型相比较肯定会返回False
    System.out.println(i.equals(d));
    System.out.println(d.equals(l));
    System.out.println(i.equals(l));
    System.out.println(l.equals(42L));
}

对下面Spring声明式事务的配置含义的说明错误的是()

<bean id="txProxyTemplate" abstract="true"
class=
"org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
    <property name="transactionManager" ref="myTransactionManager" />
<property name="transactionAttributes">      
<props>
        <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
        <prop key="*">PROPAGATION_REQUIRED</prop>
    </props>
</property> 
</bean>
  1. 定义了声明式事务的配置模板
  2. 对get方法采用只读事务
  3. 缺少sessionFactory属性的注入
  4. 配置需要事务管理的bean的代理时,通过parent引用这个配置模板,代码如下:

     <bean id="petBiz" parent="txProxyTemplate">
             <property name="target" ref="petTarget"/>
     </bean>
    

正确答案:D

解析:

<!--Spring中基于XML的声明式事务控制的配置步骤
        1:配置事务管理器
        2:配置事务的通知
            导入事务的约束,transaction的名称空间和约束同时也需要AOP的名称空间和约束
            使用tx:advice标签配置事务通知
                属性:
                    id->给事务通知起一个唯一标识
                    transaction-manager:给事务通知提供一个事务管理器的引用
        3:配置AOP中的通用切入点表达式
        4:建立事务通知和切入点表达式的关系
        5:配置事务的属性
                事务的通知tx:advice标签的内部配置事务的属性
                isolation=""           ->指定事务的隔离级别,默认是default表示使用数据库的默认隔离级别
                no-rollback-for=""     ->指定一个异常,当产生该异常时事务不回滚,产生其他异常时,事务回滚,没有默认值,表示任何异常都回滚
                propagation=""         ->指定事务的传播行为,默认是REQUIRED表示一定会有事务,增删改选择REQUIRED.查询方法选择SUPPORTS
                read-only=""           ->指定事务是否只读,只有查询方法才能设置为True默认值False
                rollback-for=""        ->指定一个异常,当产生该异常时,事务回滚,产生其他异常时,事务不回滚.没有默认值,表示任何异常都回滚
                timeout=""             ->指定事务的超时时间,默认值-1,表示永不超时,如果指定了数值则以秒为单位

    -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>
    <!--配置事务通知-->
    <tx:advice id="transactionAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <!--业务层接口中的方法-->
            <tx:method name="tranSfer" read-only="false" propagation="REQUIRED"/>
        </tx:attributes>
    </tx:advice>
    <!--配置AOP-->
    <aop:config>
        <aop:pointcut id="point1" expression="execution(* chen.service.impl.*.*(..))"/>
        <!--建立事务通知和切入点表达式的关系-->
        <aop:advisor advice-ref="transactionAdvice" pointcut-ref="point1"></aop:advisor>
    </aop:config>

实现或继承了Collection接口的是()

  1. Map
  2. List
  3. Vector
  4. Iterator
  5. Set

正确答案:BCE

因为List接口继承于Collection接口,Vector类又实现了List接口所以Voctor自然实现了Collection接口.

VcBkhq.png

在Jdk1.7中,下述说法中抽象类与接口的区别与联系正确的有哪些?

  1. 抽象类中可以有普通成员变量,接口中没有普通成员变量。
  2. 抽象类和接口中都可以包含静态成员常量。
  3. 一个类可以实现多个接口,但只能继承一个抽象类
  4. 抽象类中可以包含非抽象的普通方法,接口中的方法必须是抽象的,不能有非抽象的普通方法。

正确答案:ABCD

下面哪个语句是创建数组的正确语句?( )

  1. float f[][] = new float[6][6];
  2. float []f[] = new float[6][6];
  3. float f[][] = new float[][6];
  4. float [][]f = new float[6][6];
  5. float [][]f = new float[6][];

正确答案:ABDE

解析:

Java中数组命名时[]和数组名称可以随意排列,但声明的二维数组中第一个括号中必须要有值,因为他代表一维数组中有多少个二维数组.

以下哪些类是线程安全的()

  1. Vector
  2. HashMap
  3. ArrayList
  4. StringBuffer
  5. Properties

正确答案:ABDE

解析:

Java中线程安全的类Vector,HashTable,StringBuffer,Properties


 上一篇
牛客网Java面试题(四) 牛客网Java面试题(四)
下面哪个修饰符修饰的变量是所有同一个类生成的对象共享的( ) public private static final 正确答案:C 解析:static修饰的变量表示静态变量,归类所有,该类的所有对象公用. 以下选项中,合法的赋值语句是()
2019-06-12
下一篇 
牛客网Java面试题(二) 牛客网Java面试题(二)
将以下哪种方法插入行3是不合法的。类Test1定义如下: public class Test1{//1 public float aMethod(float a,float b){}//2 //3 }//4 public
2019-06-10
  目录