Java基本程序设计结构
1.字符串
1.子串
String greeting="hello";
String S=greeting.substring(0,3),第二个参数是不想复制的第一个位置,即复制0,1,2位
substring(a,b);
容易计算子串长度。b-a
2.拼接
可以使用+拼接两个字符串
String expletive="Expletive";
String PG13="deleted";
String message=expletive+PG13;
output:Expletivedeleted;
将一个字符串和一个非字符串链接起来时,后者被转化成字符串(toString)
3.不可变字符串(immutable)
String类没有直接修改字符串的方法。不可变字符串的一个优点是可以共享,如果复制一个字符串变量,原始字符串和复制的字符串将共享相同的字符。
4.检测是否相等
s.equals();//“Hello“.euqals(greeting);
s.equalsIgnoreCase();//忽略大小写
==用于检测字符串常量是否共享同一个字符串,即内存地址是否相同,+,substring产生的结果不共享。
5.空串于null
空串“”是长度为0且内容为空的字符串
检查:str.length()==0 str.equals(" ");
String 存储null时表示没有任何对象和该变量关联。
6.构建字符串
使用字符串连接的效率较低。每次连接字符串都会构建一个新的String对象,既耗时,又浪费空间。
可使用StringBuilder或者StringBuffer,执行速度前者快于后者。
StringBuilder builder=new StringBuilder();
builder.append(ch); //返回值也是builder类型,即可以使用方法调用链builder.append(ch).append(ch).append(ch).append(ch).
builder.append(zh);
2.循环控制
1.switch-case中case标签还可以是字符串字面量
switch(input.toLowerCase());//byte,short,int,char.enum,String
2.带标签的break语句
readdata:
while(){
for(){
if(...)
break readdata
}
}
3.大数值(BigInteger/BigDecimal )任意精度的整数运算
需使用add或者mulitply方法。
BigInteger d=c.mulitply(b.add(BigInteger.valueOf(2)).divide(BigInteger.valueOf(e)));d=c*(b+2)/e
4.数组
不能改变其大小,如果经常要扩展大小,可使用ArrayList;
1.for each循环
for(variable : collection){
statement;
}
example:
for(int element:a){ //a里面的每个int类型的element
System.out.println(element);
}
快速输出System.out.println(Array.toString(a));[1,2,3,4,5]
2.数组拷贝
int [] copiedLuckyNumbers =Array.copyOf(luckyNumbers,luckyNumbers.length());
第2个参数是新数组的大小,此方法通常用于增加数组的大小。
3.多维数组
for(int i=0;i<b.length;i++){
for(int j=0;j<b[i].length;j++){
statement
}
}
多维数组的for-each
for(double[] row:a)
for(double value:row)
statement
example:
for(double []row :balance)//balance为一个数组
for(double b:row)//循环数组的行
System.out.print(b);//循环数组行中的元素。
Java实际上没有多维数组,只有一维数组,多为数组是数组的数组。
balance[i]引用第i个子数组,即二维表i行,balance[i][j]引用i行的j项
第一维数组存储的是第二维数组的地址。
对象与类
1.面向对象
1.对象是类的一个实例
example:
class boy(){
boy1,boy2,boy3...
}
2.成员变量,局部变量,方法(对变量进行的操作)
3.对象变量可以引用Date类型的对象,但它本身不是一个对象。必须先用构造器初始化这个变量
Date deadline;
deadline.//error
Date deadline=new Date();//right
对象变量没有实际包含一个对象,仅仅是引用一个对象。
4.