题目整理

一、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)

八、主方法

九、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()方法 。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值