在做CVTE在线测评时遇到的几个问题
2014-03-06 14:45
302 查看
记录一下在做测评时遇到的几个问题。
1.count(*)和count(列名)
cout(*)统计的是结果集的总条数
count(列名)统计的是除了结果集中列值不为空(不为null)的记录的总条数
2.关于==和equals的
s1 equals s2
做题时犹豫了一下下,最后还是选对了。
之前总结过:http://blog.csdn.net/csummm4/article/details/20486443正好用上了。
3.求程序的输出结果
运行结果:
百度了一下原因:
4.关于String和StringBuffer的
以下JAVA语句片段创建了几个对象?
A.3
B.4
C.5
D.6
选的C,5个。
因为String对象是不可变得,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
Java为了节省内存空间和运行时间,在编译阶段就把所有的字符串文字放到一个文字池中,而运行时文字池成为常量池的一部分。如果当前准备新创建的字符串对象的值在这个池子中已经存在,那么就不会生成新对象,而是复用池中已有的字符串对象。flyweight
模式的精髓就是对象复用。不过,只有采用Object s = “Hello”方式(而非用”new“关键字)声明String对象的时候这个规则才会被应用。
第5行是创建了2个对象,一个是"abc",一个是new出来的。
例如String s=new String("abc"),这里"abc"本身就是pool中的一个对象,而在运行时执行new String()时,将pool中的对象复制一份放到heap中,并且heap中的这个对象引用交给s持有,这条语句就创建了两个String对象。
而StringBuffer的可变序列的字符串对象,当对他进行修改的时候不会像String那样重新建立对象
另外StringBulier也是可变序列的字符串对象,只是不是线程安全的,StringBuffer是线程安全的。
1.count(*)和count(列名)
cout(*)统计的是结果集的总条数
count(列名)统计的是除了结果集中列值不为空(不为null)的记录的总条数
2.关于==和equals的
public class T13 { public static void main(String[] args) { String s1="hello"+"world"; String s2=new String(s1); if(s1==s2) System.out.print("s1==s2"); else if(s1.equals(s2)) System.out.print("s1 equals s2"); } }运行结果为:
s1 equals s2
做题时犹豫了一下下,最后还是选对了。
之前总结过:http://blog.csdn.net/csummm4/article/details/20486443正好用上了。
3.求程序的输出结果
#include <stdio.h> int main() { int i=43; printf("%d",printf("%d",printf("%d",i))); return 0; }
运行结果:
-------------------------------------------------
4321
-------------------------------------------------
百度了一下原因:
printf的返回值是打印的字符数 先打印最里层的43 然后43为2个字符,中层的printf打印2 然后2为一个字符,最外层的printf打印1 这就是结果4321
4.关于String和StringBuffer的
以下JAVA语句片段创建了几个对象?
String A ,B,C; A="a"; B="b"; A=A+B; StringBuffer D=new StringBuffer("abc"); D=D.append("567");
A.3
B.4
C.5
D.6
选的C,5个。
因为String对象是不可变得,一旦被创建,就不能修改它的值.
对于已经存在的String对象的修改都是重新创建一个新的对象,然后把新的值保存进去.
Java为了节省内存空间和运行时间,在编译阶段就把所有的字符串文字放到一个文字池中,而运行时文字池成为常量池的一部分。如果当前准备新创建的字符串对象的值在这个池子中已经存在,那么就不会生成新对象,而是复用池中已有的字符串对象。flyweight
模式的精髓就是对象复用。不过,只有采用Object s = “Hello”方式(而非用”new“关键字)声明String对象的时候这个规则才会被应用。
第5行是创建了2个对象,一个是"abc",一个是new出来的。
例如String s=new String("abc"),这里"abc"本身就是pool中的一个对象,而在运行时执行new String()时,将pool中的对象复制一份放到heap中,并且heap中的这个对象引用交给s持有,这条语句就创建了两个String对象。
而StringBuffer的可变序列的字符串对象,当对他进行修改的时候不会像String那样重新建立对象
另外StringBulier也是可变序列的字符串对象,只是不是线程安全的,StringBuffer是线程安全的。
相关文章推荐
- 源码安装gtk+-2.0时遇到的几个问题及解决办法。
- 使用Spring Data Redis时,遇到的几个问题
- 近日遇到的几个问题
- 从代码审核时遇到的有关JUnit的几个问题来看项目开发问题
- 使用OpenLDAP做通讯录遇到的几个问题
- 最近遇到的几个python问题汇总
- 贴吧系统开发中遇到的几个问题——数据传输限制
- react native下开发应用遇到的几个问题以及自己的解决办法
- 从ACCESS转到学习SQLSERVER所遇到的几个问题
- 使用Spring Data Redis时,遇到的几个问题
- 安装cucumber遇到的几个问题
- #android#刚接触android编程遇到的几个问题
- 开发中遇到的几个问题小记
- Windows7 安装VS2008RTM中文版遇到几个问题
- [导入]Access升迁到SQLServer是遇到的几个问题。
- KnockOut JS 学习中遇到的几个问题
- 配置LMAP时遇到几个问题
- 自己遇到的几个问题,跟大家分享一下
- 在QtCreator中使用Qwt遇到的几个问题
- #关于apache POI 对Excel的下载 遇到的几个问题总结