1.什么是变量?
答:内存单元名字,通过名字确定找到相应的值
2.基本数据类型,String 不是基本数据类型
byte < short < char < int < long < float < double
高精度不可直接赋值给低精度,需要强制转换
如:
double d = 123;
long l = (long) d;
3.基本数据类型与字符串之间的转换
1)基本->字符串
String.valueOf(各种基本类型)
2)字符串->基本
Integer.parseInt
Float.parseFloat
Double.parseDouble
问题:以String转换成int为例数据类型转换parse与valueOf区别?
答:static int parseInt(String s) 将字符串作为有符号的十进制整数(int)进行分析;static Integer valueOf(String s) ,返回保持指定的String的值得Integer对象
问题:Integer与Integer比较,Integer与int比较是否相同?
Integer与Integer不能使用==比较是否相同,使用compareTo方法,但是int与Integer可以使用==比较,JRE会自动把Integer转成int 型然后比较,
4.java中的equals(), == , compareTo(), compare()
参考自:http://blog.csdn.net/emmagood/article/details/7904571
比较方法:变量使用==比较,比较的是变量的值;对象使用==比较,比较的是地址;地址比较(.equals());asc码比较(.compareTo())
比较内容:数值或地址(引用),地址(引用),位
1)== ,可作各个基本类型数据之间的比较,即数值比较2)比较两个对象,比较的是引用(地址比较),不是数值比较,因此不能用==,比较对象方法
a)Object的booleanequals(Object obj),重写该方法
b)Compare接口的compareTo()方法,返回int数值 , 若<0表示小于, 若0表示==, 若>0表示大于; String,Integer,Float,Date,Time等都实现了Compare接口,因此能直接调用compareTo()方法。compareto方法,返回参与比较的前后两个字符串的asc码的差值。会对每一位依次进行比较
是否相同
package com.danny.test;
public class EqualTest {
public static void main(String[] args){
String a = "abcde";
String b = "e";
System.out.println(a.compareTo(b));
}
}
打印结果为:-4
为String a,b的首字符的asc码的差值 = 97-101 = 4
注: Integer.valueOf(a) 为97; Integer.valueOf(e)为101
3)最后compare()是Comparator接口的一个方法。最为常见的用法是自定义一个类实现Comparator接口,然后在调用Collection.sort()时作为参数传递。这样可以在compare()方法的实现中指定集合元素的排序规则。