面向对象编程(五)——eclipse的使用以及Java内置的基础库类
Eclipse快捷键
- alt+?或alt+/:自动补全代码或者提示代码
- ctrl+d:删除当前行
- ctrl+page down或ctrl+page up: 选项卡之间快速切换
- Alt+方向键上下:上下行交换内容或把当前行内容把上或下移动
- ctrl+/:自动注释当前行或者被选中的多行 (再次按下取消注释)
- ctrl+shift+/:自动注释掉选择的代码块 ctrl+shift+\:取消注释
- ctrl+shift+o:自动引入包和删除无用包
- 先alt+shift+s再按f键:格式化代码(使代码按格式对齐)
toString方法
- 默认的作用就是取得对象的内存地址(引用)
- 当把一个对象当作字符串使用时,默认会调用toString()方法
学习Java推荐书籍:
- Head First Java (比较卡通形象,可以没有任何编程经验的人看)
- Java疯狂讲义(比较详细)
- Java编程思想(比较深入)
- Java从入门到精通(比较简略)
Scanner
- s.hasNextXXX(); //判断下一个是否为XXX类型
- s.next();// 获取到用户输入的字符串
- s.nextXXX();//获取到用户输入的XXX类型的字符串,如用户输入的字符串中没有XXX类型的字符串,则会抛出异常。
案例理解: 让用户输入用户名和密码以及年龄,判断是否注册成功。
import java.util.Scanner;
public class ScannerTest {
public static void main(String[] args){
Scanner s=new Scanner(System.in);
String username=null;
String password=null;
int age=0;
System.out.println("请输入用户名:");
username=s.nextLine();//返回的是输入回车之前的所有字符
System.out.println("请输入密码:");
password=s.nextLine();
System.out.println("请输入年龄:");
while(s.hasNextInt()==false){
System.out.println("你输入的不是年龄");
s.next();//接收到用户已输入的不是数字的数据,这样用户就可以继续输入
}
age=s.nextInt();
System.out.println("注册成功:"+username+password+age);
}
}
String、StringBuffer和StringBuilder
- String字符串的构造(一旦被赋值不能被修改)
- StringBuffer和StringBuilder可以创建一个可以被修改的字符串
- StringBuffer和StringBuilder使用起来基本相同
- StringBuffer和StringBuilder的区别: StringBuffer线程安全,但是性能略低。StringBuilder线程不安全但是性能略高。
- 字符串的存储,在内存里面JDK9之前使用char数组存储,JDK9里面使用byte数组存储。
Arrays数组工具类
import java.util.Arrays;
public class ArraysTest {
public static void main(String[] args){
int[] a={34,456,48,487,45,122};
Arrays.sort(a);//排序
int index=Arrays.binarySearch(a, 45);//确认某个数在数组内的位置(必须先排序才可以调用)
System.out.println(index);
}
}
Math数学类
- PI //圆周率
- E //自然对数的底数
- 三角函数相关方法
1. round(x): 四舍五入
2. sqrt: 平方根
3. pow(x,y): 乘方x的y次方
4. abs(x): 取绝对值
5. ceil: 向上取整 //当小数部分为1-9时,取值为整数部分加1。例:Math.ceil(3.1)=4;当小数部分为0时,取整数部分值。例Math.ceil(3.0)=3
6. floor 向下取整 //当小数部分为0-9时,取值为整数部分。例:Math.floor(4.6)=4
7. max(x1,x2) 求最大值
8. min(x1,x2) 求最小值
9. random() 生成随机数,默认范围[0,1)public class MathTest { public static void main(String[] args) { System.out.println(Math.random());//生成随机数,默认范围[0,1) System.out.println(Math.random()*5);//生成随机数,范围为[0,5) System.out.println(Math.floor(Math.random()*5));//生成随机数,范围为[0,5)之间的整数 System.out.println((int)(Math.random()*5));//生成随机数,范围为[0,5)之间的整数 System.out.println((int)(Math.random()*3)+6);//生成随机数,默认范围[6,8) } }
BigDecimal类:做精确的加减乘除运算
1. 创建
①BigDecimal f1 = new BigDecimal(“0.05”);//首推
②BigDecimal f2 = BigDecimal.valueOf(0.01);//次推,会有小误差
③BigDecimal f3 = new BigDecimal(0.05);//不推荐使用
2. 使用
①add //加法运算
②subtract //减法运算
③multiply //乘法运算
④divide //除法运算
关于Date、Calendar 日期和时间相关类
1. Date d = new Date(); //创建一个当前时间的日期类
2. Calendar calendar = Calendar.getInstance(); //创建一个当前时间,获取到的数据内容比Date的更全
基本类型包装类
基本类型的包装类 | 基本类型 |
---|---|
Byte | byte |
Short | short |
Integer | int |
Long | long |
Float | float |
Double | double |
Character | char |
Boolean | boolean |
特殊的包装类: BigInteger可以表示任意大小的整数
包装类常用操作
- 基本类型数据和字符串之间的转换
- intValue 成员方法,获取到包装类所拥有的值
- parseInt 静态方法,把字符串转换为数字
- toString 静态方法,把数字转换为字符串
- valueOf(int i) 静态方法,把一个整数转换为包装类对象
- valueOf(String s) 静态方法,把字符串转换为包装类对象
自动拆箱和装箱
1. 装箱: Integer i = 100;//=Integer.valueOf(100);当基本类型赋值给引用类型时,它会把基本类型100装箱赋值给i
2. 拆箱:
Integer i=100; //装箱 =Integer.valueOf(100);
i+=100; //i=i.intValue()+100; 先拆箱再装箱