牛客网---Java专项练习(2)(第二题单例设计模式)

牛客网—Java专项练习(2)

1.在异常处理中,以下描述不正确的有

a. try块不可以省略
b. 可以使用多重catch块
c. finally块可以省略
d. catch块和finally块可以同时省略

正确答案 D

//try块的表现形式有三种 catch和finally不能同时省略
try-catch
try-catch-finally
try-finally
  1. 下面代码的执行结果是 :
class Chinese{private static  Chinese objref =new Chinese();private Chinese(){}public static Chinese getInstance() {         return objref;     } 

 } 

 public class TestChinese {public static void main(String [] args)       { 

​    Chinese obj1 = Chinese.getInstance(); 

​    Chinese obj2 = Chinese.getInstance(); 

​    System.out.println(obj1 == obj2); 

 } 

 } 

a. true
b. false
c. TRUE
d. FALSE

正确答案 a

初看的时候 以为这道题在考察static关键字 想到static关键字修饰的静态变量只在方法区中内存维护了一份共享数据 那么obj1和obj2的内存地址就应该相同 所以返回true

接下来 又看牛客网友的评论 发现这是单例设计模式(自己真菜真辣鸡)

下面简单复习一下单例设计模式

单例设计模式的目标 一个类在内存中只有一个对象

我们来看一下单例设计模式的三个步骤

​ (1) 私有化构造函数

​ (2) 声明一个本类的引用类型变量 创建本类的对象

​ (3) 提供一个公共的方法来获取本类的对象

我们再来看一下单例设计模式要注意的细节

public static Chinese getInstance() {         return objref;     }

这个获取本类对象的公共方法 应该用static来修饰 试想如果这个方法是非静态的 那么我们在调用这个方法时要使用对象.方法名()的形式进行访问(非静态成员只能用对象的形式访问) 但构造方法已经被我们私有化了 我们只能通过类名.方法名()的这个方法来拿到该类对象 这就要求这个公共方必须是static修饰的静态方法

Chinese obj1 = Chinese.getInstance();

我们也是使用类名进行调用

3.关于数据库连接的程序,以下哪个语句的注释是错误的

a. Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”); //指定MySQL JDBC驱动程序
b. String url=”jdbc:odbc:student_access”; //指定数据源为student_access
c. Connection con=DriverManager.getConnection(url); //创建连接指定数据库的对象
d. Statement stmt=con.creatStatement();//创建执行SQL语句的Statement对象

正确答案 a

害 最后这个题有点水 这个题的原因我个人认为是这样的

Class.forName("com.mysql.jdbc.Driver")//俺觉得这个是mysql驱动

写在最后

害 今天本来准备冲5个题了 可是如图

在这里插入图片描述

真的冲的累了(其实是想玩会手机了) 歇了歇了 晚上不累再冲 冲冲冲

发布了39 篇原创文章 · 获赞 19 · 访问量 1486

猜你喜欢

转载自blog.csdn.net/weixin_44222272/article/details/104971053