nowcoder刷题错题集合(4)

这篇博客主要涵盖了Java编程中的错题解析,包括了程序段的理解、Spring框架的相关知识、异常处理、字符集编码与国际化问题、源文件后缀、接口与类的定义、类库导入、事务持久性和finally语句的使用等多个知识点,是Java初学者巩固基础的好材料。

01.以下程序段的输出结果为:

public class EqualsMethod
{
    public static void main(String[] args)
    {
        Integer n1 = new Integer(47);
        Integer n2 = new Integer(47);
        System.out.print(n1 == n2);
        System.out.print(",");
        System.out.println(n1 != n2);
    }
}

在这里插入图片描述
解析:

Integer n3 = Integer.valueOf(47)
Integer n4 = Integer.valueOf(47);
这里的n3==n4才是true。
如果直接使用new一个对象,从构造函数来看:
    public Integer(int value) {
        this.value = value;
    }
就是完全不同的两个对象,没有使用所谓的缓存。
*********************
使用Integer a = 1;或Integer a = Integer.valueOf(1); 在值介于-128至127直接时,作为基本类型。
使用Integer a = new Integer(1); 时,无论值是多少,都作为对象。

在这里插入图片描述
02.关于spring说法错误的是()
在这里插入图片描述
解析:

Spring Framework是一个开源的Java/Java EE全功能栈(full-stack)的应用程序框架,Spring中包含的关键特性:

1.基于JavaBeans的采用控制翻转(Inversion of Control,IoC)原则的配置管理,使得应用程序的组建更加快捷简易。
2.一个可用于从applet到Java EE等不同运行环境的核心Bean工厂。
数据库事务的一般化抽象层,允许声明式(Declarative)事务管理器,简化事务的划分使之与底层无关。
3.内建的针对JTA和单个JDBC数据源的一般化策略,使Spring的事务支持不要求Java EE环境,这与一般的JTA或者EJB CMT相反。
4.JDBC 抽象层提供了有针对性的异常等级(不再从SQL异常中提取原始代码),简化了错误处理,大大减少了程序员的编码量。再次利用JDBC时,你无需再写出另一个'终止'(finally)模块。并且面向JDBC的异常与Spring通用数据访问对象(Data Access Object)异常等级相一致。
5.以资源容器,DAO实现和事务策略等形式与Hibernate,JDO和iBATIS SQL Maps集成。利用众多的翻转控制方便特性来全面支持,解决了许多典型的Hibernate集成问题。所有这些全部遵从Spring通用事务处理和通用数据访问对象异常等级规范。
6.灵活的基于核心Spring功能的MVC网页应用程序框架。开发者通过策略接口将拥有对该框架的高度控制,因而该框架将适应于多种呈现(View)技术,例如JSP、FreeMarker、Velocity、Tiles、iText以及POI。值得注意的是,Spring中间层可以轻易地结合于任何基于MVC框架的网页层,例如Struts、WebWork或Tapestry。
7.提供诸如事务管理等服务的面向方面编程框架。

另外,Spring并没有提供日志系统,我们需要使用AOP(面向方面编程)的方式,借助Spring与日志系统log4j实现我们自己的日志系统。



Spring 的特点优点:
1.低侵入式设计,代码污染极低
2.独立于各种应用服务器,基于Spring框架的应用,可以真正实现Write Once,Run Anywhere的承诺
3.Spring的DI机制降低了业务对象替换的复杂性,提高了组件之间的解耦
4.Spring的AOP支持允许将一些通用任务如安全、事务、日志等进行集中式管理,从而提供了更好的复用
5.Spring的ORM和DAO提供了与第三方持久层框架的良好整合,并简化了底层的数据库访问
6.Spring并不强制应用完全依赖于Spring,开发者可自由选用Spring框架的部分或全部

03.下列有关JAVA异常处理的叙述中正确的是()
在这里插入图片描述

04.在Java语言中,下列关于字符集编码(Character set encoding)和国际化(i18n)的问题,哪些是正确的?
在这里插入图片描述
解析:

Java默认使用Unioncode编码,即不论什么语言都是一个字符占两个字节
Java的class文件编码为UTF-8,而虚拟机JVM编码为UTF-16
UTF-8编码下,一个中文占3个字节,一个英文占1个字节
Java中的char默认采用Unicode编码,所以Java中char占2个字节
1(byte)字节=8(bit)位

java 采用双字节编码 用的是‘’utf-16be“ 中文占2字节,英文占2字节;
”utf-8“ 中文占3字节,英文占1字节;
”gbk“  中文占2字节,英文占1字节;	

05.一个以”.java”为后缀的源文件
在这里插入图片描述
解析:

一个Java源文件中只能有一个public类,且与文件名一致。但可以有多个非public类。

06.根据以下接口和类的定义,要使代码没有语法错误,则类Hero中应该定义方法( )。

interface Action{  
    void fly();  
}
class Hero implements Action{  //……  }

在这里插入图片描述
解析:

 接口方法默认是public abstract的,且实现该接口的类中对应的方法的可见性不能小
于接口方法的可见性,因此也只能是public的。

07.要导入java/awt/event下面的所有类,叙述正确的是?()
在这里插入图片描述
解析:

导包只可以导到当前层,不可以再导入包里面的包中的类。
import java.awt.*;导入的是awt下的包,awt下的包中的不会被导入
import java.awt.event.*; 导入的是event下面的类,java.awt中的其他包不会被导入

08.以下描述正确的是
在这里插入图片描述
解析:
在这里插入图片描述
09.DBMS 中实现事务持久性的子系统是()
在这里插入图片描述
解析:

原子性:事务是一组不可分割的操作单元,这组单元要么同时成功要么同时失败(由DBMS的事务管理子系统来实现);

一致性:事务前后的数据完整性要保持一致(由DBMS的完整性子系统执行测试任务);

隔离性:多个用户的事务之间不要相互影响,要相互隔离(由DBMS的并发控制子系统实现);

持久性:一个事务一旦提交,那么它对数据库产生的影响就是永久的不可逆的,如果后面再
回滚或者出异常,都不会影响已提交的事务(由DBMS的恢复管理子系统实现的)

10.有关finally语句块说法正确的是( )
在这里插入图片描述
解析:

1、不管有木有出现异常,finally块中代码都会执行;
2、当try和catch中有return时,finally仍然会执行;
3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是
先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之
前保存的值),所以函数返回值是在finally执行前确定的;
4、finally中最好不要包含return,否则程序会提前退出,返回值不是try或catch中保存的返回值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值