for(int i=0;i<10;i++){
tt[i] = new a();
}
这段代码怎么放在这里呢?应该放在析构函数里吧。String b=a;
a=null;
tt[i] = new a();
}
这段代码怎么放在这里呢?应该放在析构函数里吧。String b=a;
a=null;
解决方案 »
- JSP中能用request.setAttribute向Servlet传递数据吗?
- web services错误。
- java怎么把png图片转化成gif图片
- jsp新手提问:'MSXML2.XMLHTTP.3.0 组件的open 方法总是返回 80020101 错误是什么原因?
- java中如何取得硬盘的使用率..急急急急急------在线等
- 两个Web服务器间利用Servlet定时传输文件
- java 视频有效期的实现
- 关于从数据库读出空值问题
- webservice 通过 axis 1.4 调用接口,报错,请大侠们指点下问题在哪里
- Spring Boot 中必须掌握的 45 个注解
- jsp 的forward 标志如何重定向到一个servlet
- 这个报错大概是什么原因呢,急,在线等~~~
{}
for(int i=0;i<10;i++){
tt[i] = new a();
}
初始化tt这段并没有执行,放在构造函数就大概就ok了
到于后面一个问题,我想你以前学c的吧,java里都是句柄(你可能"想成"是指针),你所说的a,b,都是句柄,不是实实在在的字符串(若你指的是string的话),你说的释放是指释放堆里分配的字符串呢还是指释放a这个句柄?
若你是想弄出两个字符串来(在堆里分配两个),String a=new String("xxx");
String b=new String(a);
至于你要释放堆里的内存(代表a句柄这个),那是java自己的垃圾收集器的事,因为它没有对c++中delete对应的函数, 有个finalize(),是根类object中的,意思和c++中的destructor差不多吧
if(rs.getString("name")==null){
System.out.println("no1");
}else{
System.out.println(rs.getString("name"));
}
运行错误!
应该怎么做?我原来想把a = rs.getString("name");结果不对.
后来有人向我提议
a = new String(rs.getString("name"));
这样可以了,但如果name列是空的话又出错了...
if(rs.getString("name")==null){
System.out.println("no1");
}else{
System.out.println(rs.getString("name"));
}
运行错误.....
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7060)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3862)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:
5561)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:338) at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:395) at sqlexe.main(sqlexe.java:26)
rs.getString("name")
的?
String name = rs.getString("name");
if (name == null) {
System.out.println("no1");
}else{
System.out.println(name);
}
把一个字符串a完全拷贝到字符串b里面去,然后安全的释放掉a ,而b里面的内容保留不变.
String name = rs.getString("name");
if (name == null) {
System.out.println("no1");
}else{
System.out.println(name);
}
rs.getString("列名");
是只能用一次的!