一. 注释
注释是对代码的一种解释,在程序 的指定位置, 添加的一些说明性信息被注释掉的内容, 不会参与程序的编译和运行.
分类: 单行: // 注释信息 多行: /* 注释信息 */ 文档: /** 注释信息 */
二. 关键字
Java语言中有特殊含义的单词,就是关键字。
关键字的特点:1.全都是小写字母组成的2.关键字被高级的代码编辑工具(idea)有特殊的颜色标记。
例如: 上图在idea中橙色标记的, public class static void int ... 等.
三. 自变量(常量)
在程序执行过程中其值不会发生改变的量。
//1.字符串常量: 用双引号括起来的内容 System.out.println("hello"); //2.字符常量:用单引号括起来的内容 System.out.println('a'); //3.整数常量:所有整数 System.out.println(666); //4.小数常量:所有的小数 System.out.println(3.14); //5.布尔常量:只有true(真)和false(假) System.out.println(true); //6.空常量: null,空常量不能直接输出
四. 变量
变量是内存中的一小片空间,空间中存储的数据可以在某个范围内发生改变。
变量的定义格式:
数据类型 变量名 = 初始值;
//定义int类型的变量,赋值为10 int a=10; System.out.println(a); //定义short类型变量,赋值为5 short b=5; System.out.println(b); //定义double类型变量,赋值为3.14 double c=3.14; System.out.println(c); //定义boolean类型变量,赋值为true boolean d=true; System.out.println(d); //定义char类型变量,赋值为'a' char s='a'; System.out.println(s); //定义long类型的变量,需要加后缀L <=== long m=8888888888L; System.out.println(m); //定义float类型的变量,需要加后缀F <=== float f=3.14F; System.out.println(f);
注意事项:
1.定义long类型的变量,必须加后缀L 2.定义float类的变量,必须加后缀F 3.可以在一行定义多个同类型的变量 int x=3,y=4; System.out.println(x); System.out.println(y); 4.变量没有初始值,不能直接使用。 5.变量的名称不同相同
五. 标志符
自己给变量, 类起的名字都是标识符
规则 (必须要遵守):
1. 26个英文字母(大小写都可以)
2. 数字0~9
3. _ $
要求:
1. 不能以数字开头 2. 不能是关键字 3. 严格区分大小写
规范(江湖规矩)
1. 小驼峰命名法 (变量)
如果是一个单词, 所有字母小写 age
如果是多个单词, 从第二个单词开始, 首字母大写 maxAge
2. 大驼峰命名法 (类)
如果是一个单词, 首字母大写 Student
如果是多个单词, 每个单词首字母大写, GoodStudent
六. 基本数据类型
四类八种:
整数:
byte 1个字节
short 2个字节
int 4个字节
long 8个字节
小数:
float 4个字节
double 8个字节
字符:
char 2个字节
布尔:
boolean 1个字节
七. 引用数据类型
在Java中除了8种基本数据类型外,其他数据类型全部都是引用(reference)数据类型,引用数据类型用来表示复杂数据类型。
引用数据类型:有类,接口,数组等。
Scanner(键盘录入)举例以理解:
Java中的引用数据类型,作用于键盘录入. (通俗解释: 就是在程序运行时, 在控制台利用电脑键盘输入,所需要的对象)
// 1. 导包 import java.util.Scanner; // 2. 创建键盘录入对象 Scanner sc = new Scanner(System.in); // 3. 接收键盘录入的数据(键盘输入的是什么类型, 就创建什么类型进行接收录入数据) int age = sc.nextInt();
例如:
import java.util.Scanner; public class Demo { public static void main(String[] args) { // 2. 创建一个键盘录入对象 Scanner sc = new Scanner(System.in); // 友好提示: System.out.println("请输入一个整数: "); // 3. 键盘录入一个int类型的数据,并用int类型的变量 num 接收数据. int num = sc.nextInt(); // 4. 打印输出数据 System.out.println("你输入的值是: "+num); } }
Random(随机数)
随机生成一定范围的随机数.
格式:
Random r=new Random();
int num = r.nextInt(n)+m;
n: 生成随机数的个数(就是在这个随机数范围中, 满足条件的数有几个);
m: 生成随机数时,起始值;
例如: 生成 [58~75]之间的随机数
n : 18 (58到75之间有几个数); // 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 (18个) m : 58(随机数从58开始); 即: Random r=new Random(); int num = r.nextInt(18)+58;
例如:
// 1. 导包 import java.util.Random; public class Demo { public static void main(String[] args) { // 2.创建Random对象 Random r=new Random(); // 3.生成指定范围的随机数 生成[70,100]范围内的随机数 包含70包含100 int num = r.nextInt(31)+70; System.out.println(num); } }
八. 运算符
算数运算符
+ - * : 没啥需要注意的, 跟小学学的是一样的
/ : 整数相除, 结果只能得到整数, 想要得到带有小数的结果, 必须有小数参与运算
% : 取模 ---> 获取的时候除法之后剩余的 余数.
注意: % 一般情况是 判断一个数是否是偶数, 或者是一个数是否能被另一个数整除.
num % 2 == 0; // 这个num就是一个偶数 num % n == 0; // num能被n整除
例如:
int a = 5; int b = 2; System.out.println(5/2); // 2 System.out.println(5%2); // 1
自增自减运算符
++ : 让变量自身的值 + 1操作
-- : 让变量自身的值 - 1操作
使用方式:
1. 单独使用(推荐)
++, -- 在前在后没有区别
int a = 10;
a++;
++a;
2. 参与运算使用(面试题)
++在前: 先自增, 再操作
++在后: 先操作, 再自增
- 先将该变量, 原本记录的值, 提取出来做操作, 然后再进行自增
int a = 10; int b = a++; // ++在a后面, 先将10赋值给b, b=10; 然后在a再去自增,a=11; System.out.println(a); // 11 System.out.println(b); // 10 int a = 10; int b = ++a; // ++在a前面, 先a去自增,a=11;然后再将11赋值给b, b=11; System.out.println(a); // 11 System.out.println(b); // 11
使用场景:
需要做计数的时候, 例如求个数, 求几次. 做变量++操作.
基本赋值运算符:
= : 将符号右边的数据, 赋值给左侧的变量
int a = 10;
扩展赋值运算符:
int a = 2; int b = 5; b+=a; // b = b + a ; //结果 : 7 b-=a; // b = b - a ; //结果 : 3 b*=a; // b = b * a ; //结果 : 10 b/=a; // b = b / a ; //结果 : 2 b%=a; // b = b % a ; //结果 : 1
+= : 将符号左右两边的数据做加法运算, 将结果赋值给左边
-= : 将符号左右两边的数据做减法运算, 将结果赋值给左边
*= : 将符号左右两边的数据做乘法运算, 将结果赋值给左边
/+ : 将符号左右两边的数据做除法运算, 将结果赋值给左边
%= : 将符号左右两边的数据做取余运算, 将结果赋值给左边
表达式:
> >= < <= == !=
结论: 关系运算符无论简单还是复杂, 结果都只能是boolean类型的true, false
注意: =号是赋值运算符, ==是比较运算符
例如:
int a = 10; int b = 20; System.out.println(a > b); // 结果: false System.out.println(a >= b); // 结果: false System.out.println(a < b); // 结果: true System.out.println(a <= b); // 结果: true System.out.println(a == b); // 结果: false System.out.println(a != b); // 结果: true
逻辑运算符
&(与) : 并且, 符号两边结果必须同时是true,结果才能为true. 遇false结果就是false;
|(或) : 或者, 符号两边有一个结果是true,结果就为true. 遇true结果就是true;
!(非) : 取反, 取结果的对立面.
例如:
int a = 10; int b = 20; int c = 30; System.out.println(a > b & b < c); // 结果: false System.out.println(a < b & b < c); // 结果:true System.out.println(a > b | b < c); // 结果:true System.out.println(a > b | b > c); // 结果:false System.out.println( !(a > b) & b < c ); // 结果:true System.out.println(a > b & !(b < c) ); // 结果:false
短路:
短路逻辑运算符:
& : 没有短路效果, 无论符号左边是true还是false, 右边都要继续执行
&& : 具有短路效果, 符号左边为false的时候, 右边就不执行了
如果符号左边为true, 右边要继续执行
| : 没有短路效果, 无论符号左边是true还是false, 右边都要继续执行
|| : 具有短路效果, 符号左边为true的时候, 右边就不执行了
如果符号左边为false, 右边要继续执行
三元运算符
介绍: 可以根据一个判断条件, 达成二者选其一.
格式: 表达式 ? 值1 : 值2;
执行流程:
1. 执行判断条件, 看其返回结果是true, false
2. true : 值1就是运算结果
3. false : 值2就是运算结果
例如:
利用三元运算符求三个整数的最大值
int a = 10;
int b = 20;
int c = 30;
// 谁是最大的?
int max = a>b?a:b;
int max1 = max>c ? max : c ;
System.out.println(max1);