一、标识符
1.1 概述
-
在Java语言中,用来给类、方法、变量、常量、包等内容命名的字符序列
-
用来取名字的一个字符串
-
1.2 标识符组成
-
字母
-
数字
-
下划线_
-
美元符$
1.3 命名规则
统一规则
-
见名知意
-
看到名字大概能猜到是什么作用
name xingMing // 姓名 age nianLing // 年龄 address diZhi // 地址 info xinXi // 信息 balance yuE // 余额
-
-
不能使用数字开头
-
100num ×
-
-
不能使用关键字和保留字
类名
-
class关键字后面的名字
-
HelloWorld、Demo01...
-
-
所有单词首字母大写
-
大驼峰命名法
-
方法【函数】名
-
方法表示一个功能,一般是动词
-
main、getAge、setName、charge...
-
-
第一个单词全部小写,后面使用单词首字母大写
-
小驼峰命名法
-
变量名
-
表示一个属性,一般是名词
-
name、age、address、money、myAccount、ageOfYou
-
-
第一个单词全部小写,后面使用单词首字母大写
-
小驼峰命名法
-
常量名
-
固定不变的数据
-
祖国、公司名、祖籍
-
COUNTRY、COMPANY_NAME、ORIGINAL_FAMILY_HOME
-
-
单词中的所有字母大写,多个单词使用下划线连接
包名
-
公司域名倒着书写
-
com.company.项目名.模块名
-
com.baidu.项目名.模块名
-
com.jd.项目名.模块名
-
1.4 标识符命名练习
-
类名
电脑、水杯、用户、人、学生、桌子
Computer、WaterCup、User、Person、Student、Desk
-
方法
取钱、存钱、充电、玩游戏、学习、监听工作状态
takeMoney、saveMoney、charge、playGame、study、mnitorWorkingStatus
-
变量
姓名、地址、个人信息、是否会员、用户状态、身份证号码
name、address、info、isMember、userStatus、id
-
常量
祖国、公司名、祖籍
COUNTRY、COMPANY_NAME、ORIGINAL_FAMILY_HOME
二、关键字
2.1 概述
-
在Java中,被赋予了特殊含义的标识符
-
class、public、static、void、、、
-
-
已经被Java语言占用,开发者不能再次使用
2.2 关键字大全
三、变量
3.1 概述
-
变量是在内存中开辟的一片空间,用来存储对应类型的数据
3.2 变量入门案例
class Demo01 { public static void main(String[] args) { /* 年龄 整数 年龄 = 26; 体重 小数 体重 = 67.5; 性别 字符 性别 = '男'; 是否毕业 布尔 是否毕业 = 真; */ // 变量年龄,类型是整数,数据是26 int age = 26; // 变量体重,类型是小数【浮点型】,数据是67.5 double weight = 67.5; // 变量性别,类型是字符型【只有一个文字】 char gender = '男'; // 变量是否毕业,类型是布尔,数据是true/false boolean isGraduated = true; System.out.println("Hello World!"); } }
3.3 创建变量
先声明,后赋值
-
先开辟空间,后面再去存入数据
int a; // 开辟空间 // 十万行代码飘过... a = 100; // 存入数据
声明的同时赋值
-
开辟空间的时候直接存入数据
int b = 200;
一次创建多个变量【使用较少】
-
同时开辟多个相同类型的空间
int a,b,c; int x=10,y=20,z=30;
四、数据类型
4.1 概述
-
根据数据的种类和大小,把数据进行分类的操作
-
Java是强类型编程语言,每一条数据都有其对应的类型
4.2 分类
基本类型
-
整数
-
小数
-
字符
-
布尔
引用类型
-
除了基本类型,剩下的全部是引用类型
-
String
-
System
-
Object
-
数组
-
... ...
-
4.3 整数类型
-
不同大小的整数应该分配对应大小的空间
-
节省空间
-
方便管理
-
-
如果一个整数没有声明类型,默认的类型是int
-
-2147483648 ~ 2147483647
-
类型 | 名称 | 大小 | 范围 |
---|---|---|---|
byte | 字节型 | 1字节 | -128~127 |
short | 短整型 | 2字节 | -32768~32767 |
int | 整型 | 4字节 | -2^31 ~ 2^31-1 |
long | 长整型 | 8字节 | -2^63 ~ 2^63-1 |
class Demo04 { public static void main(String[] args) { byte b = 100; System.out.println(b); short s = 32000; System.out.println(s); int i = 10000; System.out.println(i); // 过大的整数需要使用L标记 long l = 12345678900L; System.out.println(l); } }
4.4 小数类型【浮点型】
-
小数也有长短之分,不同长度的小数占有的空间也不相同
类型 | 名称 | 大小 |
---|---|---|
float | 单精度浮点型 | 4字节 |
double | 双精度浮点型 | 8字节 |
-
小数类型默认是double
-
因为小数的位数增加很容易:10.0 / 3 = 3.3333333.....
-
class Demo05 { public static void main(String[] args) { // 创建双精度小数 double d = 3.1415926; System.out.println(d); // 创建单精度小数,小数默认的类型是double,float类型的变量需要使用F标记 float f = 3.1415926F; System.out.println(f); // 小数有可能不准确 System.out.println(10.0 / 3); } }
4.5 布尔型
-
程序中需要大量的逻辑、关系判定,这些判定的结果是真或者假
-
编程语言中新增了布尔类型,用来表示上述结果
-
布尔类型只有两个数据
-
true
-
false
-
类型 | 名称 | 大小 | 范围 |
---|---|---|---|
boolean | 布尔型 | true / false |
class Demo06 { public static void main(String[] args) { // 创建boolean类型变量b boolean b = true; System.out.println(b); // 修改变量b中的数据 b = false; System.out.println(b); // 创建boolean类型变量bb boolean bb = false; System.out.println(bb); } }
4.6 字符型
-
用来表示单个字符【必须是一个字符,不能多或者少】
类型 | 名称 | 大小 | 范围 |
---|---|---|---|
char | 字符型 | 2字节 | 0~65535 |
class Demo08 { public static void main(String[] args) { char c01 = 'A'; System.out.println(c01); c01 = '张'; System.out.println(c01); c01 = '&'; System.out.println(c01); // 字符使用单引号包裹,必须是一个字符 c01 = ' '; System.out.println(c01); } }
// 使用0~65535之间的数字赋值 char c02 = 97; System.out.println(c02); c02 = 98; System.out.println(c02); c02 = 99; System.out.println(c02); c02 = 100; System.out.println(c02); // 使用十六进制数字赋值 char c03 = '\u0061'; System.out.println(c03); char c04 = 'A'; //c04=='A', 'A'==65 System.out.println(c04); System.out.println(c04 + 1); // 65 + 1 = 66 System.out.println('杜' + 1 - 1); char c05 = 26460; System.out.println(c05); System.out.println((int)'杜'); // 强制类型转换
4.7 转义字符
-
在Java语言中有些符号有特殊含义,有些字符需要被赋予特殊含义
-
可以使用\X的方式进行转义
class Demo09{ public static void main(String[] args) { /* '【单引号】在Java中石油特殊含义的,表示字符的开始或者结束 如果需要使用单引号,可以使用'De方式进行转义 转义: 如果没有特殊作用,添加特殊作用 如果有特殊作用,去除特殊作用 */ char c01 = '''; System.out.println(c01); String s = """; System.out.println(s); char c02 = '\'; System.out.println(c01); System.out.println("HelloWorld"); System.out.println("Hello World"); System.out.println("Hello\tWorld"); // \t表示按下一次制表符【约定】,t==tab System.out.println("Hello\nWorld"); // \n表示按下一次回车键,n==newLine } }
4.8 类型转换
-
在Java中,不同类型的数据是可以互相转换的
-
要求类型必须兼容
自动转换
-
小的数据放入大的空间
-
天生安全
强制转换
-
大的数据放入小的空间
-
有风险
class Demo10{ public static void main(String[] args) { // 创建1字节的空间,存储数字100 byte b = 100; // 把1字节的数据放入4字节的空间,天生安全 int i = b; // 创建4字节空间,存储数据10000 int ii = 10000; // 把4字节的空间放入1字节,有风险 /* 如果int的数据比较小【-128~127】,能放得下 如果int的数据比较大【超过127或者小于-128】,只能容纳一部分 */ byte bb = (byte)ii; System.out.println(bb); } }
五、进制
5.1 概述
-
进制也就是进位计数制,是人为定义的带进位的计数方法。
-
135 为什么是一百三十五?
135 = 100 + 30 + 5 = 1 * 10^2 + 3 * 10^1 + 5 * 10^0 3333 = 3000 + 300 + 30 + 3 = 3 * 10^3 + 3 * 10^2 + 3 * 10^1 + 3 * 10^0
5.2 进制分类
-
二进制
0~1
-
八进制
-
十进制
-
十六进制
0~9 a~f a=10 b=11 c=12 d=13 e=14 f=15
5.3 二进制
-
逢二进一的一种计数制度
-
源自计算机元件的特征
-
有电和无电
-
有磁和无磁
-
六、运算符
6.1 概述
-
在数据处理过程中参与运算的符号
+ - * / =
-
算术运算符
-
关系运算符
-
赋值运算符
-
逻辑运算符
-
三元运算符
-
位运算符
6.2 算术运算符
+ 两个数据相加 - 两个数据相减 * 两个数据相乘 / 两个数据相除 % 两个数据整除之后的余数 10 % 3 = 1==》 10 / 3 = 3...1 ++ 自增一个数值 -- 自减一个数值
class Demo11{ public static void main(String[] args) { int a = 15; int b = 10; /* "a = " 是纯文字,固定的内容 + 拼接,Java中拼接字符串使用这个符号 a 变量a */ System.out.println("a = " + a); System.out.println("a+b = " + a+b); // 拼接字符串 System.out.println("a+b = " + (a+b)); // 拼接加法运算的结果 System.out.println("a-b = " + (a-b)); System.out.println("a*b = " + (a*b)); System.out.println("a/b = " + (a/b)); // 整数和整数运算的结果还是整数 System.out.println("a%b = " + (a%b)); // 整除之后的余数:15 / 10 = 1...5 a++; System.out.println("a = " + a); a++; System.out.println("a = " + a); a++; System.out.println("a = " + a); a++; System.out.println("a = " + a); int x = 10; int y = 10; int num01 = x++; // x先把自己的数值赋值给num01,自己再完成自增【经常使用】 int num02 = ++y; // y想要把数值赋值给num02,需要先经过++的操作【几乎没有使用场景】 // x和y都执行了一次自增,数值都会增加1 System.out.println("x = " + x); System.out.println("y = " + y); System.out.println("num01 = " + num01); System.out.println("num02 = " + num02); // 张三说:"" } }
6.3 赋值运算符
= += -= *= /= %=
class Demo12 { public static void main(String[] args) { int a = 20; int b = 15; a += b; // a = a + b, a = 20 + 15 = 35 System.out.println("a = " + a); a -= b; // a = a - b = 35 - 15 = 20 System.out.println("a = " + a); a *= b; // a = a * b = 20 * 15 = 300 System.out.println("a = " + a); a /= b; // a = a / b = 300 / 15 = 20 System.out.println("a = " + a); a %= b; // a = a % b = 20 % 15 = 5 System.out.println("a = " + a); } }
6.4 关系运算符
-
比较是否成立,返回布尔类型的结果
> >= < <= == !=
class Demo13{ public static void main(String[] args) { // 关系运算符得到的结果是布尔类型 int a = 20; int b = 15; System.out.println("a>b ? " + (a>b)); System.out.println("a>=b ? " + (a>=b)); System.out.println("a<b ? " + (a<b)); System.out.println("a<=b ? " + (a<=b)); System.out.println("a==b ? " + (a==b)); System.out.println("a!=b ? " + (a!=b)); } }
6.5逻辑运算符
-
判定逻辑是否成立
你和你的同桌都是成年人? 你或者你的同桌成年啦?
package com.shine.operator; public class Demo02 { public static void main(String[] args) { /** * 逻辑运算符 * & 逻辑与 * && 短路与 * 进行逻辑判定,判定A条件和B条件是同时成立 * 只要表达式中有任何一个false出现,结果就是false * 使用短路与&&能提升判定的效率 * A && B * true && true ==> true * true && false ==> false * false && true ==> false * false && false ==> false * * | 逻辑或 * || 短路或 * A || B * 进行逻辑判定,判定A条件或者B提交是否成立 * 只有表达式中有任何一个true,结果就是true * 使用短路或能提升判定效率 * true || true ==> true * true || false ==> true * false || true ==> true * false || false ==> false */ /** * 你的你的同桌身高都超过180 * 你的身高 > 180 并且 同桌身高 > 180 */ int yourHeight = 188; int hisHeight = 178; System.out.println((yourHeight > 180) && (hisHeight > 180)); /** * 你或者你的同桌身高超过180 * 你的身高 > 180 或者 同桌身高 > 180 */ System.out.println((yourHeight > 180) || (hisHeight > 180)); } }
6.6 三元运算符
-
有三个元素参与的运算,得到一个结果
package com.shine.operator; public class Demo04 { public static void main(String[] args) { /** * 三元运算符 布尔表达式:结果为布尔值的表达式【判定】 * 布尔表达式 ? 结果01 : 结果02; * 布尔表达式结果为true,得到结果01 * 布尔表达式结果为false,得到结果02 */ // 比较a和b哪个大? int a = 83; int b = 55; String result = a > b ? "a比较大":"b比较大"; System.out.println(result); // 获取a和b中较大的数据 int max = a>b ? a:b; System.out.println(max); } }
6.7 位运算符
-
使用二进制进行运算
package com.shine.operator; public class Demo05 { public static void main(String[] args) { System.out.println(10 + 2); System.out.println(10 - 2); System.out.println(10 * 2); System.out.println(10 / 2); System.out.println(10 % 2); /** * 0000 1010 * & 0000 0010 * ----------- * 0000 0010 = 2 */ System.out.println(10 & 2); /** * 0000 1010 * | 0000 0010 * ----------- * 0000 1010 = 10 */ System.out.println(10 | 2); /** * 异或 * 0000 1010 * ^ 0000 0010 * ----------- * 0000 1000 = 8 */ System.out.println(10 ^ 2); // 左移和右移 System.out.println(10 >> 1); System.out.println(10 >> 2); System.out.println(10 << 1); System.out.println(10 << 2); } }