Java学习记录(第五天)
封装类
基本类型的类类型即为封装类
例如int的类是Integer
Number的子类有Byte,Short,Integer,Long,Float,Double
因此
package digit;
public class TestNumber {
public static void main(String[] args) {
int i = 5;
Integer it = new Integer(i);
//Integer是Number的子类,所以打印true
System.out.println(it instanceof Number);
}
}
自动装箱
如下
package digit;
public class TestNumber {
public static void main(String[] args) {
int i = 5;
//基本类型转换成封装类型
Integer it = new Integer(i);
//自动转换就叫装箱
Integer it2 = i;
}
}
自动拆箱
package digit;
public class TestNumber {
public static void main(String[] args) {
int i = 5;
Integer it = new Integer(i);
//封装类型转换成基本类型
int i2 = it.intValue();
//自动转换就叫拆箱
int i3 = it;
}
}
获取最大/最小值
package digit;
public class TestNumber {
public static void main(String[] args) {
//int的最大值
System.out.println(Integer.MAX_VALUE);
//int的最小值
System.out.println(Integer.MIN_VALUE);
}
}
练习
public class Main {
public static void main(String[] args) {
byte i=1;
Byte it=new Byte(i);
Byte its=i;
System.out.println("第一个箱子是"+it);
System.out.println("第二个箱子是"+its);
int i3=it;
int i4=its;
System.out.println("第一个箱子是"+i3);
System.out.println("第二个箱子是"+i4);
System.out.println(Byte.MAX_VALUE);
System.out.println(Byte.MIN_VALUE);
}
}
数字与字符串互转
没啥好记的就String.valueOf和封装类的方法
练习
public class Main {
public static void main(String[] args) {
double i=3.14;
String str=String.valueOf(i);
String str2="3.14";
double i2=Double.parseDouble(str2);
System.out.println(str+" "+i2);
}
}
Math的常用方法
public class Main {
public static void main(String[] args) {
float f1 = 5.4f;
float f2 = 5.5f;
//5.4四舍五入即5
System.out.println(Math.round(f1));
//5.5四舍五入即6
System.out.println(Math.round(f2));
//得到一个0-1之间的随机浮点数(取不到1)
System.out.println(Math.random());
//得到一个0-10之间的随机整数 (取不到10)
System.out.println((int) (Math.random() * 10));
//开方
System.out.println(Math.sqrt(9));
//次方(2的4次方)
System.out.println(Math.pow(2, 4));
//π
System.out.println(Math.PI);
//自然常数
System.out.println(Math.E);
}
}
练习
寻找10000000以内的质数的个数
int count=1;
for(int i=2;i<=10000000;i++){
int temp=(int)Math.sqrt(i);
for(int j=2;j<=temp;j++){
if(i%j==0)
break;
if(j>=temp) count++;
}
}
System.out.println(count);
计算自然对数
System.out.println(Math.E);
int n = Integer.MAX_VALUE;
System.out.println( Math.pow(1+1d/n,n));
格式化输出
如果不使用格式化输出,就需要进行字符串连接,如果变量比较多,拼接就会显得繁琐
使用格式化输出,就可以简洁明了
%s 表示字符串
%d 表示数字
%n 表示换行
练习
借助Scanner 读取字符串数据,然后用格式化输出下面
import java.io.OutputStream;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
System.out.println("请输入地名");
Scanner str=new Scanner(System.in);
String addr=str.nextLine();
System.out.println("请输入公司类型");
String type=str.nextLine();
System.out.println("请输入公司名");
String name=str.nextLine();
System.out.println("请输入老板名");
String boss=str.nextLine();
System.out.println("请输入金额");
int sum=str.nextInt();
System.out.println("请输入产品");
String product1=str.nextLine();
String product=str.nextLine();
System.out.println("请输入价格单位");
String unit=str.nextLine();
String sentence="%s最大%s%s倒闭了,王八蛋老板%s吃喝嫖赌,欠下了%d个亿,带着" +
"他的小姨子跑了!%n我们没有办法,拿着%s抵工资!原价都是一%s" +
"多、两%s多、三%s多的%s,现在全部只卖二十块,统统只要二十块!%n%s王八蛋" +
",你不是人!我们辛辛苦苦给你干了大半年,你不发工资!%n你还我血汗钱,还" +
"我血汗钱!";
System.out.printf(sentence,addr,type,name,boss,sum,product,unit,unit,unit,product,boss);
}
}
今日有些怠惰,就到这里吧!
关于我的学习资源可以看我上一条blog
Java学习日记(Day4)
希望有正在一起学习Java的朋友一起交流!