牛客练习题——7

如下Java语句 double x=2.0; int y=4; x/=++y; 执行后,x的值是()

答案:0.4

解析:我觉得我得去上小学,2/5我算的2.5

java中,用( )关键字定义常量?

答案:final

解析:

final关键字

1.final修饰变量,则等同于常量

2.final修饰方法中的参数,称为最终参数。

3.final修饰类,则类不能被继承

4.final修饰方法,则方法不能被重写。

建立Statement对象的作用是?

答案:执行SQL语句

解析:

Class.forName("com.mysql.jdbc.Driver");  //加载jdbc驱动

con=DriverManager.getConnection(url,user,password); //建立连接

stmt=con.createStatement(); //创建语句执行者(stateMent用于执行不带参数的简单sql语句,PreparedStatement用于执行带参数的预编译sql语句能够预防sql注入,CallableStatement提供了一种标准形式的调用存储过程的方法)

stmt.execute(“sql语句”); 

rs=stmt.executeQuery("sql查询语句"); //结果集

int  i, sum=0;

for(i=0;i<10;++i,sum+=i); i 的最终结果是?

答案:10

解析:问的是i

下列不正确的 Java 语言标识符是( )

答案:for

解析:标识符就是用于Java程序中变量,类,方法等命名的符号,Java标识符不能是Java关键字,还有区分大小写, 还有,标识符可以由字母,数字,下划线,$组成,不能包含@,%,空格,不以数字开头,,,NULL和null不一样啊

 public void test() {
        int a = 10;
        System.out.println(a++ + a--);
    }

最后输出什么?

答案:21

解析:a++ 先把10赋值给a 再+1 所以左边是10 但此时a=11。右边a-- 也是先赋值 a=11,再-1。10+11=21 此时a=10。

jdk1.8版本之前的前提下,接口和抽象类描述正确的有( )

答案:抽象类不允许多继承;接口没有构造函数。

解析:jdk1.8后接口中用static或default修饰的方法可以有方法体

关于Java以下描述正确的有(      )

答案:String类是一个final类;Class类可以装载其它类。

解析:class类是Object的派生类,每个类都使用Object作为超类,而final修饰的类不能被继承,class类中的forName()方法返回带有给定字符串名的类或者接口相关联的class对象(装载其他类)

Servlet的生命周期可以分为初始化阶段,运行阶段和销毁阶段三个阶段,以下过程属于初始化阶段是()。

答案:加载Servlet类及.class对应的数据;创建ServletConfig对象;创建Servlet对象。

 

关于Java中的ClassLoader下面的哪些描述是错误的:(    )

答案:一般的情况不同ClassLoader装载的类是不相同的,但接口类例外,对于同一接口所有类装载器装载所获得的类是相同的;ClassLoader的loadClass在装载一个类时,如果该类不存在它将返回null;所有ClassLoader装载的类都来自CLASSPATH环境指定的路径

解析:

A.Java系统提供3种类加载器:启动类加载器(Bootstrap ClassLoader)  扩展类加载器(Extension ClassLoader) 应用程序类加载器(Application ClassLoader). A正确

B.《深入理解Java虚拟机》P228:对于任意一个类,都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性,每一个类加载器,都拥有一个独立的类名称空间。这句话可以表达得更通俗一些:比较两个类是否“相等”,只有在这两个类是由同一个类加载器加载的前提下才有意义,否则,即使这两个类来源于同一个Class文件,被同一个虚拟机加载,只要加载它们的类加载器不同,那么这两个类必定不相等。接口类是一种特殊类,因此对于同一接口不同的类装载器装载所获得的类是不相同的。B错误

C.类只需加载一次就行,因此要保证类加载过程线程安全,防止类加载多次。C正确

D. Java程序的类加载器采用双亲委派模型,实现双亲委派的代码集中在java.lang.ClassLoader的loadClass()方法中,此方法实现的大致逻辑是:先检查是否已经被加载,若没有加载则调用父类加载器的loadClass()方法,若父类加载器为空则默认使用启动类加载器作为父类加载器。如果父类加载失败,抛出ClassNotFoundException异常。D错误

E.双亲委派模型的工作过程:如果一个类加载器收到了类加载的请求,它首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每一个层次的类加载器都是如此,因此所有的加载请求最终都应该传送到顶层的启动类加载器中,只有当父加载器反馈自己无法完成这个加载请求时,子加载器才会尝试自己去加载。E正确

F.应用程序类加载器(Application ClassLoader)负责加载用户类路径(ClassPath)上所指定的类库,不是所有的ClassLoader都加载此路径。F错误

 

 

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值