1、标识符可以标识什么
标识符可以标识
类——类名,首字母必须大写!
变量,方法,
包——包名,全小写,一般是域名反写
常量,接口等
2、什么是关键字
关键字:是Java自己保留的一些单词,作为特殊功能的,例如:public、class、byte、int…
我们不能用来作为类名或是变量名称,否则会报错
关键字很多,不用刻意去记
3、变量命名规则
3、1字,下,美,人,数,骆驼,有意义
字:字母
下:下划线(_)
美:美元$
人:人民币¥
数:数字
骆驼:驼峰命名法
标识符:由一些字符、符号组合起来的名称,用于给类、方法、变量、接口、常量等起名字
3.2、标识符要求:
1、由数字、字母、下划线(_)、美元符($)、人民币(¥)等组成
2、不能以数字开头,不能是关键字、且区分大小写
命名规范:
变量名:满足标识符要求,建议全英文,有意义,首字母小写,满足驼峰模式,一般为了让人可以一眼看出是什么类型的数据,会在开头加上数据类型的首字母,如"int iStudyNumber = 47;"
类名:满足标识符要求,建议全英文,有意义,首字母大写,满足驼峰模式,如"HelloWorld.java"
包名:满足标识符要求,必须全小写,一般是域名反写
4、数据类型
数据类型分为两种:
基本数据类型
引用数据类型
引用数据类型其中有一种字符串类型:String
基本数据类型分为4类8种
整型:byte 内存占用1字节
short 内存占用2字节
int 4字节
long 8字节
浮点型:float 4字节
double 8字节
字符型:char 2字节
布尔型:Boolean 1字节
int是默认的整型变量,如果希望一个整形字面量设置成long类型,需要在其后面加L/l
double是默认的浮点型,如果希望一个小数字面量是float类型,需要在其后面加上F/f
5、变量的使用规则
变量可以理解为一个存储数据的内存区域(可以理解为一个盒子),且存储的数据是可以变化。
变量定义格式:
数据类型 变量名 = 初始值;
数据类型:int、double…
变量名:名字,建议小写且要有意义
6、常量与Scanner的使用
//导包——当我们使用其他类时,如果这个类和当前文件的包不相同,那么就需要进行导包操作,
//否则,JVM不知道你调用的的这个类具体指的哪个类
//导包的第一种方法
import java.util.Scanner;
//导包的第二种方法
//我们使用*号可以把当前路径下的所有类都导入
//是当前路径下的所有类,不包括这个包里的其它包的内容
import java.util.*;
public class Test00 {
/**
* 这里希望实现一个计算圆形面积的方法
* 已知圆面积公式为:S=PI*r*r
* PI为常量,我们取3.14
* r为半径,需要手动输入
*/
public static void main(String[] args) {
// 我们使用final关键字作为常量的一个声明
// final意思为最终的,用于修饰一个变量时,那么这个变量就无法进行重新赋值
// 常量一般使用全大写字母进行命名,用来提醒别人,这个值为常量,无法再进行修改
final double PI = 3.14;
// 由于需要用户录入数据,所以我们需要声明一个用户录入的入口
// 我们使用scanner这个类作为获取用户录入数据的入口,可以通过这个入口让用户录入数据
Scanner input = new Scanner(System.in);
// 每当我们需要执行scanner对象(input)去获取某一个值的时候,
// 我们都必须输出一句话,用来提醒用户需要干嘛,否则程序像是卡死
System.out.println("请输入一个整数。这个整数是圆的半径:");
int r = input.nextInt();
System.out.println("你输入的这个半径为:"+r+"它的面积是:"+(PI*r*r));
}
}
7、类型转换
7、1自动类型转换
类型范围小的变量,可以直接赋值给类型范围大的变量;如byte到int;char到int到long到…
byte→short→int→long→float→double
7、2表达式的自动类型转换
在表达式中,小范围类型的变量会自动转换成当前较大范围的类型再运算。
byte、short、char→int→long→float→double
注:
1、表达式的最终结果类型是由表达式中的最高类型决定
2、在表达式中,byte、short、char是直接转换成int类型参与运算的
7、3强制类型转换
类型范围大的数据或者变量,不能直接赋值给类型范围小的变量
强制转换:
数据类型 变量2 = (数据类型)变量、数据
byte a = (byte)b;
可能会造成数据丢失
int a = 2;
byte b = (byte)a;
System.out.println(b);
//此时不会报错,因为2在byte的范围里
int a = 288888;
byte b = (byte)a;
System.out.println(b);
//此时会报错,因为2888888888超出了byte的范围
浮点型强制转换成整型,会直接丢掉小数部分,保留整数部分
8、运算符
8、1赋值运算符
//"="就是赋值运算符,它的作用时将后面的值赋值给前面的变量
String sUserName = "张三";
//后面的值可以是”字面量“,也可以是一个方法的返回值,或者是一个变量
//变量的例子
int i = 1;
int j = i;
//方法的例子
Scanner input = new scanner(Sytem.in);
8、2位运算符号
8、3算数运算符
8、3、1基本算数运算符
“+”
“-”
“/”
“*”
“%”
“++”
“–”
8、3、2关于++、–
int i = 10;
//i++和++i
//如果++写在后面,当前这一行执行的就是++之前的结果,之后代码中的i自增1
//如果++写在后面,当前这一行执行的就是+1之后的结果
System.out.println(i++);//10+1=11,但是在输出时,显示的是+1前的结果
System.out.println("你好中国,这个i是"+i);//11,在上一步i++之后i就变成11了,此时直接输出即可
System.out.println(++1);//11+1=12,在上一步11的基础上,自增1之后输出
8、3、3交换左右两个数
int a = 8;
int b = 9;
System.out.println("交换前"+a+"----------------------"+b);
// 方法1,第三方变量
int temp;
temp = a;
a = b;
b = temp;
System.out.println("交换后"+a+"----------------------"+b);
// 方法2,算术运算,以+示例,"-""/""*""^"原理一样
a = a + b;
b = a - b;
a = a - b;
}
}
8、3、4复合算术运算符
+=、-=、*=、/=、%=
相当于把加、减、乘、求商、取模、和赋值运算结合在一步写
int i = 10;
i += 5;
//这里i+=5,等效于i=i+5
8、4关系运算符
"="是赋值符号
"=="才是等于
所有关系运算符都是返回布尔类型,即真或假
8、5逻辑运算符
逻辑运算符,左右两边必须均为布尔类型
&&和&是两个操作符,前者是短路与,后者是逻辑与
//若a为真,则继续执行b;若a为假则后面的不执行,即短路效果
System.out.println(a&&b);
//逻辑与不存在短路效果,不论前面的真假,后面都会执行
System.out.println(a&b);
8、6条件运算符(三目运算符)
//条件?表达式1:表达式2;
Scanner input = new Scanner(System.in);
System.out.println("请输入四位卡号:");
int iNo = input.nextInt();
// 条件ino>1000
// 如果ino>1000,则返回iNo+""
// 否则返回"0"+iNo
String sNo = iNo>1000?iNo+"":"0"+iNo;
System.out.println("会员卡号:"+sNo);
}
}
Scanner input = new Scanner(System.in);
System.out.println("请输入四位卡号:");
int iNo = input.nextInt();
// 条件ino>1000
// 如果ino>1000,则返回iNo+""
// 否则返回"0"+iNo
String sNo = iNo>1000?iNo+"":"0"+iNo;
System.out.println("会员卡号:"+sNo);
}
}