java学习日记(17-18)

########## day17 包装类 System Math BigInteger Arrays #########
构造方法 把字符串转换成int
Integer in = Integer(String);
int val = in.intValue();

int val = Integer.parseInt(String) 把字符串转换成int
1 String s = i + "" 把int转换成字符串
2 String s1 = Integer.toString(int)

静态成员变量 MAX_VALUE MIN_VALUE
进制的转换 String s = Integer.toBinaryString(int);

自动装箱:基本数据类型变对象 Integer in = 1; //escially Integer in = new Integer(1)
自动拆箱:对象变为基本数据类型 in = in + 1; // in.intValue() + 1

当数据在byte范围内,jvm不会重新new对象
Integer aa = 127;
Integer bb = 127;
aa == bb true

Integer aa = 128;
Integer bb = 128;
aa == bb false

# System class
构造函数为private 不能实例化对象
exit() 退出虚拟机
Properties getProperties() 获取系统的属性 file.separator

arrayCopy(src, srcIndex, des, desIndex, length)
从src目标数组的开始索引srcIndex,复制到目标数组des的desIndex位置,共复制length个
# Math class
Math.abs() absolute value
Math.pow(double a, double b)
Math.max(double a, double b)
Math.min(double a, double b)
Marh.sqrt(double a)
Math.random() 0.0-1.0
Math.round(double a) 四舍五入

# Arrays tools
Arrays.binarySearch(array, value) 若没有找到返回 -插入点-1
int index = Arrays.sort(array)
String toString(array) 打印数组

# 大数运算
java.math package
BigInteger b1 = new BigInteger(String)
BigInteger addSum = b1.add(b2)
b1.subtract(b2)
multiply() divied()

BigDecimal
System.out.println(0.09+0.01); 0.9999999999999999
计算机内浮点数精度

divide(Bigdecimal divisor, int scale, int roundingMode)
scale 保留几位小数 roundingMode 保留模式(参看API)

################ day18 迭代器 集合 #######################
Collection 根接口
add()
void clear(),只删除元素,容器还在
boolean contains(Object obj); 判断对象是否在集合中
Object[] toArray() 集合转换成对象数组
boolean remove(Object obj) 有则删除第一个,无则不删除

数组.length 属性
字符串.length() 方法
集合.size() 方法
# iterator接口
初始迭代器指向-1
boolean hasNext() 判断集合中还有没有元素
元素 next() 移动指针
Collection 中定义了抽象方法 Iterator iterator() ,子类重写此方法

Collection<String> coll = new ArrayList<String>();
Iterator<String> it = coll.iterator();

while(it.hasNext())
{
String s = it.next();
System.out.println(s);
}

Collection coll = new ArrayList(); //不写类型默认为Object
Iterator it = coll.iterator()
# foreach
JDK 1.5 以后Collection 继承 java.lang.Iterable
所有实现该接口的都可使用foreach

for(数据类型 变量:数组或集合)
{ } 没有索引,只能遍历,类似于python中的for in

泛型和C++中模板思想一致
public class ArrayList<E>
{
public static add(E e)
{}
}
<? extends Employee > 可以传递Employee及子类,上限
<? super Employee> 可以传递Employee及父类,下限

WE ARE ALL IN THE GUTTER, BUT SOME OF US ARE LOOKING AT THE STARS
原文地址:https://www.cnblogs.com/YKang/p/7272178.html