Java核心技术8总结(一)
1、常量
(1) main中的常量 final int a=1;
(2) 类常量 private final int a=1; 同一个类的其他方法中也可以使用这个常量.如果声明为:public ,刚其它类的方法也可以使用这个常量。
2、Java数据类型
float 4 字节 32位IEEE 754单精度有效数字6-7位
double 8 字节 64位IEEE 754双精度有效数字15位
byte 1字节 8位 -128到127
short 2 字节 16位 -32,768到32,767
int 4 字节 32位 -2,147,483,648到2,147,483,647
long 8 字节 64位-9,223,372,036,854,775,808到9,223,372,036, 854,775,807
char 2 字节 整个Unicode字符集
boolean 1 位 True或者false
3、代码点与代码单元
(1)Length 代码单元数量 如:
(2)实际的长度,即代码点数量 codepointcount
(3)s.charAt(n) 将返回位置n的代码单元,n介于0~s.length()-1之间
(4)要想得到第i个代码点,应该使用下列语句
也可直接使用 int cp=greeting.codePointAt(i); i介于0~s.length()-1之间
4、构建字符串
用字符串连接的方式达到此目的效率比较低。每次连接字符串,都会构建一个新的String对象,既耗时,又浪费空间。使用StringBuilder类就可以避免这个问题的发生
StringBuilder builder=new StringBuilder();
builder.append(a);
builder.append(b);
System.out.println(builder.toString());
构造一个空的字符串构建器。
返回构建器或缓冲器中的代码单元数量。
StringBuilder append(String str)
|
追加一个字符串并返回this。
StringBuilder append(char c)
|
追加一个代码单元并返回this。
StringBuilder appendCodePoint(int cp)
|
追加一个代码点,并将其转换为一个或两个代码单元并返回this。
void setCharAt(int i,char c)
|
将第i个代码单元设置为c。
StringBuilder insert(int offset,String str)
|
在offset位置插入一个字符串并返回this。
StringBuilder insert(int offset,Char c)
|
在offset位置插入一个代码单元并返回this。
StringBuilder delete(int startIndex,int endIndex)
|
删除偏移量从startIndex到-endIndex-1的代码单元并返回this。
返回一个与构建器或缓冲器内容相同的字符串。
5、使用扫描器
Scanner scanner=new Scanner(System.in);
System.out.println("please add you name:");
String name=scanner.nextLine();
System.out.println("how old are you:");
int age=scanner.nextInt();
System.out.println("hello,"+name+",you age is "+age);
检测输入中是否还有其他单词。
boolean hasNextInt( )
boolean hasNextDouble( )
|
检测是否还有表示整数或浮点数的下一个字符序列。
6、大数的计算
如果基本的整数和浮点数精度不能够满足需求,那么可以使用java.math包中的两个很有用的类:BigInteger和BigDecimal。这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现了任意精度的整数运算,BigDecimal实现了任意精度的浮点数运算。
BigInteger add(BigInteger other) 和
BigInteger subtract(BigInteger other) 差
BigInteger multiply(BigInteger other) 积
BigInteger divide(BigInteger other) 商
BigInteger mod(BigInteger other) 余
int compareTo(BigInteger other) 相等返回0,小于返负,大于返正
7、数组
(1) 将一个数组变量拷贝给另一个数组变量。这时,两个变量将引用同一个数组。
(2) 如果希望将一个数组的所有值拷贝到一个新的数组中去,就要使用Arrays类的copyOf方法:
System.arrycopy(a,0,b,2,1) //将a数组从0开始的值复制到b数组从2开始的值,共复制1个。
(3)彩票原理
Int n=???
Int[] num=new int[n];
For(int i=0;i<n;i++)
{
Num[i]=i+1;
}
Int[] res=new int[k];
For(int i=0;i<res.length;i++){
Int r=(int)(math.random)*n;
Res[i]=num[r];
Num[r]=num[n-1];
n--;
}
Arrays.sort(res);
For(int r:res){
System.out.println(r);
}
posted on 2009-04-13 13:02
重庆理工小子 阅读(361)
评论(0) 编辑 收藏 所属分类:
JAVA基础