编程语言爱好者程序员

NowCoder-Java-Note(二)

2017-12-04  本文已影响6人  路卡利欧Mega

一、 Java Application 中的主类需包含main方法,以下哪项是main方法的正确形参?( )

A.String args
B.String[] args
C.Char arg
D.StringBuffer[] args

答案:B

解析:

二、 java socket如何获取本地ip地址?

A.getInetAddress()
B.getLocalAddress()
C.getReuseAddress()
D.getLocalPort()

答案:B

解析:
Socket类

三、下面代码运行结果是()

public class Test{ 
    public int add(int a,int b){   
         try {
             return a+b;      
         } 
        catch (Exception e) {  
            System.out.println("catch语句块");
         }
         finally{ 
             System.out.println("finally语句块");
         }
         return 0;
    } 
     public static void main(String argv[]){ 
         Test test =new Test(); 
         System.out.println("和是:"+test.add(9, 34)); 
     }
}

A.catch语句块;和是:43
B.编译异常
C.finally语句块;和是:43
D.和是:43;finally语句块

答案:C

解析:
先来看一段代码:
public abstract class Test {
    public static void main(String[] args) {
        System.out.println(beforeFinally());
    }
     
    public static int beforeFinally(){
        int a = 0;
        try{
            a = 1;
            return a;
        }finally{
            a = 2;
        }
    }
}
再来看一个例子,稍微改下上面的程序:
public abstract class Test {
    public static void main(String[] args) {
        System.out.println(beforeFinally());
    }
     
    public static int beforeFinally(){
        int a = 0;
        try{
            a = 1;
            return a;
        }finally{
            a = 2;
            return a;
        }
    }
}
结论:
  1. finally{}代码块比return先执行。

  2. 多个return是按顺序执行的的,多个return执行了一个后,后面的return就不会执行了。

  3. 记住一点,不管有不有异常抛出,finally都会在return返回前执行。

四、在基本JAVA类型中,如果不明确指定,整数型的默认是什么类型?带小数的默认是什么类型?

int double

解析:

五、关于PreparedStatement与Statement描述错误的是()

A.一般而言,PreparedStatement比Statement执行效率更高
B.PreparedStatement会预编译SQL语句
C.Statement每次都会解析/编译SQL,确立并优化数据获取路径
D.Statement执行扫描的结果集比PreparedStatement大

答案:D

解析(一):
创建时的区别:
Statement statement = conn.createStatement();
PreparedStatement preStatement = conn.prepareStatement(sql);
执行的时候:
ResultSet rSet = statement.executeQuery(sql);
ResultSet pSet = preStatement.executeQuery(); 
解析(二):
Statement 和 PreparedStatement 有什么区别?哪个性能更好?

与 Statement 相比,
①PreparedStatement 接口代表预编译的语句,它主要的优势在于
以减少 SQL 的编译错误并增加 SQL 的安全性(减少 SQL 注射攻击的可能性)

②PreparedStatement 中的 SQL 语句是可以带参数的,避免了用字符串连接拼接 SQL 语句的麻烦和不安全;
当批量处理 SQL 或频繁执行相同的查询时,PreparedStatement 有明显的性能上的优势,由于数据库可以将编译优化后的 SQL 语句缓存起来,下次执行相同结构的语句时就会很快(不用再次编译和生成执行计划)。

补充:
①为了提供对存储过程的调用,JDBC API 中还提供了 CallableStatement 接口。
②存储过程(Stored Procedure)是数据库中一组为了完成特定功能的 SQL 语句的集合,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
③虽然调用存储过程会在网络开销、安全性、性能上获得很多好处,但是存在如果底层数据库发生迁移时就会有很多麻烦,因为每种数据库的存储过程在书写上存在不少的差别

图片.png

六、 Java 多线程有几种实现方法?( )

继承Thread类; 实现Runnable接口; 实现Callable接口

七、int,String,*point,union哪些不是 Java 的数据类型?(不定项)

A.int
B.String
C.*point
D.union

答案:C D

解析:
Java 的数据类型

八、java中关于继承的描述正确的是()?(不定项)

A.一个子类只能继承一个父类
B.子类可以继承父类的构造方法
C.继承具有传递性
D.父类一般具有通用性,子类更具体

答案: A C D

解析:

九、下面哪些写法能在 java8 中编译执行()(不定项)

A.dir.listFiles((File f)->f.getName().endsWith(“.Java”));
B.dir.listFiles((File f)=>f.getName().endsWith(“.Java”));
C.dir.listFiles((_.getName().endsWith(“.Java”)));
D.dir.listFiles( f->f.getName().endsWith(“.Java”));

答案:A D

解析:
Lanbda表达式的主要作用就是代替匿名内部类的繁琐语法, 它由三部分组成:
  1. 形参列表。
  2. 箭头(→)。必须通过英文中画线和大于符号组成。
  3. 代码块。
Lanbda表达式简单实例:
Lanbda表达式

十、下面哪些类可以被继承? Java.lang.Thread、java.lang.Number、java.lang.Double、java.lang.Math、 java.lang.ClassLoader(不定项)

A.Thread
B.Number
C.Double
D.Math
E.ClassLoader

答案: A B E

解析:
上一篇 下一篇

猜你喜欢

热点阅读