一.变量
(1) 按所属的数据类型划分:
基本数据类型变量
引用数据类型变量
(2)
按被声明的位置划分:
局部变量:方法或语句块内部定义的变量
成员变量:方法外部、类的内部定义的变量
二.数据类型
类型
|
占用内
存
|
默认值
|
整数型(int)
| 4字节 | 0 |
短整数型(short)
| 2字节 | 0 |
长整数型(long)
| 8字节 | 0 |
字节型(byte)
| 1字节 | 0 |
浮点型(float)
| 4字节 | 0.0f |
双精度型(double)
| 8字节 | 0.0d |
布尔型(boolean)
| 1字节 | false |
字符型(char)
| 2字节 | '\u0000' |
三.标识符
1
由字母、数字、下划线(_)和美元符号($)组成。
2
不能以数字开头。
3
区分大小。
4
长度无限制。
5
不能是 Java 中的保留关键字。
示例:
合法标识符:HelloWord、username2、user_name、_userName、$abc_123
非法标识符:2UserName、user#Name、Hello World、class
四.类型转换
boolean 类型不能转换成任何其它数据类型。
自动类型转换:
容量小的类型自动转换成容量大的数据类型
byte,short,int -> float ->long ->double
byte,short,int 不会互相转换,它们三者在计算时会转换成 int 类型
强制类型转换:
容量大的类型转换成容量小的数据类型时,要加上强制转换符
long l = 100L;
int i = (int)l;
有可能造成精度降低或数据溢出,使用时要小心。
转义字符
\n 换行,将当前位置移到下一行开头
\r 回车 ,将当前位置移到本行开头
\t 水平制表(HT)
(跳到下一个
TAB
位置)
\\ 代表一个反斜线字符''\'
\' 代表一个单引号(撇号)字符
\" 代表一个双引号字符
五.运算符
一、算术运算符
![](https://i-blog.csdnimg.cn/blog_migrate/39fe635f979b365eb0d5b8d71fd510b4.jpeg)
++: 如果是变量前缀:先对此变量加 1,再执行其他的操作。
如果是变量后缀:先执行当前语句的其他操作,再对此变量加 1
--: 如果是变量前缀:先对此变量减 1,再执行其他的操作。
如果是变量后缀:先执行当前语句的其他操作,再对此变量减 1
二、赋值运算符
赋值运算符作用是将一个值赋给一个变量,运算顺序从右到左
![](https://i-blog.csdnimg.cn/blog_migrate/c8a2b988d8cc870b7e7f39f6fa6065b5.jpeg)
三、关系运算符
关系运算符作用是比较两边的操作数,结果总是 boolean 型的。
![](https://i-blog.csdnimg.cn/blog_migrate/77886f56e05e6d73785898c96868cfc4.jpeg)
四、逻辑运算符
![](https://i-blog.csdnimg.cn/blog_migrate/ec587089a9ccb06f68e3d72826474a08.jpeg)
逻辑运算符用于对 boolean
型结果的表达式进行运算,运算结果总是 boolean 型。
五、字符串连接运算符
String s="He" + "llo"; 结果"Hello"
"+"除了可用于字符串相连接,也能将字符串与其它的数据类型相连成一个新的字符串。
如:String s="x" + 123; 结果"x123"
六、三目运算符
X ? Y : Z
X 为 boolean 类型表达式,先计算 x 的值,若为 true,整个三目运算的结果为表达式 y 的值,否则整个运算结果为表达式 z 的值。
例:
int score = 75;
String type = score >=60 ? "及格" : "不及格";
七、操作符优先级
运算符的优先次序
表达式的运算按照运算符的优先顺序从高到低进行,同级运算符从左到右进行:
优先次序
运算符
1 . [] ()
2 ++ -- ! ~ instanceof
3 new (type)
4 * / %
5 + -
6 >> >>> <<
7 > < >= <=
8 = = !=
9 &
10 ^
11 |
12 &&
13 ||
14 ?:
15 = += -= *= /= %= ^=
16 &= |= <<= >>= >>>=
六.语句
一、if 条件语句
if 条件结构是根据条件判断之后再做处理
if(条件语句){…}
if (条件语句){…}else{…}
if (条件语句){…}else if(条件语句){…}
if (条件语句){…}else if(条件语句){…}else{…}
二.switch 语句
switch(表达式){
case 取值 1: 语句块 1;break;
case 取值 n: 语句块 n;break;
default: 语句块 n+1;break;
}
switch 语句有关规则
表达式的返回值必须是下述几种类型之一:
int, byte, char, short,String
;
case 子句中的取值必须是常量,且所有 case 子句中的取值应是不同的;
default 子句是可选的
;
break 语句用来在执行完一个 case 分支后使程序跳出 switch 语句块;如果 case 后面没有写 break 则直接往下面执行!
Case 后面的执行体可写{ }也可以不写{ }
三、while 循环
符合条件,循环继续执行;否则,循环退出
特点:先判断,再执行
语法:
while(条件表达式){
//语句块;
}
四、do-while 循环
先执行一遍循环操作,符合条件,循环继续执行;否则,循环退出
特点:先执行,再判断
语法:
do {
循环操作
}while ( 条件表达式 );
while 循环和 do-while 循环的区别?
while:先判断条件,如果条件满足,再执行循环操作
do while:先执行一遍循环操作,然后再判读条件,如果条件满足,继续执行循环操作。
五、for 循环
语法:
for(
初始化参数;判断条件 ;更新循环变量
){
循环体;
}
七.数组
概述
数组是相同数据类型的
多个数据的容器
。
这些元素按
线性顺序排列
。所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素;除最后一个
元素外,每一个元素都有唯一的后继元素。(“
简单理解就是:一个跟一个顺序排列
”)。
创建格式
格式 1. 数据类型[] 数组名称 = new 数据类型[数组长度];
格式 2. 数据类型[] 数组名称 = {数组内容 1,数组内容 2,数组内容 3...数组内容 n};
格式 3. 数据类型[] 数组名;
格式 3 属于只创建了数组引用名, 并未在内存创建数组空间。
格式 4. 数据类型[] 数组名称 = new 数据类型[]{内容 1,内容 2,内容 3...内容 n};
下标
可以理解为数组中内容的数字序号,从 0 开始 ,对于长度为 n 的数组,下标的范围是 0~n-1。
可以通过下标的方式访问数组中的每一个元素。
例如: 创建 int 类型数组 arr , 给数组 arr 的 5 下标赋值数据 , 然后打印
int
[]
arr
=
new int
[10];
arr
[5] = 123;
System.
out
.println(
arr
[5]);
数组长度获取
数组名称.length
注意
使用数组不当, 会出现如下问题:
数组未赋值: 空指针异常
超出长度的下标操作: 数组越界异常
注意:数组的长度在创建时就固定了。
面向对象思想
1.三大思想
面向对象思想从概念上讲分为以下三种:
OOA
、
OOD
、
OOP
OOA
:面向对象分析(
Object Oriented Analysis
)
OOD
:面向对象设计(
Object Oriented Design
)
OOP
:面向对象程序(
Object Oriented Programming)
2.三大特征
封装性:所有的内容对外部不可见
继承性:将其他的功能继承下来继续发展
多态性:方法的重载本身就是一个多态性的体现
类和对象
类表示一个共性的产物,是一个综合的特征,而对象,是一个个性的产物,是一个个体的特征。
(类似生活中的图纸与实物的概念。)
类必须通过对象才可以使用,对象的所有操作都在类中定义。
类由属性和方法组成:
·
属性:就相当于人的一个个的特征
·
方法:就相当于人的一个个的行为,例如:说话、吃饭、唱歌、睡觉