Java的概念
注释
注释概念
用来对程序中的代码进行解释说明的部分
注释的特点
编译的时候不会检测注释中的语法是否正确
程序运行的时候不会运行注释中内容
注释的分类
单行注释 样式: // 注释的内容
单行注释注释的内容不能回车
单行注释可以嵌套
多行注释 样式: /* 注释的内容 */
多行注释可以有回车
多行注释不能嵌套
文本注释(今天不讲)
注释用的总结
对代码进行解释说明
对程序的设计思路进行描述
可以用来调试程序(把认为有问题的代码注释掉,逐行打开注释运行.直到找到错误所在位置)

关键字
关键字的含义:
在java中有一些被赋予特殊含义的英文单词,这些单词称之为保留字.每个单词都有特殊的功能

关键字特点 :
都是纯小写字母 java是严格区分大小写的: new New new1
其中const,goto虽然被保留了,但是没有特殊含义
以后我们要给自定的内容取名字,一定不要和关键字重名.

标识符
标识符的作用:
用来给自定义内容取名字的字符序列就叫做标识符. 以后给java中那些内容取名字: 类, 接口, 枚举, 变量, 常量, 方法, 包
标识符的组成内容:
英文字母大小写: a-z, A-Z
数字: 0-9
英文特殊符号: _(下划线) $(美元符号)
其他国家的语言符号(中文, 日文, 泰文),实际开发不会实用.(基本不用)
标识符注意事项
不能和关键字重名 例如: class(错误) class1(正确)
不能以数字开头 例如: 1a(错误) a1(正确)
标识符区分大小写 例如: a 和A 不同的标识符

常量
常量的概念:
指的是程序的执行过程中,值不能发生改变的量就是常量
赋值运算符:
= 作用:把符号右边的值,赋值给左边的内容
常量根据表现形式的分类
字面值常量 任意写出一个数据,这个数据根据他字面意思就知道它代表什么值,这样常量就叫做字面值常量: 比如: 5, 3.14 “helloworld”, -100
符号常量: 给常量取了个名字,通过这个名字就可以获取到它存储常量值, 根据这符号也能知道他表示的是什么意思.像这样的常量就是符号常量 例如: MAX = 100; MIN = -100;
根据数据类型对常量的分类
基本类型的数据:
简单的数据,数据就是表示自己
整数类型常量
随便写一个整数就是整型常量: 比如: 100, -1, 0, 530, 1314
小数类型常量
随便写一个小数就是小数常量: 比如:3.14, 0.2, -0.615
字符类型常量
使用单引号括起来的单个字符就是字符常量: 比如:’a’, ‘国’, ‘1’
布尔类型常量
用来表示真假的常量, 只有两个值: true 和 false
引用类型的数据:
复杂的数据类型,数据表示不再是自身,是一种由多种其他类型的数据组合而成的类型.
字符串常量:
使用双引号括起来的字符序列就是字符串常量,字符序列个数可以0或者n个. 比如: “”, “a”, “HelloWorld!!!”
空常量:
null, 表示空,代表不指向任何内存空间的位置. null不能打印,否则报错

变量
数据类型
Java是一门非常严谨的语言, 所以它是一种强类型语言,在java要存储数据的时候,就要指明这个数据在内存中所占的空间大小. 只有这样才能为这个数据开辟内存空间存储它.
数据类型的作用就是用来规定数据在内存中所占空间大小的.java中提供了丰富的数据类型,不同的数据类型,表示的内存空间大小是不一样的.
java中数据类型的分类
基本类型的数据类型:
这些类型都是在jdk中已经提前定义好了,不能添加也不会减少,描述的都是一些简单的数据,描述的都是数据本身.
引用类型的数据类型:
负责的数据类型,描述的不是数据本身,而是数据在内存中地址,根据这个地址就可以找到他存储的数据. 在jdk中有一些引用类型的数据已经提前定义好了,但是我们也可以自定引用类型的数据.
基本数据类型
整数类型
byte 1个字节
short 2个字节
int 4个字节
long 8个字节
小数类型
float 4个字节
double 8个字节
字符类型
char 2个字节
布尔类型
boolean 未知 true和false

字符类型
字符类型就是char. 存储的都是使用单引号括起来的单个字符.
在计算机中,所有数据最终存储到计算机中都是以二进制存储,也就是符号不可能直接放到内存或者硬盘上.
字符串类型
字符串是一个引用类型的数据. 它也有类型名. 类型名为:String
如何定义String类型变量:
String 变量名 = 初始值;
数据类型之隐式转换
当小范围数据类型和大范围数据类型在一起运算符时候, 会将小范围数据类型自动提升为大范围数据类型.然后再进行运算. 运算的结果依然是大范围数据类型.
隐式转换最直接体现: 大范围类型变量 = 小范围类型变量;
数据类型隐式转换只针对数值类型数据. boolean不是数值类型数据,其他基本类型都是数值类型的
数据类型范围的大小关系罗列
byte < short<int<long<float<double
char < int < long < float < double
注意事项
byte, short, char, int这几种类型在运算的时候,统统都会提升为int类型.
int及int类型范围的数据类型做运行的时候, 也会进行类型向上提升,那个类型的范围大,最终就提升为那个范围的数据.
例如; int + float ---> float
float + float --> float
float + double--> double
数据类型之显式转换(强类型转换)
当我们使用大范围数据类型给小范围的数据类型赋值的时候,就需要使用显示转换或者强制转换的方式才能完成, 否则不允许直接赋值.
强制类型转换的格式:
小范围数据类型 = (小范围数据类型名) 大范围的数据类型;
比如: short b = 10; int c = 20;
b = (short)c;
注意:
强制类型转换有风险, 会导致数据溢出.也就是数据的丢失.
运算符
运算符的概述:
就是用来对程序中的数据进行的操作的符号.
运算符的分类:
1.算术运算符
用来做算术运算符的符号
符号的罗列: +, -, *, /, %
+:加号运算符
做加法运算符
表示正数
表字符串的拼接, 只要加号运算符两边有一个边字符串时,此时加号的作用就是拼接
-:减号运算符
做减法运算符
表示负数
*:乘法运算符
表示求两个数据的乘积
/:除法运算符
表示求两个数的商
注意:
两边都是整数,结果依然整数
两边只要有一边是小数,结果就是小数.
除数不能为0,否则运行报错
%: 取余(模)运算符
求出两个数相除之后的余数
除不尽,余数的正负只和被除数有关,被除数是正的,余数就是正的,否则就是负的.
除的尽余数就是0.
作用: 使用它判断一个数字的奇偶.

自增.自减运算符
1. 自增和自减运算符只能操作变量,不能操作常量.
2. 自增运算符运算完之后让变量+1, 自减运算符运算完之后会让变量-1.
3. 自增: ++ 运算完的结果就是变量+1
4. 自减:-- 运算完之后会让变量 - 1
5. ++和--都可以即出现在变量前,也可以出现变量后.
6. ++和--出现变量前后对整个式子值的影响:
++在变量前: 先对变量加1,再把变量的值当做式子的值. ---> 先加后用
++在变量后: 先取出变量的值当做式子的值,再对变量加1 ---> 先用后加
--在变量前: 先对变量减1,再把变量的值当做式子的值. ---> 先减后用
--在变量后: 先取出变量的值当做式子的值,再对变量减1 ---> 先用后减

2.赋值运算符
用来给变量进行赋值操作的符号
赋值运算符的分类:
基本赋值运算符: =
复合赋值运算符: +=, -=, *=, /=, %=
复合赋值运算符
+=: a+=3, 等价于: a = a + 3
-=: a-=3. 等价于: a = a - 3;
*=: a*=3 等价于: a = a*3;
/=: a/=3 等价于: a = a / 3;
%=: a %=3 等价于: a = a % 3;
复合赋值运算符工作的特点: 将变量使用第一个符号对右边的数据操作之后,重新赋值给这个变量本身.

3.比较运算符
比较数据大小和数据是否相等的运算符.
分类
比较大小的运算符: >, <, >=, <= 只能用来比较数值类型数据
比较是否相等的运算符: ==, != 可以任意类型的数据
运算符的结果:
比较运算符的结果都是boolean的数据, 要么为true,要么为false

4.逻辑运算符
用来对逻辑值进行操作的运算符. 逻辑值指的就是boolean类型的数据 ,逻辑运算符处理之后的结果依然是逻辑值.
逻辑运算符的罗列: &&(逻辑与) || (逻辑或) !(逻辑非)
&&: 逻辑与, 两边全真则真, 一假则假
true && true --> true
false && true --> false
true && false --> false
false && false -->false
||:逻辑或, 一真则真,同假才假
true || true --> true
false || true --> true
true || false --> true
false || false --> false
!:逻辑非, 非真既假,非假既真
!true -- > false
!false --> true

5.位运算符
对内存中的二进制数据进行直接操作的运算符,就是位运算符.
只能操作整数, 不能操作小数
咱们要了解位运算符有哪些: <<, >>, >>>
<<: 左移运算符 ,每移动一位,相当于乘以2的一次方. 移动几位就乘以2的几次方.
5 << 1 5 * 21 = 10
>>: 右移运算符, 每移动一位,相当于除以2的一次方,移动几位就除以 2个几次方
8 >> 1 8 / 2 = 4
-16 >> 2 -16 / 4 = -4
>>>:无符号右移运算符: 每移动一位,相当于除以2的一次方,移动几位就除以 2个几次方 只能操作正整数. 负数不要使用它操作.
总结特点:如果想让数据快速求出乘2或者2除的结果,就可以使用这个符号,比直接做*和/的效率要高的多.

6.三目(元)运算符
目和元一个意思: 指的就是运算符能操作的数据个数.
三目运算符: 同时能操作三个数据.
格式: 表达式1 ? 表达式2 : 表达式3;
格式说明:
表达式1: 必须是一个返回值是布尔类型的式子, 如果一个式子返回值是boolean类型,这个式子就称之为布尔表达式.
表达式2和表达式3可以是任意类型结果的式子.
三目运算符的运行规则
1. 计算表达式1的值, 要么为true,要么为false
2. 如果表达式1计算结果为true, 就会把表达式2的结果当做整个三目运算符的结果返回.
3. 如果表达式1计算结果为false, 就会把表达式3的结果当做整个三目运算符的结果返回.
