黑马程序员技术交流社区
标题: 【石家庄校区】Java基础知识点梳理 [打印本页]
作者: Catherine.qing 时间: 2017-11-29 22:40
标题: 【石家庄校区】Java基础知识点梳理
本帖最后由 小石姐姐 于 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
-
-
基础知识总结.zip
9.59 KB, 下载次数: 94
作者: wheat 时间: 2017-11-29 23:29
总结的很好
| 欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |