注释:
作用 : 可以记录代码所实现的功能,方便程序员或代码编写者阅读代码以及方便他人更好理解代码
注释分类:
- 单行注释 格式: //注释信息
- 多行注释 格式: /注释信息/
- 文档煮熟 格式:/** 注释信息*/
/**
* 文档注释
*/
public class Demo {
/*
多行注释
这是main方法
*/
public static void main(String[] args) {
// 单行注释 打印Hello World!
System.out.println("Hello World!");
}
}
关键字:
关键字:就是被Java语言赋予了特定含义的单词
关键字的特点:关键字的字母全部小写
标识符:
标识符是用户编程时使用的名字,用于给类、方法、变量、常量等命名。
Java中标识符的组成规则:
由字母、数字、下划线“_”、美元符号“$”组成,第一个字符不能是数字。
不能使用java中的关键字作为标识符。
标识符对大小写敏感(区分大小写)。
Java中标识符的命名约定:
1、小驼峰式命名:变量名、方法名
首字母小写,从第二个单词开始每个单词的首字母大写。
2、大驼峰式命名:类名
每个单词的首字母都大写。
另外,标识符的命名最好可以做到见名知意
例如:username、studentNumber等。
常量、变量及数据类型:
常量:在java程序中固定不变的数据
变量:在java程序中可以变化的量称为变量
注意:定义的变量,不赋值不能使用
java的数据类型分为两大类:
基本数据类型:整数、浮点数、字符、布尔
引用数据类型:类、数组、接口
基本数据类型:
java的四类八种数据类型:
逻辑型:boolean
取值范围:true/false
文本型:char
取值范围:两个字节
整数型:byte short int long
取值范围:byte<short<int<long
浮点型:float double
取值范围:float<double
public static void main(String[] args) {
/*输出常量*/
//输出整型常量
System.out.println(100);
//输出小数常量
System.out.println(1.00);
//输出字符常量
System.out.println('a');
//输出布尔常量
System.out.println(true);
//输出字符串常量
System.out.println("HelloWorld");
/*定义变量 数据类型 变量名 = 数据值*/
//定义字节型变量
byte b = 16;
System.out.println(b);
//定义短整型变量
short s = 1000;
System.out.println(s);
//定义整型变量
int i = 1024;
System.out.println(i);
//定义长整型变量
long l = 1234567890L;
System.out.println(l);
//定义单精度浮点型变量
float f = 1.1f;
System.out.println(f);
//定义双精度浮点型变量
double d = 8.88;
System.out.println(d);
//定义布尔型变量
boolean bool = true;
System.out.println(bool);
//定义字节型变量
char c = 'C';
System.out.println(c);
}
运算符:
算数运算符:+ - * % / ++ –
赋值运算符:= += -= *= /= %=
比较运算符:== < > <= >= !=
逻辑运算符:&& || !
三元运算符:数据类型 变量名 = 波尔类型表达式?结果1:结果2
public static void main(String[] args) {
//算术运算符
int i = 0;
i = i + 5;
System.out.println(i);
//赋值运算符
int j = 1;
j += 5;
System.out.println(j);
//比较运算符
int p = 2, q = 4;
//若括号里面为p>q成立则输出true否则输出false
System.out.println(p > q);
//逻辑运算符
System.out.println(true && true);//输出true
System.out.println(true && false);//输出false
/*三目运算符
数据类型 变量名 =布尔表达式?结果1:结果2
若布尔表达式结果为真则将结果1赋值给k,否则将结果2赋值给k*/
int k = (1 < 2 ? 100 : 200);
System.out.println(k);
}
运算符操作:
一、字符的“+”操作:
是拿字符在计算机底层对应的数值来进行计算的(详情可参照Ascii码表)
二、在算术运算符的操作中,如果算术表达式中包含多个基本数据类型的值的时候,整个算术表达式的类型会自动进行提升。
提升规则:
1、byte类型、short类型和char类型将被提升到int类型
2、整个表达式的类型自动提升到表达式中最高等级操作数同样的类型
等级顺序:byte,short,char–>int–>long–>float–>double
例子:
public class Main {
public static void main(String[] args) {
char a = 'a';
int b = 10;
int c = a + b;
//char c = a + b; 程序报错
System.out.println(c);//打印107,字符‘a’代表数值97
int x = 10;
double y = 11.12;
//int z =x+y; 程序报错
double z = x + y;
System.out.println(z);
}
}
三、字符串的“+”操作
字符串的+操作相当于拼接字符串
例子:
public class Main {
public static void main(String[] args) {
//打印结果为HelloWorld
System.out.println("Hello"+"World");
//注意 打印结果为 HelloWorld666
System.out.println("Hello"+"World"+666);
//注意 打印结果为 666HelloWorld
System.out.println(666+"Hello"+"World");
//结果是100566HelloWorld
System.out.println("Hello"+"World"+100+566);
/*注意
结果并不是100566HelloWorld 而是666HelloWorld
有两个整型数值要先做加法运算在进行字符串的拼接*/
System.out.println(100+566+"Hello"+"World");
}
}
结果:
赋值运算符:
赋值运算符包括:赋值=、加后赋值+=、减后赋值-=、乘后赋值*=、除后赋值/=、取余后赋值%=
public class Main {
//加后赋值
public static void main(String[] args) {
//把10赋值给int类型变量i
int i = 10;
//+=把左边和右边的数据做加法操作,结果赋值给左边
//i+=20; 结果与下面的语句一致
i = i + 20;
System.out.println(i);
short a = 10;
//注意:扩展的赋值运算符底层隐含了强制类型转换
a += 20;
//a += (short) 20;
System.out.println(a);
}
}
自增自减运算符‘++’ ‘–’ :
注意++ --的位置
public class Main {
public static void main(String[] args) {
//单独使用时,++位置不同结果没有影响
int i = 0;
i++;
System.out.println(i);
int x = 0;
++x;
System.out.println(x);
//参与操作使用时,++的位置会影响结果
//注意: y = z++ ,是先把z的值赋值给y之后,z才执行++操作
/* int z = 10 ;
int y = z++;
System.out.println(z);//输出结果为11
System.out.println(y);//输出结果为10
*/
//注意: y = ++z ,变量是先进行++操作,然后再进行赋值
int z = 10 ;
int y = ++z;
System.out.println(z);//输出结果为11
System.out.println(y);//输出结果为11
}
}
关系运算符(比较运算符):
判断事件的真假要么是true要么是false
public class Main {
public static void main(String[] args) {
int x = 10;
int y = 20;
int z = 30;
//判断括号内是否为真
System.out.println(x > y);//x的数值比y的数值小,所以x>y不成立 false
System.out.println(x < y);//true
System.out.println((x + y) == z);//true
System.out.println((x + y) != z);//false
}
}
逻辑运算符:(与、或、非、异或):
public class Main {
public static void main(String[] args) {
int x = 10;
int y = 20;
int z = 30;
//与 &
System.out.println((x & y) > 0);//x和y都大于0 true
System.out.println((x + y) & (y + z));//x+y 和y+z 都大于0 true
//或 |
System.out.println((y | z) > x);//y和z有一个为真则为真 true
System.out.println((x + y) | (y + z));//x+y和y+z有一个大于0则为真 true
//非 !
System.out.println(!(x > y));//x>y为false !(x+y)则为true
//异或 ^
System.out.println((x > y) ^ (y > z));//(x>y)和(y>z)两者不同则为真 相同则为false
}
}
短路逻辑运算符 :
短路或|| 短路与&&
逻辑与&:无论左边真假,右边都要执行
短路与&&:如果左边为真,右边执行;如果左边为假,右边不执行
逻辑|:无论左边真假,右边都要执行
短路与||:如果左边为假,右边执行;如果左边为真,右边不执行
public class Main {
public static void main(String[] args) {
int x = 10;
int y = 20;
int z = 30;
//以下两个语句的结果都是一样的,但是短路或一旦判断有一个为真,则后面的语句不在执行和判断
System.out.println((x++)<100||(y++)>100);//短路或 || true
System.out.println(x+"---"+y);//x = 11 ,y = 10 已经判断x++<100 为真,所以y++不执行
// System.out.println((x++)<100|(y++)>100);//true
//短路与,一旦判断有一个为假,则后面语句不再执行
System.out.println((x++)>100&&(y++)>100);//false
System.out.println(x+"---"+y);//x=12,y=10
// System.out.println((x++)>100|(y++)>100);//false
}
}
三元运算符:
格式:关系表达式?表达式1:表达式2;
规则:
如果关系表达式的值为真,则表达式1的值就是运算结果
如果关系表达式的值为错,则表达式2的值就是运算结果
public class Main {
public static void main(String[] args) {
int x = 10;
int y = 20;
//判断x>y的真假情况 为真则为x 为假则为y
int z = x > y ? x : y;//x>y为false 所以 z=20
System.out.println(z);
}
}
数据类型转换:
自动转换:
将取值范围小的类型自动提升为取值范围大的类型(数据类型 变量名 = 被转数据值)
强制转换:
将取值范围大的类型强制转换成取值范围小的类型(数据类型 变量名 = (数据类型)被转数据值)
注意:
1、自动转换是java自动执行的,而强制转换需要我们手动执行
2、范围大的强制转成范围小的会造成数据损失精度,或者数据丢失(不建议使用)
public static void main(String[] args) {
double i = 10;//自动转换 取值范围小的类型自动提升为取值范围大的类型
// int j=10.1;//取值范围大的类型--转变-->取值范围小的类型(报错)
int k = (int) 10.1;//强制转换 取值范围大的类型---->取值范围小的类型
System.out.println(i + " " + k);
}