黑马程序员技术交流社区
标题: 基础班技术帖 [打印本页]
作者: HelloforWorld 时间: 2017-12-27 21:09
标题: 基础班技术帖
预科Day-01
1. 虚拟机JVM不可以跨平台,java语言可以跨平台。
2. JDK包含JRE,JRE包含JVM。
3. Java严格区分大小写。
4. 标识符的注意事项:不能以数字开头;不能是Java中的关键字;区分大小写。
5. 多行注释不可以起嵌套使用,单行注释可以。
6. 字符常量 用单引号括起来的内容,里面只能是单个数字,单个字母或者单个符号。可以是空格,不可以什么也不放。
7. 整数默认是int类型,byte和short比较特殊,定义的数字先在他们两个的取值范围内找,找到就取值成功。
8. Boolean理论是占八分之一个字节,因为一个开关就可以决定是true和false了,但是java中boolean类型没有指定他的大小。
预科Day-02
1. if语句的注意事项:
①:if语句控制的语句体如果是一条语句,大括号可以省略;
如果是多条语句,就不能省略。建议永远不要省略。
②:一般来说:有左大括号就没有分号,有分号就没有左大括号
③:无论用if的那种格式最多只会执行其中的一个方法体.
2.
①什么是运算符
就是对常量和变量进行操作的符号。
②注意事项:
a:+号在java中有三种作用,代表正号;做加法运算;字符串的连接符
b:整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型
c:/获取的是除法操作的商,%获取的是除法操作的余数
③ %运算符
* 当左边的绝对值小于右边绝对值时,结果是左边
* 当左边的绝对值等于右边或是右边的倍数时,结果是0
* 当左边的绝对值大于右边绝对值时,结果是余数
* %运算符结果的符号只和左边有关系,与右边无关
* 任何一个正整数%2结果不是0就是1可以用来当作切换条件
3.整数相除,只能得到整数,如果想得到小数,把其中一个数变成小数,另一个数在运算的时候会自动类型提升
预科Day-03
1.for循环的嵌套及程序流程顺序
for(1;2;3){
for(4;5;6){
7;
}
8;
}
顺序:1-->2(t)-->4-->5(t)-->7-->6-->5(f)-->8-->3-->2(f)
预科Day-04
1. 方法:就是完成特定功能的代码块.
2. 方法的定义格式:
修饰符 返回值类型 方法名 参数列表 方法体
修饰符:public static
返回值类型: void类型 非void类型(基本数据类型 引用数据类型)
方法名:见名知意
参数列表: ():无参 (数据类型 变量名1,数据类型变量名2...):有参
方法体:{}
3. 方法的两个明确: 参数列表 返回值类型
无参 无返回值
无参 有返回值 方法体内必须有return语句
有参 无返回值
有参 有返回值 方法体内必须有return语句
4.方法的注意事项:
①.方法和方法之间是平级关系不能嵌套定义
②.方法不调用不执行
5.方法的调用格式:
①.复制方法的名字();②.方法的两个明确
6. 数组中的常见异常:
①.ArrayIndexOutOfBoundsException:数组角标越界异常:你写的角标肯定在数组中不存在
②.NullPointerException:空指针异常
基础班 Day-12/14
1. 平台
就是操作系统
2.跨平台:
程序只需要编写一次,就可以在任意的平台上运行
3.跨平台原理
依赖java虚拟机(jvm),不同的操作系统有不同的jvm,正是因为jvm不跨平台,所以我们的java实现了跨平台
4.jvm
所有的java代码都是运行在jvm上的
在不同的操作系统下有不同的jvm
5.jre
java运行环境,如果计算机想要运行java代码就要安装jre
jre=jvm+核心类库
6.jdk
java开发工具包
如果我们想让我们的计算机能够开发java软件,这个时候就要安装jdk
jdk=jre+开发工具集
jvm < jre < jdk
7.关键字
在java语言中有特殊含义的单词
特点:
① .全部是有小写字母组成
②.常见的代码编辑器对关键字有特殊颜色标记
8.常量
定义:在程序执行过程中,值不可以发生改变的量叫常量
分类:
字符串常量: "ss" , "" "22"
整数常量 : 12,33,22,-22
小数常量: 12.3 , 3.14
字符常量(只能单个字符): 's' ' '
布尔常量 true , false
空常量 null
9.变量
定义:
在程序执行过程中,值可以在一定范围内发生发生改变的量
定义格式:
数据类型 变量名;//单纯的定义了一个变量
数据类型 变量名 = 初始化值;//定义了一个变量并且把初始化值赋值给了这个变量
10.存储单元
bit B(字节) KB MB GB TB
1B= 8bit
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
11.数据类型
分类:
基本数据类型
引用数据类型(类,接口,数组)
基本数据类型的分类
整数类型
byte 1B -128~127
short 2B
int 4B
long 8B
浮点数类型
float 4B
double 8B
字符类型
char 2B
布尔类型
boolean true false
注意事项:
整数默认是int类型
小数默认是double 类型
如果想要表示long类型的数,要在值得后面加L或者l,建议加L
如果想要表示float类型的数,要在值得后面加F或者f,建议加F
12.标识符
组成:
1.数字,大小写字母,汉字
2._
3.$,¥
注意事项:
1.不能以数字开头
2.不能使用java中的关键字
java
2b false
main
class false
2_b false
_2b
13.变量使用的注意事项
①变量在使用前必须赋值
②变量只在它的作用范围内有效
③在同一行可以定义多个变量
14.隐式转换
在运算的时候会出现隐式转换
byte,short ,char 这三种类型的变量在参与运算的时候默认会转化成int类型再计算
如果运算中还有int类型 结果int
如果运算中还有long类型 结果是long
如果运算中还有float类型 结果是float
如果运算中还有double类型 结果是double
15.强制类型转换
目标类型 变量名 = (目标类型)(被转换的数据);
基础班 Day-12/16
1.运算符
如果两个整数相除结果只能是整数,如果想要得到小数,至少有一个浮点数参与运算
2.&&和&的结果都是一样的,都是表示并且的意思; || 和|的结果都一样,但是||有短路效果
短路效果 :
左边表达式的结果知道后,如果整个表达式的结果已经确定下来了,就不去运行右边的表达式.
3. 三元运算符
格式:
布尔类型的表达式或者变量或者常量?表达式1:表达式2
执行流程:
判断布尔类型的表达式的结果是ture还是false,如果是true 三元表达式的结果是表达式1,否则是表达式2
基础班 Day-12/17
1.if语句的格式:
注意:下面的关系表达式其实就结果为布尔类型的表达式,或者变量,或者常量。
if(关系表达式1){
语句体1;
}elseif(关系表达式2){
语句体2;
}
...
else{
语句体n+1;
}
格式总结:
if语句只会出现在最前面,并且只会出现一次,后面会跟0次或n次的else if,最后会跟0或1次的else.
2. switch格式
switch(表达式) {
case值1:
语句体1;
break;
case 值2:
语句体2;
break;
…
default:
语句体n+1;
break;
}
3. switch格式解释
switch表示这是switch语句
表达式的取值:byte,short,int,char
JDK5以后可以是枚举
JDK7以后可以是String
case后面跟的是要和表达式进行比较的值
语句体部分可以是一条或多条语句
break表示中断,结束的意思,可以结束switch语句
default语句表示所有情况都不匹配的时候,就执行该处的内容,和if语句的else相似。
4. switch执行流程
首先计算出表达式的值
其次,和case依次比较,一旦有对应的值,就会执行相应的语句,在执行的过程中,遇到break就会结束。
最后,如果所有的case都和表达式的值不匹配,就会执行default语句体部分,然后程序结束掉。
基础班 Day-12/19
1.数组的定义格式:
格式1:数据类型[] 数组名;
格式2:数据类型 数组名[];
2. Java中的数组必须先初始化,然后才能使用。
所谓初始化:就是为数组中的数组元素分配内存空间,并为每个数组元素赋值
3.数组初始化:
A:所谓初始化,就是为数组开辟内存空间,并为数组中的每个元素赋予初始值
B:我们有两种方式对数组进行初始化
a:动态初始化 只指定长度,由系统给出初始化值
b:静态初始化 给出初始化值,由系统决定长度
动态初始化格式:数据类型[] 数组名 = new 数据类型[数组长度];
数组长度其实就是数组中元素的个数。
静态初始化的格式:
数据类型[] 数组名 = new 数据类型[]{元素1,元素2,...};
简化格式:
数据类型[] 数组名 = {元素1,元素2,...};
4.二维数组定义格式
数据类型[][] 数组名;
数据类型 数组名[][]; 不推荐
数据类型[] 数组名[]; 不推荐
5.二维数组初始化
A:动态初始化
数据类型[][] 数组名 = new 数据类型[m][n];
m表示这个二维数组有多少个一维数组
n表示每一个一维数组的元素有多少个
B:静态初始化
数据类型[][] 数组名 = new 数据类型[][]{{元素...},{元素...},{元素...},...};
简化格式:
数据类型[][] 数组名 = {{元素...},{元素...},{元素...},...
基础班 Day-12/20
1.方法格式
修饰符 返回值类型 方法名(参数类型 参数名1,参数类型参数名2…) {
函数体;
return返回值;
}
2. 返回值类型: 用于限定返回值的数据类型
方法名: 一个名字,为了方便我们调用方法
参数类型: 用于接收调用方法时传入的数据的类型
参数名: 用于接收调用方法时传入的数据的变量
方法体: 完成功能的代码
return: 结束方法,把返回值带给调用者
3.定义方法注意事项
写一个方法首先有两点需要明确:
A.返回值类型 明确功能结果的数据类型
B.参数列表 明确有几个参数,以及参数的类型
4. 有明确返回值的方法调用:
单独调用,没有意义
输出调用,有意义,但是不够好,因为我不一定非要把结果输出
赋值调用,推荐方式
5.没有明确返回值的函数调用:
其实就是void类型方法的调用
只能单独调用
6.方法重载:
在同一个类中,允许存在一个以上的同名方法,只要它们的参数个数或者参数类型不同即可。
7.方法重载特点:
与返回值类型无关,只看方法名和参数列表
在调用时,虚拟机通过参数列表的不同来区分同名方法
8. 方法的参数是基本类型的时候:
形式参数的改变不影响实际参数。
形式参数:用于接收实际数据的变量
实际参数:实际参与运算的变量
9. 方法的参数是引用类型:
形式参数的改变直接影响实际参数
基础班 Day-12/22
1.断点调试:
A:查看程序的执行流程
B:调试程序
2. 断点:其实就是一个标记
3. 如何加断点:
在代码区域的最左边双击即可
4. 如何运行加断点的程序?
代码区域 -- 右键 -- Debug as-- Java Application
会弹出一个页面让我们选择是否进入debug模式,选择yes
基础班 Day-12/23
1.定义类其实就是定义类的成员(成员变量和成员方法)
a:成员变量 和以前定义变量是一样的,只不过位置发生了改变。在类中,方法外。
b:成员方法 和以前定义方法是一样的,只不过把static去掉,后面在详细讲解static的作用。
2.如何拥有一个类的对象呢?
创建对象
3.如何创建对象?
格式:类名 对象名 = new 类名();
4.对象如何访问成员?
成员变量:对象名.变量名
成员方法:对象名.方法名(...)
5. private关键字:
a:是一个权限修饰符。
b:可以修饰成员(成员变量和成员方法)
c:被private修饰的成员只在本类中才能访问。
6. 构造方法格式
a:方法名与类名相同
b:没有返回值类型,连void都没有
c:没有具体的返回值
7. 如果不提供构造方法,系统会给出默认构造方法;如果自己提供了构造方法,系统将不再提供;构造方法也是可以重载的,重载条件和普通方法相同
基础班 Day-12/25
1.API的使用:
java.lang包下的类在使用的时候是不需要导包的
2.
A:"abc"是String类的一个实例,或者成为String类的一个对象
B:字符串字面值"abc"也可以看成是一个字符串对象
C:字符串是常量,一旦被赋值,就不能被改变
D:字符串本质是一个字符数组
基础班 Day-12/26
1.对象数组概述
A:基本类型的数组:存储的元素为基本类型
int[] arr={1,2,3,4}
B:对象数组:存储的元素为引用类型
Student[] stus=new Student[3];
2.Student代表一个自定义类
Stus数组中stus[0],stus[1],stus[2]的元素数据类型为Student,都可以指向一个Student对象
3.
作者: 小浙姐姐 时间: 2017-12-31 09:11
为明天做准备的最好方法就是集中你所有智慧,所有的热忱,把这天的工作做得尽善尽美,这就是你能应付未来的唯一方法。就业班加油!看好你哦!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |