基础知识
1. 注释
注释是对代码的解释和说明文字。
注释的内容不会参与编译和运行的,仅仅是对代码的解释说明而已。
所以,不管在注释当中写什么内容,都不会影响代码运行的结果。
Java中的注释分为三种:
- 单行注释:
// 这是单行注释文字
- 多行注释:
/*
这是多行注释文字
这是多行注释文字
这是多行注释文字
*/
注意:多行注释不能嵌套使用。
- 文档注释:
/**
这是多行注释文字
这是多行注释文字
这是多行注释文字
*/
2. 关键字
abstract | assert | boolean | break | byte |
---|---|---|---|---|
case | catch | char | class | const |
continue | default | do | double | else |
enum | extends | final | finally | float |
for | goto | if | implements | import |
instanceof | int | interface | long | native |
new | package | private | protected | public |
return | strictfp | short | static | super |
switch | synchronized | this | throw | throws |
transient | try | void | volatile | while |
3. 变量
变量就在程序中临时存储数据的容器。但是这个容器中只能存一个值。
数据类型 变量名 = 数据值;
- 数据类型:限定了变量当中能存储什么类型的数据。 如果要存10,那么数据类型就需要写整数类型。如果要存10.0,那么数据类型就需要写小数类型。
- 变量名:其实就是这个容器的名字。当以后想要使用变量里面的数据时,直接使用变量名就可以了。
- 数据值:真正存储在容器中的数据。
- 分号:表示语句的结束,就跟以前写作文时候的句号是一样的。
public class VariableDemo{
public static void main(String[] args){
//定义一个整数类型的变量
//数据类型 变量名 = 数据值;
int a = 16;
System.out.println(a);//16
//定义一个小数类型的变量
double b = 10.1;
System.out.println(b);//10.1
}
}
public class VariableDemo2{
public static void main(String[] args){
//1.变量名不允许重复
//int a = 10;
//int a = 20;
//System.out.println(a);
//2.一条语句可以定义多个变量
//int a = 10, b = 20, c = 20,d = 20;
//System.out.println(a);//?
//System.out.println(b);//?
//3.变量在使用之前必须要赋值
int a = 30;
System.out.println(a);
}
}
4. 数据类型
- 基本数据类型
- 引用数据类型(面向对象的时候再深入学习)
数据类型 | 关键字 | 内存占用 | 取值范围 |
---|---|---|---|
整数 | byte | 1 | 负的2的7次方 ~ 2的7次方-1(-128~127) |
short | 2 | 负的2的15次方 ~ 2的15次方-1(-32768~32767) | |
int | 4 | 负的2的31次方 ~ 2的31次方-1(-21亿多 ~ 21亿多) | |
long | 8 | 负的2的63次方 ~ 2的63次方-1 | |
浮点数 | float | 4 | 1.401298e-45 ~ 3.402823e+38 |
double | 8 | 4.9000000e-324 ~ 1.797693e+308 | |
字符 | char | 2 | 0-65535 |
布尔 | boolean | 1 | true,false |
整数默认是int类型,浮点数默认是double类型。
整数类型和小数类型的取值范围大小关系:double > float > long > int > short > byte
public class VariableDemo3{
public static void main(String[] args){
//1.定义byte类型的变量
//数据类型 变量名 = 数据值;
byte a = 10;
System.out.println(a);
//2.定义short类型的变量
short b = 20;
System.out.println(b);
//3.定义int类型的变量
int c = 30;
System.out.println(c);
//4.定义long类型的变量
long d = 123456789123456789L;
System.out.println(d);
//5.定义float类型的变量
float e = 10.1F;
System.out.println(e);
//6.定义double类型的变量
double f = 20.3;
System.out.println(f);
//7.定义char类型的变量
char g = 'a';
System.out.println(g);
//8.定义boolean类型的变量
boolean h = true;
System.out.println(h);
}
}
隐式转换
自动类型提升,就是把一个取值范围小的数据或者变量,赋值给另一个取值范围大的变量。此时不需要我们额外写代码单独实现,是程序自动帮我们完成的。
两种提升规则:
- 取值范围小的,和取值范围大的进行运算,小的会先提升为大的,再进行运算。
- byte、short、char三种类型的数据在运算的时候,都会直接先提升为int,然后再进行运算。
取值范围从小到大的关系:
byte < short < int < long < float < double
强制转换
把一个取值范围大的数据或者变量赋值给另一个取值范围小的变量,是不允许直接操作,如果一定要这么干就需要加入强制转换。
书写格式:目标数据类型 变量名 = (目标数据类型)被强转的数据;
public class OperatorDemo2 {
public static void main(String[] args) {
double a = 12.3;
int b = (int) a;
System.out.println(b);//12
}
}
注意:强制转换有可能会导致数据发生错误。(数据的精度丢失)
5. 标识符
- 必须由数字、字母、下划线_、美元符号$组成。
- 数字不能开头
- 不能是关键字
- 区分大小写的。
变量名和方法名:
-
如果是一个单词,那么全部小写,比如:name
-
如果是多个单词,那么从第二个单词开始,首字母大写,比如:firstName、maxAge
类名:
-
如果是一个单词,那么首字母大写。比如:Demo、Test。
-
如果是多个单词,那么每一个单词首字母都需要大写。比如:HelloWorld
6. 运算符
对常量或者变量进行操作的符号。
+ - * =:跟小学数学中一模一样没有任何区别.
/:
1.整数相除结果只能得到整除,如果结果想要是小数,必须要有小数参数。
2.小数直接参与运算,得到的结果有可能是不精确的。
System.out.println( 10 / 3);//3
System.out.println(10.0 / 3);//3.3333333333333335
%:取模、取余。他做的也是除法运算,只不过获取的是余数而已。
System.out.println(10 % 2);//0
System.out.println(10 % 3);//1
+=、-=、*=、/=、%=:就是把左边跟右边进行运算,把最终的结果赋值给左边,对右边没有任何影响。
int a = 10;
int b = 20;
a += b;//把左边和右边相加,再把最终的结果赋值给左边,对右边没有任何影响
// 相当于 a = a + b;
System.out.println(a);//30
System.out.println(b);//20
扩展的赋值运算符中隐层还包含了一个强制转换。
a += b ;实际上相当于 a = (byte)(a + b);
byte a = 10;
byte b = 20;
//a += b;
a = (byte)(a + b);
System.out.println(a);//30
关系运算符
符号 | 解释 |
---|---|
== | 就是判断左边跟右边是否相等,如果成立就是true,如果不成立就是false |
!= | 就是判断左边跟右边是否不相等,如果成立就是true,如果不成立就是false |
> | 就是判断左边是否大于右边,如果成立就是true,如果不成立就是false |
>= | 就是判断左边是否大于等于右边,如果成立就是true,如果不成立就是false |
< | 就是判断左边是否小于右边,如果成立就是true,如果不成立就是false |
<= | 就是判断左边是否小于等于右边,如果成立就是true,如果不成立就是false |
逻辑运算符
&:逻辑与(而且)
两边都为真,结果才是真,只要有一个为假,那么结果就是假。
|:逻辑或(或者)
两边都为假,结果才是假,只要有一个为真,那么结果就是真。
^(异或)的使用:
如果两边相同,结果为false,如果两边不同,结果为true
!(取反)的使用:
是取反,也叫做非,false取反就是true,true取反就是false
&& ||:
运算结果跟&与|是一模一样的,只不过具有短路效果。
当左边不能确定整个表达式的结果,右边才会执行。
当左边能确定整个表达式的结果,那么右边就不会执行了。从而提高了代码的运行效率。
三元运算符
关系表达式 ? 表达式1 :表达式2 ;
- 计算关系表达式的值。
- 如果关系表达式的值为真,那么执行表达式1。
- 如果关系表达式的值为假,那么执行表达式2。
自增自减运算符
++ 自增运算符把变量里面的值+1
-- 自减运算符把变量里面的值-1
- 放在变量的前面,我们叫做先++。 比如:++a
- 放在变量的后面,我们叫做后++。 比如:a++
7. 字符串的+操作
-
当+操作中出现字符串时,此时就是字符串的连接符,会将前后的数据进行拼接,并产生一个新的字符串。
-
当连续进行+操作时,从左到右逐个执行的。
8. 字符的+操作
当+操作中出现了字符,会拿着字符到计算机内置的ASCII码表中去查对应的数字,然后再进行计算。
评论区