JavaSE基础_基本语法

基本语法

1.变量的使用

1.1变量的分类(java的八种基本数据类型)

	整型:byte(1字节 (-128 ~ 127)) short(2字节) int(4字节) long(8字节)
	浮点型: float(4字节) double(8字节)
	字符型:char(2字节)
	布尔类型 :boolean(忽略大小因为只有true和false)

1.2引用数据类型:

		类, 接口,数组

1.3定义变量的格式:

	格式:变量的类型  变量名 = 变量值
	  方式:   
		1.声明和赋值同时进行:int a = 10;
		2.先赋值后声明:int a; a = 10;
		3.同时声明多个变量:int a,b,c;	a = b = c = 10;
		4.同时声明多个变量和赋值:int a = 10; int b = 20;

1.4变量使用的注意点

	1.变量应该先声明后使用
	2.同一个变量可以被多次赋值,后一次赋值覆盖前一次的值
	3.作用域 :声明那个变量所在的那对大括号内
	4.在同一作用域内的变量名不能相同

1.5java 常量的默认类型

	1.java的整型常量默认为 :int
	2.Java 的浮点型常量默认为 : double

1.6变量的类型说明

	1.long类型数值后面加要"l/L": long l = 406666666L
	2.float类型的数值后面要加"f/F":列入 float f = 4.6F

1.7基本数据类型变量间的运算

	1.自动类型提升:小容量的变量和大容量的变量做运算,结果用大容量的变量来接收。(容量指的是表数范围)					
		byte,short,char -> int -> long -> float -> double
		**注意:**1.byte,short,char三者之间做运算会先将自身提升为int
    2.强制类型转换:自动类型提升的逆过程 (把大容量的变量赋值给小容量)
		格式 :(强转的类型)  (int)4.6
		注意:强制类型转换可能会损失精度

1. 8变量的作用

保存数据

2. 关键字和标识符

2.1java关键字

	定义:被java赋值了特殊的含义的单词或字符串
	特点:所有的字母都是小写

2.2保留字

	java现版本暂未使用,但以后的版本可能作为关键字来使用

2.3标识符

	定义:凡是需要自己起名字的地方都叫做标识符
	规则:①由26个英文字母大小写,0-9 ,_或 $ 组成  
	②数字不可以开头。
	③不可以使用关键字和保留字,但能包含关键字和保留字。
	④Java中严格区分大小写,长度无限制。
	⑤标识符不能包含空格。

2.4命名规范:

包名:多单词组成时所有字母都小写:xxxyyyzzz
类名、接口名:多单词组成时,所有单词的首字母大写:XxxYyyZzz
变量名、方法名:多单词组成时,第一个单词首字母小写,
							第二个单词开始每个单词首字母大写:xxxYyyZzz
常量名:所有字母都大写。多单词时每个单词用下划线连接:XXX_YYY_ZZZ
注意 :一定要做到见名知意

3.运算符

3.1算术运算符

			正号
			负号
			加
			乘
			减
			除
			取模(取余)
			前加加:先自加一后取值(赋值)
			后加加:先取值(赋值)后自加一
			前减减:先自减一后取值
			后减减:先取值后自减一
			字符串连接符

3.2赋值运算符

	=
	扩展赋值运算符 :+=, -=, *=, /=, %=     
	注意:  short s = 3; 
              s = s+2;  编译不通过,因为short和int做运算会将short提升为int,只能用int来接收。
              s += 2;    编译能通过,不会改变原来的变量的数据类型

3.3比较运算符

	==
	!=
	<
	>
	<=
	>=

3.4逻辑运算符

	&
		逻辑与
	&&
		短路与
	|
		逻辑或
	||
		短语或
	!
		逻辑非
	^
		逻辑异或
	说明:
	&和&& : 两边都为true结果为true
	|和|| : 两边只要有一个为true结果为true
	! : 取反
	^ : 相同为false,不同为true
	 [面试题]& 和 && , | 和 ||的区别?

&和&&的区别?
&和&&左边式子的结果为true的时候,右边的式子都会执行。(因为判断不出结果)
&左边的式子结果为false的时候,右边的式子仍然执行(无论左边结果为true还是false右边都执行)。
&&左边的式子结果为false的时候,右边的式子不再执行(因为可以判断出结果就为false)。

  |和||的区别?
  |和||左边的式子的结果为false的时候,右边的式子都会执行。(因为判断不出结果)
  |左边的式子结果为true的时候,右边的式子仍然会执行(无论左边结果为true还是false右边都执行)。
  ||左边的式子结果为true的时候,右边的式子不再执行(因为可以判断出结果就为true)

5.三元运算符

格式:(条件表达式)? 表达式1 :表达式2;
说明:1.条件表达式的结果只能为boolean类型
	2.如果条件表达式的结果为true则执行表达式1,如果为false则执行表达式2
	3.表达式1和表达式2的类型应该保持一致,如果表达式1和表达式2可以进行自动类型提升那么也可以
				例:double d = (m > n)? 5 : 12.3;
	4.三元运算符可以嵌套使用但不建议
	5.三元运算符可以使用if语句所替代。反之不行。如果两者都可以使用建议使用三元运算符,因为
			效率高一些。
代码: 求三个数的最大值
	int aa = 10,bb = 20,cc = 30;
	int maxNumber = (aa > bb)? aa : bb;
	maxNumber = (maxNumber > cc)? maxNumber : cc;
	
	char x = 'x';
	int i = 10;
	int j = 10 + 'x';
		j = x;
	System.out.println(true? x : i);//120
	System.out.println(true? 80 : x); ?
	System.out.println(true? x : 10);//x
	System.out.println(false? 'x' : i);//10
	System.out.println(j);//130
	System.out.println(true? 10.5 : i);//10.5
	System.out.println(true ? 'a' : 120);//a
	/*
	 * *int和char使用三元运算符总结:有一个变量就变为变量的类型,都是常量就变为char,都是变量就自动提升。
	 * 其它long int float double 使用三元运算符和基本运算符一样,会自动提升。
	 */

6.进制

1.二进制,八进制,十进制,十六进制
二进制 : 以0b或0B开头
八进制 : 以0开头
十六进制 : 以0x或0X开头
2. 二进制 ->  十进制
	1011 =>  2的0次方 + 2的1次方 + 2的3次方
十进制 -> 二进制
	除2取余,最后将余数反过来
二进制 -> 八进制  :三位二进制 -> 一位八进制

二进制 -> 十六进制:四位二进制 -> 一位十六进制

7.位运算符

运算符
	<< 左移:在一定的范围内,原来的数乘以2
	>> 右移:在一定的范围内,原来的数除以2
	>>> 无符号右移
	& 与运算
	| 或运算
	~ 反码
	>> 与 >>> 的区别:>> 右移:正数右移最高位用0补,负数右移最高位用1补
						>>>  无符号右移 : 无论正负,最高位都是用0补

8.流程控制

8.1结构

8.1.1 顺序结构
	程序从上到下逐行地执行,中间没任何判断和跳转。
8.1.2 分支结构
	根据条件,择性地执行某段代码。

8.1.3循环结构

	根据循环条件,重复性的执行某段代码。(while、for、do ... while)

死循环
一 格式 :
for(;?{}
while(true){}
do{}while(true);
二 如何终止循环:

	1.将循环条件改成false
	2.使用break关键字

嵌套循环
一 嵌套循环 :一个循环a中再嵌套一个循环b。a循环叫做外层循环b循环叫做内层循环。
二 执行的次数 = 外层循环执行的次数 * 内层循环执行的次数
三 说明 :
1. 外层循环控制行,内层循环控制列。
2.外层循环执行一次,内层循环执行一轮。

	//外层循环
	for(int i = 1; i < 10; i++){
		//内层循环
		for(int j = 1; j < 10;j++){
		}
	}

break和continue
continue:
使用范围 :1.在循环结构中
作用 :用来结束当次循环
在嵌套循环中 :用来结束包含它的那个循环的当次循环
break :
使用范围 :1.在switch-case结构中 2.在循环结构中
作用 :用来结束当前循环
在嵌套循环中 :用来结束包含它的那个循环的当前循环
三 说明 :
1. 外层循环控制行,内层循环控制列。
2.外层循环执行一次,内层循环执行一轮。
如何结束外层循环? - 可以给外层循环起名字
//lable : 给外层循环起的名字
lable : for(int i = 1; i <= 3; i++){
for(int j = 1; j <= 3; j++){
System.out.print(“j=” + j + " ");
if(j == 2){
break lable; //用来结束外层循环
//注意:break和continue的后面不能直接再写其它语句,因为不可能被访问到
//System.out.println(“aaaa”);
}
}
System.out.println(“i=” + i);

	}

你可能感兴趣的:(JavaSE基础)