目录
数组(Array)的认识(简单看,有别的编程语言基础直接跳)
标识符的命名规则
强制要求的规则:(必须遵循)
1.标识符只能由0~9、英文字母大小写、$、和 _组成。(就算是空格也不行。)
2.标识符的第一个位置不能是数字(其他随意)。
3.java严格规定大小写,意思是说(比如:你定义一个a和和A,这两个是不一样的。)
规范(这就相当于更高级一点,你也可以不遵循这些规范)
1.定义类名和接口名时:多单词组成时,所有单词的首字母大写。(exe:Name、MaxAge)
2.定义方法名和变量名时:采用小驼峰形式(xxxYyy),如果名字为多单词 组成时,第一个单词的首字母小写;之后的每个单词首字母写。 ( exe:age、name、getName)
3.定义常量名时:所有字母大写,如果是多个单词组成,则每个单词之间用下划线_连接。
(exe:MAX_AGE、AGE)
4.起名字的时候一般用“其对应的作用的英文单词”,这样显得更高级一点。
变量
变量的类型(基本和引用)
基本数据类型(单位为bite)
byte 1(-128~127)-2的七次方到2七次方-1
short 2(以此类推)-2的15次方到2的15次方-1
int 4(以此类推)
long 8 (需要注意定义时要在数子后面加上l或者L)
float 4 (位数可以精确到7位有效数字,声明时后缀f或者F)
double 8 …….
char 2
boolean true和false
引用数据类型
String
类class
数组array
接口interface
枚举enum
注解annotation
记录record
等
注意点:
1.定义long变量注意:long a = 21363473L;
2.定义float变量注意:float b = 1.33333f;
3.定义boolean变量时注意:boolean bo1 = true; boolean bo2 = false;只能有这两个值
4.定义char变量时注意:
(1):用' '来表示 如:char c = 'a'; char a = '中'。
(2):用转义字符来表示 如:\n \t。
(3):Unicode值来表示 如:char c = '\u0036';(用\uxxxx的形式 来表示)
(4):ASCII码值来表示 如:char c = 97;(其实表示的是97对应的a)
建议:
在定义整型和浮点型变量时一般都用int 和·double,这样就不用考虑是否加‘L’和‘F’了。
变量的自动类型提升和强制类型转换
自动类型提升
一般情况下:类型之间运算时只能从数据范围小的转为大的。
特殊情况:.byte,short, char 类型之间的数据做运算,结果自动类型提升为int类型。
大小关系可以这样理解:byte、short、char--->int--->long--->float--->double
注意点
整型常量规定为int类型
比如:byte = 1;byte b2 = b1+1;这就是错误的写法;这里应改为int b2 = b1+1;这样理解:1被规定为整型常量,int类型与byte类型相计算,自动类型提升为int类型。
浮点型常量规定为double类型
byte = 1;double d1= b1+1.3;因为1.3被规定为double类型,所以结果double类型。
float类型定义变量时必须记得加f
如果不加就错了,因为系统会自动把那个数认为double类型,而double转为float不符合小转大的规则。
long类型定义变量时看情况加l
如果不加系统就会认为他是int类型的变量,而如果这个数恰恰超出了int的数据范围,那么便会报错,如果没超出,则会自动类型提升不报错。
建议:
所以long类型定义变量为了省事(省去思考时间,何乐不为),定义时记得一定要加l。
强制类型转换
类型转换时只能遵循由小变大的转换,如果非要由大变小转换类型,就在需要转化的变量前面加上(类型名);()也叫做强制类型转换符。
规则:
自动类型转换中有大小顺序,依据这个顺序判断是否转换.
例子
举例强制类型转换的情况:double转int,long转short
还有一些不用强制转换的情况:转与不转都可以
特殊的String连接:
先认识一下:
1.String为引用数据类型,俗称字符串。
2.使用时要用""进行赋值。
3.赋值的内容可以是0个/1个/多个字符。
运算

例子:
数组
数组(Array)的认识(简单看,有别的编程语言基础直接跳)
- java的一种容器(除了数组还有别的集合框架:在内存中对多个数据的存储等;后面会讲到)
- 数组的几个组成
- 数组名
- 数组的元素
- 数组的下标、角标、下角标·、索引、index
- 数组的长度(即数组容器中存储的元素的个数)
- 数组的特点
- 数组中的元素在内存中是依次紧密排列的,有序的。
- 数组属于引用数据变量;而数组的的元素既可以是基本数据类型,也可以是引用数据类型。
- 创建数组对象会在内存中开辟一块”连续的“空间。占去空间的大小取决于数组长度和数组元素的种类
- 分类
- ·按元素类型分
- 基本数据类型元素的数组
- 引用数据类型元素的数组
- 按数组维数分
- 一维,二维…………
- ·按元素类型分
一维数组
- 数组的声明和初始化
- 1.静态初始化2.动态初始化 (可以认为没有初始化) (数组一旦初始化完成,它的长度就确定了,且不可更改)
- 1.静态初始化2.动态初始化 (可以认为没有初始化) (数组一旦初始化完成,它的长度就确定了,且不可更改)
- 数组的属性:length,表示数组的长度:数组名.length
- 数组元素的默认初始化值
- 整型数组的 0
- 浮点型数组 0.0
- 字符型 0(或者理解为'\u0000')
- boolean类型数组 false
- 引用数据类型数组 null
- 一维数组的内存解析
- 目前与之相关的内存结构
- 虚拟机栈:用于存放方法中声明的变量。(可以理解为数组名字)
- 堆:存放数组的实体(数组中的所有元素)
- 这是康师傅视频里面的例子,不想自己做了,给康师傅宣传一下,自学java的可以去搜索他的视频,讲的超细
- 目前与之相关的内存结构
二维数组
- 数组的声明和初始化
- 调用数组的指定元素:用下表
- 数组的属性:length,表示数组的长度:数组名.length
- 数组的遍历
- 数组元素的默认初始化值
- 外层元素默认存储地址值(和内层元素的类型)
- 当动态初始二维数组时没有指定内层元素的长度,则打印外层元素时为null,而内层元素并没有被外层元素指针指向,所以会报错
- 内层元素打印出来的规律与一维数组相同
- 外层元素默认存储地址值(和内层元素的类型)
- 二维数组的内存解析
常见算法操作:这里不细讲,之后的集合框架由
赋值与复制、数组反转、数组扩容、数组的缩容(删除索引为(?)的数组元素)、二分查找: 适用于有序数组元素、线性查找:for循环遍历从0开始查找、冒泡排序,快速排序(最重要的两个排序方法)
数组常见异常:这里不讲,后面复习异常会说
可以先试着思考:角标越界?空指针异常?
想说的题外话:
强调本专栏更适合复习Java的人,当然初学者也可以跟着(但遇到那种“后面会讲”这类词,你就不用看我在那之后写的内容了,跳过看即可)
b站尚硅谷宋红康真的超细,初学者可以过去看看,专栏里的照片明显不属于本人的照片都是视频里的内容
最后推荐一款记笔记的电脑软件:幕布,这是内容