越学越不懂了

javagodness 2005-02-25 03:46:11
import java.io.*;
public class StringTest
{
public static void main(String[] args)
{
String aString = "这是一个测试串,This is a test string.";
String anotherString = null;
try {
anotherString = new String(aString.getBytes("GBK"), "ISO8859_1");
}
catch (UnsupportedEncodingException ex) {
}
System.out.println(aString.length() + "," + anotherString.length());
}
}
问题一,

String anotherString = null; 这个是什么意思呢?
问题二,
catch (UnsupportedEncodingException ex) {
}是什么意思呢
问题三,aString.getBytes("GBK"), "ISO8859_1"); 这个是什么意思呢?
...全文
170 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
billzhangmingming 2005-02-25
  • 打赏
  • 举报
回复
同意楼上的,第一个问题中anotherString只是一个引用,不存在置空的概念,只能说是这个指镇并不指向一个实在的对象。
longwing 2005-02-25
  • 打赏
  • 举报
回复
楼上的错了 不是初始化的时候让对象为空 而是根本没有建立对象 对象是通过new关键字建立的 anotherString本身是一个引用而不是对象 这句话的意思是让引用指向空 也就是不指向任何对象 因为局部变量(属于方法的变量)不是自动赋初值的 所以要用=null来初始化这个变量 如果是域变量(可以有private /public/package/protected等定义符的)不用加=null 因为JVM在new对象的时候会自动把域变量初始化为0。
问题二:catch(UnsupportedEncodingException ex) 是捕获一个异常 这个异常应该是叫做“不支持的字符编码集”
问题三: 自己查API吧 这个都不会的话....

zxmzfbdc 2005-02-25
  • 打赏
  • 举报
回复
String anotherString = null; 这个是什么意思呢?
问题二,catch (UnsupportedEncodingException ex) {}是什么意思呢
问题三,aString.getBytes("GBK"), "ISO8859_1"); 这个是什么意思呢?

第一个,anotherString置为空,不指向任何对象,也就不分配内存;
第三个,实际上是在转码,将原来是是GBK编码的字符串,转成是ISO8859_1编码的字符串;
第二个,是捕捉异常,因为转码的时候,有可能JAVA不支持指定的编码方式,如果不支持,就会抛异常,所以要捕捉。
role0523 2005-02-25
  • 打赏
  • 举报
回复
对于问题一,String是一个对象,不是一个数据类型,
String anotherString = null,是在初始化的时候让这个对象为空,不占内存
whyandwhat 2005-02-25
  • 打赏
  • 举报
回复
楼上说对的
lookahead99 2005-02-25
  • 打赏
  • 举报
回复
问题 一 String anotherString = null,给用到的串赋予初值null,反正比直接定义算是好的习惯。

问题2。 和问题3是一起的么
就是将字符串编码从 gbk 变成ISO8859_1啊 ,UnsupportedEncodingException 的意思看字面也能明白啊因为有些时候需要给某些接口传递ISO8859_1编码的字符串比如说用jdbc连接数据库时传递的数据
chinajava 2005-02-25
  • 打赏
  • 举报
回复
一个问题给10分!先给30分的说!

62,634

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧