- 修正 Test1.java 、 Test2.java 、 Test3.java 、 Test4.java ,四个java源文 件中的错误,使其能够编译和运行;
public class Test1 {
public static void main(String[] args) {
System.out.println("What's wrong with this program?");
}
}
public class TestAnother1 {
public static void main(String[] args) {
System.out.println("What's wrong with this program?");
}
}
/**
*删除TestAnother1类的public修饰符。因为public表示的是这个.java文件中存在公开的对外接口,
*.java文件编译形成.class文件后,类加载器加载这个类时,就会根据类的全限定名到指定包下的类中,
*然后进入public修饰的类中的固定入口main方法去执行代码。
*所以public修饰的类必须和文件名相同,并且只能有一个类被public修饰。
*/
public class Testing2 {
public static main(String[] args) {
System.out.println("What's wrong with this program?");
}
}
/**
*1.把Testing2修改成Test2,或者把Test2.java文件修改成Testing2.java。
*2.main方法要加上返回类型void,只有构造器没有返回值类型。
*/
public class Test3 {
public static void main(String args) {
System.out.println("What's wrong with this program?");
}
}
/**
* main方法的形参(String类型)String要改成(String数组类型)String[]或者(可变参数列表)String...。
*/
public class Test4 {
public void main(String[] args) {
System.out.println("What's wrong with this program?");
}
}
/**
* main方法要加上static修饰符。因为static修饰的方法不需要实例化对象就可以调用,main作为程序入口不可能先对其实例化,
* 所以用static修饰就可以实现类名.方法名的方法直接调用。
*/
- 找零问题:有2元,买东西花了1.1元,问找零多少?
package com.briup.day01;
import java.math.BigDecimal;
/*
* 找零问题:有2元,买东西花了1.1元,问找零多少?
*/
public class Test2 {
public static void main(String[] args) {
// System.out.println(2-1.1);//0.8999999999999999
// int a = 2;
// float b = 1.1f;
// double c = 1.1;
// System.out.println("找零="+(a-b));//0.9
// System.out.println("找零="+(a-c));//0.8999999999999999
BigDecimal bg1 = new BigDecimal("2");
BigDecimal bg2 = new BigDecimal("1.1");
System.out.println("找零:"+bg1.subtract(bg2));
}
}
直接输出(2-1.1)时,2默认是int类型,1.1默认是double类型;但1.1不能精确的表示成一个double
1.把1.1定义成和int相同字节数的float;
2.BigDecimal类的方法:加法add,除法divide,乘法multiply,减法subtract。
3.贪心算法
-
基本类型和引用类型的区别?
核心区别:是否可以指向对象。
(1)基本数据类型:
值是不可变的;
不可以添加属性和方法;
赋值是简单赋值;
基本数据类型的比较是值的比较;
存放在栈区中。
(2)引用类型:
值可以改变的;
可以添加属性和方法;
赋值是对保存在栈区中的引用的赋值;
引用类型的比较是比较引用指向的地址值是否相等;
引用类型同时保存在栈区和堆区中:栈区中保存的是变量的标识符,堆区中保存的是变量的地址值。 -
使用多条System.out.println语句输出以下内容
要求: 1)实现表头, 是固定数据,直接写输出语句
2)表格中间, 商品数据,采用变量形式 定义变量,找对数据类型,输出所有变量
3)表格尾巴, 一部分数据固定,另一部分,商品数据进行数学计算
package com.briup.day01;
import java.math.BigDecimal;
/*
* 4.使用多条System.out.println语句输出以下内容
----------商品库存清单----------
品牌型号 尺寸 价格 库存数
MacBookAir 13.3 5699.0 5
ThinkPadT490 14.0 8499.0 10
MateBook 14 14.0 7199.0 18
-----------------------------
总库存数:33
商品库存总金额:243067.0
* 要求: 1)实现表头, 是固定数据,直接写输出语句
* 2)表格中间, 商品数据,采用变量形式 定义变量,找对数据类型,输出所有变量
* 3)表格尾巴, 一部分数据固定,另一部分,商品数据进行数学计算
*/
public class Test4 {
public static void main(String[] args) {
System.out.println("----------商品库存清单----------");
System.out.println("品牌型号" + "\t" + "尺寸" + "\t" + "价格" + "\t" + "库存数");
String brand1 = "MacBookAir";
String brand2 = "ThinkPadT490";
String brand3 = "MateBook 14";
double size1 = 13.3;
double size2 = 14.0;
double size3 = 14.0;
// double price1 = 5699.0;
// double price2 = 8499.0;
// double price3 = 7199.0;
// int num1 = 5;
// int num2 = 10;
// int num3 = 18;
BigDecimal price1 = new BigDecimal("5699.0");
BigDecimal price2 = new BigDecimal("8499.0");
BigDecimal price3 = new BigDecimal("7199.0");
BigDecimal num1 = new BigDecimal("5");
BigDecimal num2 = new BigDecimal("10");
BigDecimal num3 = new BigDecimal("18");
System.out.println(brand1 + "\t" + size1 + "\t" + price1 + "\t" + num1);
System.out.println(brand2 + "\t" + size2 + "\t" + price2 + "\t" + num2);
System.out.println(brand3 + "\t" + size3 + "\t" + price3 + "\t" + num3);
System.out.println("-----------------------------");
BigDecimal count = num1.add(num2).add(num3);
System.out.println("总库存数:" + count);
BigDecimal sum = (num1.multiply(price1)).add(num2.multiply(price2)).add(num3.multiply(price3));
System.out.println("商品库存总金额:" + sum);
// int count = num1 + num2 + num3;
// System.out.println("总库存数:" + count);
// double sum = price1 * num1 + price2 * num2 + price3 * num3;
// System.out.println("商品库存总金额:" + sum);
}
}