JAVA介绍
JAVA语言的特点
- 面向对象
Java 是一种面向对象的语言,它对对象中的类、对象、继承、封装、多态、接口、包等均有很好的支持。为了简单起见,Java 只支持类之间的单继承,但是可以使用接口来实现多继承。 - 平台无关性
平台无关性的具体表现在于,Java 是“一次编写,到处运行(Write Once,Run any Where)”的语言,因此采用 Java 语言编写的程序具有很好的可移植性,而保证这一点的正是 Java 的虚拟机机制。在引入虚拟机之后,Java 语言在不同的平台上运行不需要重新编译。 - 简单性
对 Java 来说,它舍弃了很多 C++ 中难以理解的特性,如操作符的重载和多继承等,而且 Java 语言不使用指针,加入了垃圾回收机制,解决了程序员需要管理内存的问题,使编程变得更加简单。 - 解释执行
Java 程序在 Java 平台运行时会被编译成字节码文件,然后可以在有 Java 环境的操作系统上运行。在运行文件时,Java 的解释器对这些字节码进行解释执行,执行过程中需要加入的类在连接阶段被载入到运行环境中。 - 多线程
Java 语言是多线程的,这也是 Java 语言的一大特性,它必须由 Thread 类和它的子类来创建。Java 支持多个线程同时执行,并提供多线程之间的同步机制。任何一个线程都有自己的 run() 方法,要执行的方法就写在 run() 方法体内。
JDK,JRE,JVM
- JDK解释
JDK(Java Development Kit)是一个提供开发和执行(运行) Java程序环境的工具包。JDK 是一个工具包(或包),包括两个东西:开发工具(提供开发Java程序的环境)和JRE(执行您的JAVA程序)。 - JRE解释
JRE(Java Runtime Environment)是一个安装包,它提供了一个环境,只在你的机器上运(而不是开发) java程序(或应用程序)。JRE 仅供那些只想运行作为系统最终用户的 Java 程序的人使用。 - JVM解释
JVM(Java 虚拟机) 是 JDK 和 JRE 的一个非常重要的部分,因为它包含或内置在两者中。无论你使用 JRE 还是 JDK 运行的 Java 程序都会进入 JVM,而 JVM 负责逐行执行 Java 程序,因此它也被称为解释器。
基本数据类型
八个基本数据类型
整数类型:byte,1字节,8位,最大存储数据量是255,存放的数据范围是-128~127之间。
整数类型:short,2字节,16位,最大数据存储量是65536,数据范围是-32768~32767之间。
整数类型:int,4字节,32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。
整数类型:long,8字节,64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。
浮点类型:float,4字节,32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。
浮点类型:double,8字节,64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。
字符型:char,2字节,16位,存储Unicode码,用单引号赋值。
布尔型:boolean,只有true和false两个取值
数据类型的转换
- 从小到大自动类型转换
- 从大到小需要强制类型转换,可能会丢失精度(装水的杯子大小不一样),byte->short(char)->int->long->float->double
运算符
单目运算符
++,- -,
双目运算符
+,-,*,/等;
三目运算符
?:
今日作业
闰年判断
public void JudgeLeapYear(){
Scanner cin = new Scanner(System.in);
int year = cin.nextInt();
if(year%400==0||(year%100!=0&&year%4==0)){
System.out.println(year+"年是闰年");
}else{
System.out.println(year+"年不是闰年");
}
}
交换两个数的值
public void ExchangeValue(){
Scanner cin = new Scanner(System.in);
int num1 = cin.nextInt();
int num2 = cin.nextInt();
System.out.println("没有交换时num1为"+num1+",num2为"+num2);
int temp = num1;
num1 = num2;
num2 = temp;
System.out.println("交换后的num1为"+num1+",num2为"+num2);
}
收银台程序
编写一个收银台收款程序,if定义输入----单价、数量、用户输入金额定义输出----应收金额、找零使用double类型变量 scanner.nextDouble();3.2、当总价>=500时候打八折3.3、考虑程序出现异常的情况,如:收款金额小于应收金额 若收款金额大于等于应收金额,则计算找零后输出 若收款金额小于应收金额,输出错误信息。
public void cash(){
Scanner cin = new Scanner(System.in);
System.out.println("请输入商品单价:");
double singleMoney = cin.nextDouble();
System.out.println("请输入商品数量:");
int number = cin.nextInt();
System.out.println("请输入用户付款金额:");
double money = cin.nextDouble();
double total = number*singleMoney;
if(total > money){
System.out.println("用户所付金额不足以支付所购买的商品");
}else{
if(total >= 500*1.0){
System.out.println("为用户找零:"+ (money-total)*0.8);
}else{
System.out.println("为用户找零:"+(money - total));
}
}
}