基础语法
1.数据类型
数据类型分为基本数据类型和引用数据类型。其中基本数据类型有数值型:
整数(byte,short,int,long),浮点数(float,double),字符(char)。
非数值型:布尔(boolean)。
引用数据类型有:类(class),接口(interface),数组([])。
关键字 | 内存占用 | 取值范围 |
---|---|---|
byte | 1字节 | -128~127 |
short | 4 | -32768~32767 |
int | 4 | -2^31~2^31-1 |
long | 8 | -2^63~2^63-1 |
float | 4 | -3.402823E+38~-1.401298E-45;1.401298E-45~3.402823E+38 |
double | 8 | -1.797693E+308~-4.900000E-304;4.900000E-304~1.797693E+308 |
char | 2 | 0~65535 |
boolean | 1 | true,false |
E+38表示乘以10的38次方,E-45表示乘以10的负45次方.
类型转换:自动类型转换,把一个数据范围小的数值或者变量赋值给另一个表示数据范围大的变量。
byte-->short-->int-->long-->float-->double. char-->int
强制类型转换,把一个数据范围大的数值或者变量赋值给另一个表示数据范围小的变量。
格式:目标数据类型 变量名 = (目标数据类型)值或变量
Int k=(int)88.88
2.变量
变量定义格式:数据类型 变量名 = 变量值
使用注意事项:名字不能重复;变量未赋值不能使用;long类型的变量定义时为了防止整数过大,后面要加L;float类型定义时,为了防止类型不兼容,后面要加F。
3.运算符
算术运算符:+ - * / %
赋值运算符:= += -= *= /= %=
自增自减运算符:++ —
关系运算符:== != > >= < <= 关系运算符的结果都是boolean类型,true或false
逻辑运算符:& | ^ !
短路逻辑运算符:&& ||
三元运算符:格式:关系表达式 ? 表达式1 : 表达式2;
逻辑运算符与短路逻辑运算符的区别:
逻辑与&,无论左边真假,右边都要执行
短路与&&,如果左边为真,右边执行;如果左边为假,右边不执行
逻辑或|,无论左边真假,右边都要执行
短路或||,如果左边为假,右边执行;如果左边为真,右边不执行。
4.选择结构
If语句,if…..else语句,if…..else if…..else语句
switch语句:格式:switch(表达式){case 值1: 语句体1;break; case 值2: 语句体2; break; …..
default: 语句体n+1;break; }
格式说明:表达式:取值为byte,short,int,char,JDK5以后可以是枚举,JDK7以后可以是String。
case:后面跟的是要和表达式进行比较的值。
break:表示中断,结束的意思,用来结束switch语句。
default:表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
5.循环结构
for循环语句
格式:for (初始化语句;条件判断句;条件控制句){ 循环体语句; }
for(i=0;i<=10;i++){System.out.println(“HelloWorld”);}
水仙花数:是一个三位数,个位、十位、百位的数字立方和等于原数。
设水仙花数为i
求个位数:a=i%10
求十位数:b=i/10%10
求百位数:c=i/100%10
aaa+bbb+ccc=i
while循环语句
格式:while (条件判断语句) {循环体语句; 条件控制语句;}
do…while循环语句
格式:do{循环体语句;
}while(条件判断语句);
三种循环的区别:
for循环和while循环先判断条件是否成立,然后决定是否执行循环体。
do….while循环先执行一次循环体,然后判断条件是否成立,是否继续执行循环体。
for和while的区别:
条件控制语句所控制的自增变量,因为归属for循环的语句结构中,在for循环结束后,就不能再次被访问到了。
条件控制语句所控制的自增变量,对于while循环来说不归属其语法结构中,在while循环结束后,该变量还可以继续使用。
死循环格式:
for(;;) { }
while(true) { }
do{ }while(true);
6.IDEA内容辅助键和快捷键
快速生成语句
快速生成main()方法:psvm 回车
快速生成输出语句:sout 回车
内容辅助键
Ctrl+Alt+space(内容提示,代码补全等)
快捷键
注释:单行:选中代码,Ctrl+/,再来一次,就是取消。
多行:选中代码,Ctrl+Shift+/,再来一次,就是取消。
格式化:
Ctrl+Alt+L
7.数组
数组是一种用于存储多个相同类型数据的存储模型
数组的定义格式:
格式一 :数据类型 [] 变量名
int [] arr
定义了一个int类型的数组,数组名是arr。
格式二:数据类型 变量名 []
int arr []
定义了一个int类型的变量,变量名是arr数组。
动态初始化:初始化时只指定数组长度,由系统为数组分配初始值。
格式:数据类型 [ ] 变量名= new 数据类型[数组长度] ;
int [ ] arr = new int [3];
静态初始化:初始化时指定每个数组元素的初始值,由系统决定数组长度。
格式:数据类型 [ ] 变量名 = new 数据类型 [ ] {数据1,数据2,数据3…..} ;
int [ ] arr = new int [ ] {1,2,3};
简化格式:数据类型 [ ] 变量名 = {数据1,数据2,数据3…..}
int [ ] arr ={1,2,3}
数组操作的两个常见小问题:
索引越界:访问了数组中不存在的索引对应的元素
空指针异常:访问的数组已经不再指向堆内存的数据
8.方法
方法是将具有独立功能的代码块组织成为一个整体,使其具有特色功能的代码集。
方法必须先创建再使用,该过程称为方法定义。
方法创建后并不是直接运行,需要手动使用后才执行,该过程称为方法调用。
方法定义:
格式:public static void 方法名 ( ){ }
方法调用: 方法名 ( );
形参:方法定义中的参数,等同于变量定义格式,例如:int number
实参:方法调用中的函数,等同于使用变量或常量。
带返回值方法的定义:
格式:public static 数据类型 方法名(参数){ return 数据; }
方法定义时return后面的返回值与方法定义上的数据类型要匹配,否则程序将报错。
带返回值方法的调用:
格式1: 方法名(参数); isEvenNumber(5);
格式2: 数据类型 变量名 = 方法名(参数); boolean flag = isEvenNumber(5);
方法的返回值通常会使用变量接收,否则该返回值将毫无意义。
带参数方法的定义:
格式(单个参数):public static void 方法名 (数据类型 变量名) { ….. }
格式(多个参数):public static void 方法名 (数据类型 变量名1,数据类型 变量名2,…) { ….. }
方法定义时,参数中的数据类型和变量名都不能缺少,缺少任意一个程序将报错。
方法定义时,多个参数之间使用逗号( , )分隔。
方法注意事项:
方法不能嵌套定义;
void表示无返回值,可省略return,也可单独书写return,后面不加数据。
定义方法时,要做到两个明确:
明确返回值类型:主要是明确方法操作完毕之后是否有数据返回,如果没有,写void;
如果有,写对应的数据类型。
明确参数:主要是明确参数的类型和数量。
调用方法时:
void类型的方法,直接调用即可。
非void类型的方法,推荐用变量接收调用。
方法重载:
方法重载指同一个类中定义的多个方法之间的关系,满足以下条件的多个方法相互构成重载:
多个方法在同一个类中
多个方法具有相同的方法名
多个方法的参数不同,类型不同或数量不同。
特点:重载仅对应方法的定义,与方法调用无关。
重载仅针对同一个类中方法的名称与参数进行识别,与返回值无关,就是不能通过返回值判定两个方法是否相互构成重载。
方法参数传递(基本类型):
对于基本数据类型的参数,形式参数的改变,不影响实际参数的值。
方法参数传递(引用类型):
对于引用类型的参数,形式参数的改变,影响实际参数的值。
9.Debug
Debug:是供程序员使用的程序调试工具,它可以用于查看程序的执行流程,也可以用于追踪程序执行过程来调试程序。
Debug操作流程:
Debug调试,又称为断点调试,断点其实是一个标记,告诉我们从哪里开始查看
如何加断点:选择要设置断点的代码行,在行号的区域后面单击鼠标左键即可。
如何运行加了断点的程序:在代码区域右键Debug执行。
按F7执行,点stop结束
删除断点:选择要删除的断点,单击鼠标左键即可。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。