本帖最后由 小石姐姐 于 2017-11-30 10:55 编辑
黑马程序基础知识总结 Day01 常量 字符串常量: "hello" 字符常量: 'a' 整数常量: 12 小数常量: 12.23 布尔常量: true, false 空常量: null 变量 变量是内存中的一块区域, 保存着一个值. 变量的定义格式: 数据类型 变量名 = 初始化值; 变量的数据类型: 基本数据类型 字节数 整数 byte 1 short 2 int 4 long 8 小数 float 4 double 8 字符 char 2 布尔 boolean 1 注意:整数默认int类型, 浮点数默认double类型 所以long类型要加L, float类型要加F long l = 10L;float f = 1.0F; 变量定义的注意事项: 变量未赋值时不能使用 如:int a =10; System.out.println(a); 变量只在它所属的范围(所在的大括号)内有效 如:{ int a = 10; } System.out.println(a); 一行上可以定义多个变量, 但是不建议这样做 int a = 10,b=20; 数据类型转换: 隐式转换: byte, short, char --> int --> long --> float --> double 强制转换: 目标类型 变量名 = (目标类型) (被转换的变量); int a = (int) 1.3; byte,short,char进行运算时,会转为int
Day02 使用eclipse开发: java project -- package -- class 运算符 A.算数运算符 +,-,*,/,%,++,-- +:字符串参加加法 : 拼接 字符参与加法 : 字符对应的ASCII码参与运算 /:就是两个数相除后的商, 5 / 3.0 = 1 %:就是两个数相除后的余数, 5 % 3 = 2 ++ i++:先去i的值,后对i进行+1 ++i:先对i+1,再用i的值 B.赋值运算符 基本赋值运算符:int a = 10;//与==区分开 扩展赋值运算符:+=,-=,*=,/=,%= 注意: 扩展赋值运算符隐含了强制类型转换 a += 10; 相当于 a = (a的类型)(a + 10); C.关系运算符 ==,!=,<,<=,>,>= 关系运算符的结果是boolean类型 D.逻辑运算符 &,|,!,^,&&,|| 注意:&和&&的区别,&&有短路效果,只要左边是false, 则不判断右边, 直接false if(i++>10 && j--<10) |和||的区别,||有短路效果,只要左边是true, 则不判断右边, 直接true E.三元运算符 关系表达式? 表达式1 : 表达式2; 三元运算符是有返回值的,需要一个变量来接收返回值 String result = (i%2==0)?"偶数":"奇数"; int max = (a>b)?a:b; 键盘录入 步骤: a.导包 import java.util.Scanner; b.创建Scanner对象: Scanner sc = new Scanner(System.in); c.接收键盘输入数据: int i = sc.nextInt();
Day03 ##流程控制语句: 1.顺序结构 2.选择结构:if语句,switch语句 3.循环结构
#选择结构:if和switch两种结构 *if语句的第一种格式:if(关系表达式){ 语句体 }
*if语句的第二种格式:if(关系表达式){ 语句体1; }else{ 语句体2; }
*if语句的第三种格式:if(关系表达式1){ 语句体1; }else if(关系表达式2){ 语句体2; } ... else{ 语句体n+1; }
*导包快捷键:ctrl+shift+o
#switch语句表达式的取值: switch(表达式){ case 值1: 语句体1; break; case 值2: 语句体2; break; case 值3: 语句体3; break; ......
}
byte,short,int,char case后跟的是要和表达式进行比较的值 break表示中断,可结束switch default 表示情况不匹配执行的内容
*循环结构 1.初始化语句 2.判断条件语句 3.循环体语句 4.控制条件语句
*for(初始化语句;判断条件语句;控制条件语句){
循环体语句; }
编程思维:
*水仙花数 一个三位数,其每位数字的立方和等于该数字本身 获取三位数:153=1*1*1+5*5*5+3*3*3 对数字取余
*while循环: while循环语句的格式: while(判断条件语句){ 循环体语句: 控制条件语句; }
*do...while循环语句格式: do{ 循环体语句; 控制条件语句; }while(判断条件语句); 执行流程: 1.执行初始化语句 2.执行循环体语句 3.执行控制条件语句 4.执行判断条件语句,看是true,还是false, 如果是false,就结束循环 如果是true,就回到第二项继续执行
控制循环语句:
case穿透 Day04 ##Java基础语法(下) Random 数组 方法 Eclipse的断点调试
随机数Random和Scanner类似 *作用: 用于产生随机数的 *使用步骤: 1.导包 2.创建对象 3.获取随机数
#数组 数组是储存多个数据类型的容器 这多个变量的数据类型要一致 定义格式: 1.数据类型[ ] 数组名:(推荐方式) 2.数据类型 数组名[ ]:
int[ ] arr;定义了一个int类型的数组,数组名是arr int arr[ ];定义了int类型的变量,变量名是arr
数组初始化: 是为数组开辟内存空间的,并为数组 中的每个元素赋予初始值 1.动态初始化:只给出长度,由系统给出初始化值 2.静态初始化:给出初始化值,由系统决定长度
动态初始化: 数据类型[ ] 数组名=new 数据类型[数组长度]
##Java中的内存分配: *栈(储存的是局部变量) *堆(储存的是new出来的东西) *方法区(面向对象,进阶讲) *本地方法区(和系统相关) *寄存器(给CPU使用) Day05 ##方法:其实就是完成特定功能的代码块 //就是大括号 作用:提高代码复用的可维护性 *定义格式: 修饰符 返回值类型 方法名(参数类型 参数名1,参数类型 参数名2...){ 方法体; return 返回值; } *格式解释 1.修饰符:目前记住public static 2.返回值类型用于限定返回值的数据类型 3.方法名:为了方便我们调用方法的名字 4.参数类型:用于限定调用方法时传入的数据类型 5.参数名:用于接收调用方法时传入的数据的变量 6.方法体:完成功能的代码 7.return:结束方法,并且把返回值带给调用者
写方法的两个明确: 1.返回值类型:明确功能结果的数据类型 2.参数列表:明确有几个参数,以及参数的数据类型
*方法的调用: 有明确返回值的方法调用 1.单独调用,没有意义sum(10,20) 2.输出调用:有意义,但是,不够好,因为我可能需要拿结果做进一步操作syso(sum(10,20)); 3.赋值调用:推荐方式
如果一个方法没有返回值类型,也不能把返回值类型的地方 空出来,应该写void表示该方法无返回值类型
void输出的方法只能单独调用
##方法重载:在同一个类中,出现了方法名相同的情况 特点:1.方法名相同,参数列表不同,且与返回值无关 2.参数列表不同: 参数的个数不同, 参数对应的数据类型不同
**方法的参数如果是基本数据类型:形式参数的值不影响 实际参数 形式参数:用于接收实际参数的变量 实际参数:实际参与运算的变量 ▲如果方法的参数是基本数据类型:形式参数的改变不影响实际参数 ▲如果参数是引用数据类型:形式参数的改变直接影响实际参数 Day05 ##断点调试的作用 1.查看程序的执行流程 2.调试程序
*断点:其实就是一个标记 在哪里加断点? 哪里不会就在哪里加断点 怎样加断点:在代码区域的左边双击即可
**如何运行加断点的区域? 代码区域--右键--Debug As--Java Application,弹出框让我们是否进入视图,选择Yes
|