请教关于JAVA数据类型的奇怪的问题 是不是基本数据类型只是简单的拷贝,而其他是传地址呢?yes那哪些数据类型是简单拷贝,哪些又是传地址的? Objects except String are 传地址, others are 简单拷贝String is a special type 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 问题解决了。1.Java 包括两种数据类型: 原始数据类型(primitive data type):int, byte, float, long, boolean ... 对象(Object):其他的都是对象,包括数组。2.每种 原始数据类型 都有一个相对应的包装类(Wrapper Class): 如 int 对应 Integer, float 对应 Float,有如下特性: 1)包装类里的数值是无法修改的 2)都有一个 构造方法,参数为 对应的原始数据类型,比如: new Integer (10), new Boolean (true) 3)都有一个 构造方法,参数为一个字符串,把字符串转换为值,比如: new Integer ("10"), new Boolean ("true") 4)有一个方法,可以把存在包装类里的值取出来: Integer.intValue(), Float.floatValue(); 5)有一个静态方法,不用创建一个对象就可以把字符串转换为值,比如: int i = Integer.parseInt("10");3.String 和 StringBuffer 每一个 Object 都有一个 toString() 函数。 Java 里使用 操作符重载的地方只有一个: + 操作: 如果两个操作数中有一个是 String,就调用另一个操作数的 toString,结果就变成 两个 String 的相加。 常用在 Exception 的处理中,比如: try { }catch (Exception e){ System.out.println ("Error: " + e); } 处理过程:"Error: " + e -> "Error: " + e.toString() 如果是 String 和 基本数据类型相加,就先把这个基本数据类型用他的包装类处理。 "String" + 123 -> "String" + Integer(123) -> "String" + Integer(123).toString() String + String 的过程,Java 的内部处理过程(1.4以后)实际上是这样的: "String1" + "String2" -> new StringBuffer("String1").append("String2").toString() 先建立一个 StringBuffer, 再用 append 计算,最后把 StringBuffer 转换成 String 原因是 String 是 不可修改的,StringBuffer 是可以修改的,字符串计算时还是用 StringBuffer 比较快所以,数据转换: int -> String String newValue = "" + 10; String -> int int i = (new Integer("10")).intValue(); int i = Integer.parseInt("10"); java通过Jolt调用Tuxedo服务,如何传输文件 eclipse怎么写网页程序 哪位大侠教下XDoclet的用法?? SAXException 一个人只用了9天写了22个JSP页面SpringMVC+hibernate做的网站 Hibernet连接oracle无法实例化ID 请问struts中的validwhen如何用? Quartz存储模式为容器管理模式所遇到的问题 网站首页js文件有冲突谁能解决一下啊。 linux上运行jar包,oracle数据库拒绝连接 高手请进!!!!! java 和数据库连接(用jtds)
原始数据类型(primitive data type):int, byte, float, long, boolean ...
对象(Object):其他的都是对象,包括数组。
2.每种 原始数据类型 都有一个相对应的包装类(Wrapper Class):
如 int 对应 Integer, float 对应 Float,有如下特性: 1)包装类里的数值是无法修改的 2)都有一个 构造方法,参数为 对应的原始数据类型,比如:
new Integer (10), new Boolean (true) 3)都有一个 构造方法,参数为一个字符串,把字符串转换为值,比如:
new Integer ("10"), new Boolean ("true") 4)有一个方法,可以把存在包装类里的值取出来:
Integer.intValue(), Float.floatValue();
5)有一个静态方法,不用创建一个对象就可以把字符串转换为值,比如:
int i = Integer.parseInt("10");
3.String 和 StringBuffer
每一个 Object 都有一个 toString() 函数。
Java 里使用 操作符重载的地方只有一个: + 操作:
如果两个操作数中有一个是 String,就调用另一个操作数的 toString,结果就变成
两个 String 的相加。 常用在 Exception 的处理中,比如:
try {
}catch (Exception e){
System.out.println ("Error: " + e);
}
处理过程:"Error: " + e -> "Error: " + e.toString() 如果是 String 和 基本数据类型相加,就先把这个基本数据类型用他的包装类处理。
"String" + 123 -> "String" + Integer(123) -> "String" + Integer(123).toString() String + String 的过程,Java 的内部处理过程(1.4以后)实际上是这样的:
"String1" + "String2" -> new StringBuffer("String1").append("String2").toString() 先建立一个 StringBuffer, 再用 append 计算,最后把 StringBuffer 转换成 String
原因是 String 是 不可修改的,StringBuffer 是可以修改的,字符串计算时还是用
StringBuffer 比较快所以,数据转换:
int -> String
String newValue = "" + 10;
String -> int
int i = (new Integer("10")).intValue();
int i = Integer.parseInt("10");