常量与变量
1.标识符和关键字
标识行可以简单地理解为一个名字,是用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。
Java语言规定标识符由任意顺序的字母、下画线(_)、美元符号($)和数字组成,并且第一个字符不能是数字。标识符不能是Java中的关键字(保留字)。
下面是合法标识符:
name
user_age
$page
下面是非法标识符:
300warrior
public//这个是关键字
one%two
User Name
在Java语言中,标识符中的字母是严格区分大小写的,如 good和Good是不同的两个标识符。Java语言使用Unicode标准字符集,最多可以标识65535个字符。因此,Java语言中的字母不仅包括通常的拉丁文字a、b、c等,还包括汉语、日语以及其他许多语言中的文字。
【标识符使用汉字】
尽量不要用中文写,会造成乱码。比如
string 名字="齐天大圣“;
string 年龄="五百年以上";
string 职业="神仙";
【标识符的命名规范】
【关键字】
关键字又称保留字,是Java语言中已经被赋予特定意义的一些单词,不可以把这些单词作为标识符来使用。数据类型时提到的int、boolean等都是关键字。Java语言中的关键字如表所示。
2.变量
1.首先我们了解内存如何存储数据?
数据各式各样,要先根据数据的需求(即类型)为它申请一块合适的空间,而内存就像一个宾馆。
2.为什么需要变量?
程序运行把数据放在内存中,每个内存都有一个内存地址地址,内存地址不好记,怎么办?内存就像旅馆,通过内存中房间的别名找到数据存储的位置。
3.变量的声明
【语法】数据类型 变量名称 = 变量值
int a=1;
long b =2L;
char c='X';
boolean d=false;
变量的值是可以更改的。
3.常量
1.常量的声明
【语法】 final 数据类型 变量名称 = 常量值
final int a=123;
final double PI=3.14;
常量在第一次赋值时就不可以在更改不然就会报错。
【训练三】比较字符与整数
比较‘g'和103是否相等。
public class text1 {
public static void main(String[] args) {
int a1=103;
char a2='g';
System.out.println(a1==a2);
}
}
运行结果:
【训练四】输出连续的字符
控制台中输出“ABCDFEFG”
public class text1 {
public static void main(String[] args) {
char a = '\101';
char b = '\102';
char c = '\103';
char d = '\104';
char e = '\105';
char f = '\106';
char g = '\107';
System.out.println("转义字符a~g对应的符号:" + a + b + c + d + e + f + g);
}
}
运行结果:
运算符
【赋值运算符】
赋值运算符以符号“=”表示,它是一个二元运算(对两个操作数处理),其功能是将右方操作数所含的值赋给左方的操作数。
实列:
int i=1,j=2,k=3; //定义变量i,j,k
final int val =5; //定义整型变量val
i=6; //变量等于常量
k=i+j; //变量等于表达式
a=b=c; //变量=变量=变量=变量
5=k; //错误方法 不能赋值给常量
i+j=k;//错误方法 右值不能被赋
【算术运算符】
Java中的算术运算符主要有+(加),-(减),*(乘),/(除),%(求余),它们都是二元运算符。
使用除法运算符与取余运算符,0不能做除数。
用代码实现一下:
public class text1 {
public static void main(String[] args) {
float num1=45.2F;
int num2=120;
int num3=17;
int num4=10;
System.out.println("num1+num2的和为:"+(num1+num2));
System.out.println("num1-num2的差为:"+(num1-num2));
System.out.println("num1*num2的积为:"+(num1*num2));
System.out.println("num1/num2的商为:"+(num1/num2));
System.out.println("num3/num4的余数为:"+(num3%num4));
}
结果:
【自增自减运算符】
自增,自减运算符是单目运算符。
【语法】
前置 ++a --a(使用变量前先增加或减小)
后置 a++ a--(先使用变量再增加或减小)
结果 a+1 a-1
【关系运算符】
关系运算符属于二元运算符。
简单应用:判断一个数是不是偶数?
public class text1 {
public static void main(String[] args) {
int a=15;
System.out.println(a+"是偶数吗?"+(a%2==0));
System.out.println(a+"是奇数吗?"+(a%2==1));
}
}
数学中可以连续使用小于:a<b<c。再Java中不能够这样使用。
【逻辑运算符】
返回类型为布尔型的表达式,如比较运算符,可以被组合在一起构成一个更复杂的表达式。这是通过逻辑运算符来实现的。逻辑运算符包括&(&&)(逻辑与)、||(逻辑或)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。在逻辑运算符中,除了“!”是一元运算符,其他都是二元运算符。
&&:一假则假,全真为真。
II:一真为真,全假为假。
【位运算符】
<<左移有乘以2的效果,>>右移有除以2的效果。
public class text1 {
public static void main(String[] args) {
int a=24;
System.out.println(a+"右移两位结果"+(a>>2));
int b=-16;
System.out.println(b+"左移三位结果"+(b<<3));
int c=-256;
System.out.println(c+"无符号右移结果"+(c>>>2));
}
}
byte和short不适合做无符号右移,它们是低精度,不然结果会溢出。
【三元运算符】
【语法】 返回值 = 判断公式?结果1:结果2;
如果公式返回ture,运算符结果返回结果1;如果公式返回的是false,运算符结果返回结果2.
int a=1;
int b=a<3?2:3;
【运算符优先级】
【总结】
(1)从操作数个数来看,单目运算符的优先级高于双目运算符的优先级。
(2)按照运算符的作用来看,()这种级别最高,之后依次是算术运算符,位运算符,关系运算符,逻辑运算符,赋值运算符。
【训练五】计算机车加速度
平均加速度,即速度的变化量除以这个变化所用的时间。现有一辆用了8.7秒从每小时0千米加速到每小时100千米,计算并输出这辆轿车的平均加速度。
public class text1 {
public static void main(String[] args) {
int t0=0;
float t1=8.7F;
float s=(float) (100/3.6);
System.out.println("轿车的加速度为:"+(s/(t1-t0)+"m/s"));
}
}
【训练六】求解二元一次方程组
使用克莱姆法则求解二元一次方程组。
21.8x+2y=28
7x+8y=62
public class text1 {
public static void main(String[] args) {
double a=21.8,b=2,e=28;
double c =7, d=8,f=62;
double X=((e*d-b*f)/(a*d-b*c));
double Y=((a*f-e*c)/(a*d-b*c));
System.out.println("X="+X);
System.out.println("Y="+Y);
}
}