java基础语法
java注释
java注释可以分为三种注释:
- 单行注释(用 // 表示单行注释)
- 多行注释(用/* */表示多行 注释)
- 文档注释(用/** */表示文档注释)
java的标识符
java的标识符是指程序中我们自己起的名字,如:类的名字,变量的名字,方法的名字,在程序中主要起识别的作用。
标识符的命名规则
- 标识符的开头必须由大小写字母,下划线( _ ) ,美元符号($)构成。
- 在java中大小写是不一样的(name 和Name是两个标识符)。
- java开头后面的构成部分可以由数字,字母,划线( _ ) ,美元符号($)任意构成。
- 标识符中如果有两个或以上的单词命名,必须用驼峰命名法(第一个单词小写,后面每有一个新单词都要首字母大写)。
- 不能用关键字命名。
java关键字
java数据类型
基本数据类型
引用数据类型
基本数据类型
扩展:基本数据类型都是存放在栈中的
-
整数类型
- byte类型(占一个字节)
- short类型(占2个字节)
- int类型(占4个字节)
- long类型(占8个字节)
-
浮点类型
- float类型(占4个字节)
- double类型(占8个字节)
-
字符串类型
- char类型(占2个字节)说明:只能用于一个字符串
-
布尔类型(boolean)占一个位,值只有两个true和flase
引用数据类型
引用数据类型都是存放在堆里的,栈里面存放的是引用数据类型的地址
- 类
- 数组
- 接口
说明
计算机中存储的最小单位是位(bit)
然后是字节(byte)1b = 8bit
1kb=1024B
1M=1024KB
1G=1024M
java数据类型扩展
整数扩展
整数数据类型又分为:二进制,八进制,十进制,十六进制
几进制的意思是逢几进几
二进制:又称机器语言 0101
八进制:0开头
十六进制:0x开头
浮点数扩展
浮点数的基本数据类型不能用 ==进行比较,因为实际存储的浮点数是被截取了一定的精度进行的存储,既浮点数无法精确计算
字符串扩展
所以的字符串本质都是数字
字符串的背后都是一张编码表,(编码表很多)每个编码对应一个字符,我们所用到的所有字符都有相对应的ASCII编码
布尔值扩展
boolean flag=true;
if(flag==true){}
if(true){}
上面的相等的,因为flag的值已经为true,不需要在让他等于true
java类型转化
强制类型转化
自动类型转化
强制类型转化
数据类型的内存从小到大:byte→short→char→int→long→float→double
- 大的数据类型转化为小的数据类型称为强制类型转化
- 转化格式:(转化类型)+变量名(或变量)
- 在进行强制类型转化的时候回出现内存溢出,精度问题
自动类型转化
小的数据类型转化为大的数据类型称为自动类型转化,数据类型好比一个盒子,数据类型占的字节越大,里面装的东西越多, 把大盒子里的东西放到小盒子里是放不下的,除非你强制塞进去,那么就会出现内存溢出的情况。
比如:把int=200 强制转换为byte类型,因为数太大放不进去这个盒子,所以数会混乱出现一个
java变量和常量
变量是可以变换的量,他其实是在内存开辟一块空间,空间的大小就是数据类型,怎么找到这个空间就需要变量名字,而这个变量可以用于的范围就是变量的作用域。
所以变量的三要素是:声明数据类型,声明标识符,作用域
变量
-
局部变量:是指在方法里面的变量,常见程序的入口main方法就是一个方法,在方法里面定义的变量只能在方法里面使用,它的作用域只能在这个花括号里面。 局部变量没有默认是初始值,所以必须对值进行初始化
-
全局变量(成员变量 )
-
类变量(静态变量)
被static修饰的变量叫做类变量(静态变量),类变量是所有实例化对象的公共资源,实例化对象的值会影响类对象本身的值。
类变量可以被对象调用,也可以被类名调用。
-
实例变量
定义在类里面的变量叫做实例变量 ,是实例化对象的私有,实例化对象对其值得改变不会影响实例变量本身的值。
public class Day1 { static int num1; //类变量,也叫静态变量(值默认0) int num2;//实例变量(值默认0) public static void main(String[] args) { Day1 a=new Day1(); Day1 b=new Day1(); a.num2=10; a.num1=20; System.out.println(b.num2);//结果为0 //实例变量只改变自身的值,a.num2=10,num2的值不会变,而不是对b.num2的值有影响 System.out.println(b.num1);//结果为20 //类变量属于所有实例化对象,a.num1=20,所以num1的值会变为20,所以b.num1=20. } }
-
常量
常量是一般不会变的量,用final修饰。
java变量的命名规范
- 类名:首字母大写和驼峰原则
- 全局变量名:首字母小写驼峰原则
- 局部变量名:首字母小写驼峰原则
- 方法名:首字母小写驼峰原则
- 常量:全是大写字母用下划线______区分多个单词
java运算符
算术运算符
-
一元运算符
- ++(自增运算法)
- –(自减运算法)
-
二元运算符
- +(加)
- -(减)
- *(乘)
- /(除)
- %(模运算)值为取余
-
三元运算符
-
?:(如30>2?1:0)
如果30>2为真,则输出1,否则输出0。
-
赋值运算法
- =(把右边的值赋给左边)
- +=(a=10;a+=3和a=a+3相等)
- -=
- *=
- /=
关系运算符
- <(小于)
- >(大于)
- <=(小于等于)
- >=(大于等于)
- ==(等于)
- !=(不等于)
逻辑运算法
-
&&(与)左右两边都为真这个值才为真,否为假。
特别说明:如果左边的值为假,计算机就不会执行右边,这样称为短路运算
-
||(或)左右两边只要有一个为真这个值为真,都为假,这个值为假
-
!(非)加这个符号就为ture或false的相反值
位运算符
直接和机器码进行逻辑运算,所以叫位运算
-
&(两个数都为1结果为1,否则为0)
-
|(两个数只要就一个为1,结果就为1,否则为0)
-
~非(如果位为0,结果为1。如果位为1,结果为0)
-
^异或(如果两个位数相同,结果为0。如果两个位数不同,结果为1)
特别提醒:必须位数和数相同的才能运算,否则结果为0
-
<<(右移运算符)x<<2 =x乘了两个2,符号右边为几乘以几个二
-
>>(左移运算符)x>>5 =x除了五个2,
-
<<< 无符号右移,忽略符号位,空位都以0补齐
运算符的优先级
java中转义字符
(重要转移字符)
- \n(换行)
- \t(缩进一个字表符)
- \r(将光标退回开头)
- \(输出反斜杠)
- \’(输出单引号)
- \"(输出引号)