1.变量:存储数据的空间
2.变量的三要素:
变量名:方便找到变量中存储的数据
数据类型:不同的数据类型对应存储不同的数据
常见的数据类型:int double char String
变量值:变量中存储的数据
3.变量的使用
1.声明变量 数据类型 变量名;
int money;
2.给变量赋值 变量名=变量值;
money = 50;
//变量声明并赋值(二合一)
//int money = 50;
double hours = 3.5;
char sex = '男';
String name = "帅哥";
3.使用变量 (通过变量名找到变量中存储的数据)使用变量时不加双引号
System.out.println("我每天消费"+money+"元");
4.变量命名规范
1.首字母必须以_、英文字母(A-Z、a-z)、$开头,后面可以跟(_、英文字母(A-Z、a-z)、$、数字)
2.不能使用Java关键字(public class int double)
3.见名识义(姓名-name 性别-gender、sex 分数-score 年龄-age 地址-address 年级-grade 编号-id)
4.变量的首字母小写,之后每个单词的首字母大写 eg:stuName stuId
5.变量使用的常见错误
1.变量必须先声明并赋值后才能进行使用(声明变量没有赋值 、 变量赋值没有声明)
2.变量名不合法
3.Java严格区分大小写,变量不能重复声明(变量名相同)
6.运算符
1.赋值运算符
"=":把等号右边表达式的值赋给等号左边的变量
"+":1.表示两个数相加(+号两边都为数值)2.表示连接符(在+号的一边有String类型的数据)
2.算术运算符
+ 、—、*、/(5/2=2 5.0/2=2.5)、%(5%2=1)
3.一元运算符
++ 、 -- 自增自减
int num1=5,num2=2;
num1++ <==>num1=num1+1;-->num1=6
num2-- <==>num2=num2-1;-->num2=1
int a = num1++ 、 int b = num2--:"++"和"--"在后,先赋值后运算(a=num1 num1=num1+1 ; b=num2 num2=num2-1)
int c = ++num1 、 int d = --num2:"++"和"--"在前,先运算后赋值(num1=num1+1 c=num1 ; num2=num2-1 d=num2)
4.关系运算符(> < >= <= == !=)
由关系运算符构成的表达式称为关系表达式
关系表达式的结果是true或false
存储关系表达式的结果 我们需要声明一个布尔类型(boolean)的变量来接收
5.逻辑运算符:逻辑与(&&)、逻辑或(||)、逻辑非(!)
比较之后得到一个boolean
逻辑与:必须两个都成立才为真(true)
逻辑或:只要有一个为真就是true
逻辑非:结果与条件相反
逻辑运算符的优先级:! > && > ||
注意:
一、逻辑或(||、|)
(表达式一)||(表达式2)
1.如果表达式一为true ,则不再判断表达式2
2.如果表达式一为false ,则继续判断表达式2
(表达式一)|(表达式2)
表达式一和二都必须要判断 得出最终结果
二、逻辑与(&&、&)
(表达式一)&&(表达式2)
1.如果表达式一为false ,则不再判断表达式2
2.如果表达式一为true ,则继续判断表达式2
(表达式一)&(表达式2)
表达式一和二都必须要判断 得出最终结果
6.三元运算符(? :)
三元运算符需要三个操作数。
语法:
条件表达式?表达式1:表达式2。
说明:问号前面的位置是判断的条件,判断结果为boolean型,为true时调用表达式1,为false时调用表达式2。
其逻辑为:“如果为真执行第一个,否则执行第二个。”
eg: int num1 = 9>5?9:5 --> num1=9
7.复杂赋值运算符(+=、-=、*=、/=、%=)
int num1 = 5,num2 = 2;
num1+=num2; //num1 = num1 + num2
num1-=num2; //num1 = num1 - num2
num1*=num2; //num1 = num1 * num2
num1/=num2; //num1 = num1 / num2
num1%=num2; //num1 = num1 % num2
7.Java中的数据类型
1.基本数据类型:byte short int long float double char boolean
存储整数:byte(1B 127) short(2B 3W多) int(4B 20亿) long(8B) -->自动转换 由小到大
存储小数(整数):float(4B) double(8B) -->自动转换 由小到大
存储字符:char(2B)(只能存储一个字符 eg:'男')
boolean:表示真假(只有true和false两个值)
2.引用数据类型:String 、类、接口
8.数据类型转换
Type mismatch: cannot convert from double to int 不能将double类型数据转化为int类型
自动转换:1.转换的数据类型要兼容 2.目标类型要大于源类型 由小到大
强制转换:1.转换的数据类型要兼容 2.目标类型小于源类型 3.可能会丢失精度 由大到小
9.接收键盘输入
import java.util.Scanner;
public class JavaInput {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入姓名:");
String name = input.next(); //表示接收键盘输入字符串
System.out.print("请输入性别:");
char gender = input.next().charAt(0);//表示接收键盘输入单个字符
System.out.print("请输入年龄:");
int age = input.nextInt(); //表示接收键盘输入整数
System.out.print("请输入身高:");
double height = input.nextDouble();//表示接收键盘输入小数
System.out.println("*********个人信息*********");
System.out.println("姓名:"+name+"\n性别:"+gender+"\n年龄:"+age+"\n身高:"+height);
}
}
注意:
在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束。
附录1:java关键字
关键字
|
描述
|
---|---|
abstract
|
抽象方法,抽象类的修饰符
|
assert
|
断言条件是否满足
|
continue
|
不执行循环体剩余部分
|
default
|
switch语句中的默认分支
|
do-while
|
循环语句,循环体至少会执行一次
|
double
|
64-bit双精度浮点数
|
else
|
if条件不成立时执行的分支
|
enum
|
枚举类型
|
extends
|
表示一个类是另一个类的子类
|
final
|
表示定义常量
|
finally
|
无论有没有异常发生都执行代码
|
float
|
32-bit单精度浮点数
|
for
|
for循环语句
|
goto
|
用于流程控制
|
if
|
条件语句
|
implements
|
表示一个类实现了接口
|
import
|
导入类
|
instanceof
|
测试一个对象是否是某个类的实例
|
int
|
32位整型数
|
interface
|
接口,一种抽象的类型,仅有方法和常量的定义
|
long
|
64位整型数
|
native
|
表示方法用非java代码实现
|
new
|
分配新的类实例
|
package
|
一系列相关类组成一个包
|
private
|
表示私有字段,或者方法等,只能从类内部访问
|
protected
|
表示保护类型字段
|
public
|
表示共有属性或者方法
|
return
|
方法返回值
|
short
|
16位数字
|
static
|
表示在类级别定义,所有实例共享的
|
strictfp
|
浮点数比较使用严格的规则
|
super
|
表示基类
|
switch
|
选择语句
|
synchronized
|
表示同一时间只能由一个线程访问的代码块
|
this
|
调用当前实例或者调用另一个构造函数
|
throw
|
抛出异常
|
throws
|
定义方法可能抛出的异常
|
transient
|
修饰不要序列化的字段
|
try
|
表示代码块要做异常处理
|
void
|
标记方法不返回任何值
|
volatile
|
标记字段可能会被多个线程同时访问,而不做同步
|
while
|
while循
|