题目整理

一、Statement和PreparedStatement

PreparedStatement继承Statement,PreparedStatement 实例包含已编译的 SQL 语句, 所以其执行速度要快于Statement对象。 

作为Statement的子类,PreparedStatement继承了Statement的所有功能。三种方法 

  • execute、executeQuery和executeUpdate已被更改以使之不再需要参数 

PreparedStatement尽最大可能提高性能。最重要的一点是极大地提高了安全性。

二、for循环

以下代码执行结果是(ABDCBDCB)

public class Test{
     static boolean foo(char c){
         System.out.print(c);
         return true;
     }
     public static void main( String[] argv ){
         int i = 0;
         for ( foo('A'); foo('B') && (i < 2); foo('C')){
             i++ ;
             foo('D');
         }
     }
 }

分析:

for(条件1;条件2;条件3) {
    //语句
}

执行顺序是条件1->条件2->语句->条件3->条件2->语句->条件3->条件2........

如果条件2为true,则一直执行。如果条件2位false,则for循环结束

三、socket

服务器端:ServerSocket提供的实例 ServerSocket server = new ServerSocket(端口号) 

客户端:Socket提供的实例 Socket client = new Socket(IP地址,端口号)

四、关键字、标识符

Java标识符命名规范是:

  1. 只能包含字母a-zA-Z,数字0-9,下划线_和美元符号$;
  2. 首字母不能为数字;
  3. 关键字和保留字不能作为标识符。

null是关键字,NULL不是关键字,java区分大小写。

for是关键字。

五、对线性表采用折半查找,该线性表必须(元素按值有序排列,并且采用顺序存储结构)。

必须是顺序储存结构,即数组,一次索引就可以找到中间位置。如果是链表,需要从头遍历到中间位置。

六、数组

数组大小的定义只能是整型常量

常用方法:

方法名 是否改变原数组 作用 返回值
concat() 不改变原数组 连接两个或多个数组 返回被连接数组的一个副本
join() 不改变原数组 把数组中所有元素放入一个字符串 返回字符串
slice() 不改变原数组 从已有的数组中返回选定的元素 返回一个新数组
toString() 不改变原数组 把数组转为字符串 返回数组的字符串形式
       
pop() 改变原数组

删除数组最后一个元素,

如果数组为空,则不改变数组,返回undefined

返回被删除的元素

push() 改变原数组 向数组末尾添加一个或多个元素 返回新数组的长度
reverse() 改变原数组 颠倒数组中元素的顺序 返回该数组
shift() 改变原数组 把数组的第一个元素删除,若空数组,不进行任何操作,返回undefined 返回第一个元素的值
sort() 改变原数组 对数组元素进行排序(ascii) 返回该数组
splice() 改变原数组 从数组中添加/删除项目 返回被删除的元素
unshift() 改变原数组 向数组的开头添加一个或多个元素 返回新数组的长度

七、6!=1*2*3*4*5*6=720.720后面有1个0,n=10000,求n!后面有多少个0。(2499)

八、主方法

题目整理_第1张图片

九、instanceof运算符

instanceof运算符能够用来判断一个对象是否为:

  • 一个类的实例
  • 一个实现指定接口的类的实例
  • 一个子类的实例

十、常量池

Byte,Short,Integer,Long,Character这5种整型的包装类也只是在对应值小于等于127并且大于等于-128时才可使用常量池,因为它们只占用一个字节(-128~127);

再者Integer.valueOf方法中也有判断,如果传递的整型变量>= -128并且小于127时会返回IntegerCache类中一个静态数组中的某一个对象, 否则会返回一个新的Integer对象。

十一、短路与&&

以下代码的运行结果为:531

public class Test{
    public static void main(String[] args){
        int x = 0;
        int y = 0;
        int k = 0;
        for (int z = 0; z < 5; z++) { 
            if ((++x > 2) && (++y > 2) && (k++ > 2)){
                x++;
                ++y;
                k++;
            }
        }
        System.out.println(x + ”” +y + ”” +k);
    }
}

分析:第一次运行到if后,++x > 2不满足,&&后面的就不进行比较了。

当x加到3后,才开始比较++y > 2

十二、嵌套类

使用嵌套类,其中有几个令人信服的理由:

  • 加强封装—考虑两个顶级类,A和B,如果B需要访问A的private成员,通过在A类隐藏B类,那么即使A的成员声明为private,那么B也可以访问它们。更多的是,B本身也可以隐藏于外部。
  • 更可读性,可维护性的代码—在顶级类里嵌套小类,让代码更靠近使用的地方。

十三、字符串

java中 String str = "hello world"下列语句错误的是?(1、2、3)

  1. str+=' a'
  2. int strlen = str.length
  3. str=100
  4. str=str+100

str += 'a'   和 str +="a"都是对的,但是如果a前面加一个空格,那么只能用双引号了,代表字符串。

数组有length属性,字符串只有length()方法 。

你可能感兴趣的:(题目整理,#,Java基础)