一、装箱和拆箱
- 基本类型和包装类的自动转换
- Integer intObject = 5;
- int intValue = intObject;
- 装箱:基本类型转换为包装类的对象
- 拆箱:包装类对象转换为基本类型的值
包装类的特点
- JDK1.5后,允许基本数据类型和包装类型进行混合数学运算
- *包装类并不是用来 **取代 ** 基本数据类型的
-在基本数据类型需要用对象表示时使用
Math类
- java.lang.Math类提供了常用的数学运算方法和 两个静态常量E(自然对数的底数)和PI(圆周率)
- Math.abs(-3,5); //返回
- Math.max(2.5,90.5); //返回90.5
- int random = (int)(Math.random()*10); //生成一个0-9之间的随机数
具体实例
package cn.lch.common;
import java.util.Scanner;
public class MathDemo {
//会员随机中奖:会员号百位数 == 计算机随机生成的数字
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int random = (int)(Math.random()*10); // *10随机生成0(包含)-10之间的浮点数
System.out.println(random);
System.out.println("请输入一个四位的会员号:");
int num = input.nextInt();
int baiwei = num/100%10;
System.out.println(baiwei);
if(baiwei == random){
System.out.println("中奖了!");
}else{
System.out.println("没中奖!");
}
}
}
Random类
- 生成随机数的其他方式?
-java.util.Random类
具体代码
System.out.println("******************");
Random rand = new Random(); //创建一个Random对象
for(int i=0;i<20;i++){
int num2 = rand.nextInt(10); //返回下一个伪随机数,整型的
System.out.println("第"+(i+1)+"个随机数是:"+num2);
}
示例
package cn.lch.common;
import java.util.Random;
public class RandomDemo {
public static void main(String[] args) {
Random random = new Random();
System.out.println(random.nextInt()); //无参方法,输出一个随机整数,超出int范围
Random random2 = new Random();
System.out.println(random2.nextInt(10));//有参方法,随机数范围输出在0-参数
/* for(int i = 1;i<=30;i++){
Random random3 = new Random();
System.out.println("第"+i+"个随机数:"+random3.nextInt(12));
}*/
//不同的种子构造的Random对象生成的随机数是不同的,无参也算不同种子
Random random4 = new Random();
Random random5 = new Random();
System.out.println(random4.nextInt(10));
System.out.println(random5.nextInt(10));
//相同的种子构造的Random对象生成的随机数是一样的
Random random6 = new Random(55);
Random random7 = new Random(55);
System.out.println(random6.nextInt(10));
System.out.println(random7.nextInt(10));
//因此综上通常情况下构造Random构造种子一般是时间的秒数,随时间的改变而改变
}
}
String类
length()方法
equals()方法
栈、堆、字符串池
String str1 = "hello";
String str2 = new String("hello");//因为字符串是引用类型,检查后,发现字符串里已经有“hello”了,因此将该内容放在堆里
System.out.println(str1.equals(str2)); //结果:true
System.out.println(str1 == str2); //结果:false
String str1 = "hello";
String str2 = new String("Hello");
System.out.println(str1.equals(str2)); //结果:false
System.out.println(str1 == str2); //结果:false
具体实例
package cn.lch.strdemo;
import java.util.Scanner;
//字符串常用方法:length()---方法 注意其与数组的length---属性的区别
//wquals()方法:比较两个字符串内容是否相等
public class Register {
public static void main(String[] args) {
String pwd;
String userName;
Scanner input = new Scanner(System.in);
do{System.out.println("请输入用户名:");
userName = input.next();
System.out.println("请输入密码:");
pwd = input.next();
if(pwd.length()<6){ //String类提供了length()方法,确定字符串的长度,返回字符串中的字符数
System.out.println("注册密码不足六位,请重新注册!");
}else{
System.out.println("注册成功!");
}
}while(pwd.length()<6);
String userName2;
String pwd2;
do{ System.out.println("*****************");
System.out.println("请输入用户名:");
userName2 = input.next();
System.out.println("请输入密码:");
pwd2 = input.next();
if(pwd2.length()<6 || !userName2.equals(userName)){ //String类提供了length()方法,确定字符串的长度,返回字符串中的字符数
System.out.println("用户名或密码输入错误,请重新输入!");
}else if(userName.equals(userName) && pwd2.equals(pwd)){
System.out.println("登录成功!");
}else{
System.out.println("用户名或密码输入错误,请重新输入!");
}
}while(!pwd2.equals(pwd) || !userName2.equals(userName) || pwd2.length()<6);
}
}