目录
前言
今天是第一天系统地进行java语言学习,以后都会做类似的笔记,供自己复习用。如果有错误的地方,欢迎指出,也欢迎新手和我一起学习进步。
标识符
什么是标识符
可由程序员自行命名,例如类名、接口名、变量名、常量名、方法名....
标识符的命名规则
1、只能由数字、字母、下划线_和美元符号$组成,不能包含其他符号包括空格。
2、不能以数字开头。
3、严格区分大小写。
4、关键字不能作为标识符。
5、理论上无长度限制,但最好不要太长。
标识符的命名规范
1、最好见名知意
2、遵守驼峰命名方式
SystemService
UserService
CustomerService
3、类名、接口名:首字母大写,后面每个单词首字母大写
4、变量名、方法名:首字母小写,后面每个单词首字母大写
5、常量名:全部大写
关键字
1、编写代码过程中记忆。
字面值
1、整型:10、100
2、布尔型:true、false
3、浮点型:3.14
4、字符串型:"abc"【英文双引号】
5、字符型:'a'【英文单引号】
变量
什么是变量
1、本质上是内存中的一块空间,这块空间有“数据类型”、“名字”、“字面值”。
2、变量是内存中存储数据的最基本的单元。
数据类型的作用
1、不同数据有不同的数据类型,不同的数据类型底层会分配不同大小的空间。
2、数据类型是指导程序在运行阶段应该分配多大的内存空间。
3、java中的变量必须先声明再赋值,才能访问,无法访问未初始化的变量。
4、变量在同一个作用域中无法重名。
5、java在方法体中代码执行的顺序自上而下。
变量的作用域
1、变量的有效范围。
2、下例中,a的作用域为for循环内,循环结束后,a变量的内存就释放了。
for(int a = 0 , a < 10 , a++)
而下面这个,循环结束后,a变量的值为10。
int a;
for( a = 0, a < 10 , a++ )
3、 在同一个作用域中,变量名不能相同;在不同作用域中,变量名可以相同。
4、java中遵循“就近原则”。
变量的类型
1、局部变量:在方法体当中声明的变量。
2、成员变量:在方法体外、类体之内声明的变量。
数据类型
基本数据类型
1、整数型:byte、short、int、long
(1)十进制:是一种缺省默认的方式【a=10】(常用)
(2)八进制:以0开始【a=010,相当于十进制8】
(3)十六进制:以0x开始【a=0x10,相当于十进制16】
(4)在java中,整数型字面值被默认当做int类型来处理,要让其被当做long型来处理的话,需要在整数型字面值后面添加l/L,建议使用大写L。
(5)类型转换:
a.自动类型转换:小容量可以自动转化为大容量。
b.强制类型转换:大容量不能直接赋值给小容量,需要进行强制类型转换,强制类型转换需要加“强制类型转换符”。【可能会产生精度损失】
原理:将高位的二进制砍掉【所有的数据强转都是这样完成的】。
特例:在java语言中,当一个整型字面值没有超过byte,short,char取值范围时,这个字面值可以直接赋值给byte,short,char类型的变量。这种机制在java中允许了,目的是为了方便程序员的编程。
c.byte,short,char混合运算时,各自先转化为int类型再做运算。
d.多种数据类型混合运算,先转换为容量最大的那种类型再做运算
2、浮点型:float、double
(1)在java中,所有浮点型字面值,默认被当做double类型来处理,要想要字面值被当做float类型来处理,需要在字面值后面添加F/f。
3、布尔型:boolean
4、字符型:char
引用数据类型
1、类
2、接口
3、数组
运算符
算术运算符
1、++和--:++(--)出现在变量后,先做赋值运算,再做自加运算;++(--)出现在变量前,先做自加运算,再做赋值运算。
关系运算符
1、关系运算符的结果一定是布尔类型:true或false
2、运算原理:比较的是变量中保存的值之间的大小。
逻辑运算符
1、种类:&:逻辑与
|:逻辑或
!:逻辑非
^:逻辑异或(两边的算子只要不一样,结果就是true)
&&:短路与
||:短路或
2、逻辑与和短路与【一般来说,短路与的效率更高,但某些情况下,只能使用逻辑与&】
int x = 10;
int y = 8;
System.out.println( x < y & ++x < y );
System.out.println(x);//此处运行结果为11
上述为逻辑与,它相当于将每个表达式的结果均运行出,最后再进行与运算,故而x最后结果为11
int x = 10;
int y = 8;
System.out.println( x < y && ++x < y );
System.out.println(x);//此处运行结果为10
上述为短路与,当x < y这个表达式已经是false了,对于与来说,无论后面的表达式是什么,最终与的结果均为false,故后面的表达式就不运行了(即++x < y),相当于被“短路”不被执行。
赋值运算符
1、基本:=
2、扩展:+=、-=、/=、*=、%=
3、先执行等号右边的表达式,将执行结果赋值给左边的变量。
4、扩展类的赋值运算符不改变运算结果类型,假设最初这个变量的类型是byte类型,无论怎么进行追加或追减,最终该变量的数据类型还是byte类型。
byte a=1;
a += 1;//等同于 a = (byte)(a+1)
字符串连接运算符“+”
1、使用情景:
当“+”运算符两边的数据只要有一个数据是字符串,一定会进行字符串连接运算。且连接运算之后的结果还是一个字符串类型。
2、运行顺序:
一个表达式当中可以出现多个“+”,在没有添加小括号的前提之下,遵循自左向右的顺序依次计算。
三目运算符
1、语法规则:
布尔表达式 ? 表达式1 : 表达式2
2、执行原理:
当布尔表达式的结果为true时,选择表达式1作为整个表达式的执行结果。
当布尔表达式的结果为false时,选择表达式2作为整个表达式的执行结果。
控制语句
选择结构
1、种类
if,if-else,switch
循环结构
1、种类
for,while,do...while
控制循环结构
1、种类
break,continue