本帖最后由 调味汁的味道 于 2019-3-8 12:04 编辑
第一章 Day01
今天是javaEE基础班的第一天,我了解JAVA的一些基本知识,了解JAVA语言的历史,下面是今天所学得详细内容:
1.1 java语言概述&基础知识
1.1.1 java语言发展史
Java语言是美国Sun公司(Stanford University Network)在1995年推出的计算机语言
Java之父:詹姆斯·高斯林(James Gosling)
1.1.2 命令提示符
控制台打开:
Win+r 打开运行,输入CMD
Dir 显示当前目录下的所有文件
Cls 清屏
Exit 退出
Cd.. 返回上一级
Cd 进入指定文件名
盘符名: 进入盘符
Cd/ 退回根目录
1.1.3 跨平台
我们的程序可以在任何一个程序上运行
JDK JRE JVM
JDK:JAVA程序开发工具包 JRE+JAVA开发工具
JRE:JAVA程序运行环境 JVM+核心类库
JVM:JAVA虚拟机,JAVA代码都是运行在JAVA虚拟机上
1.2 HelloWorld及java语法
1.2.1 HellloWorld案例
//编写类名
public class HelloWorld {
//编写main方法主入口
public static void main(String[] args){
//编写输出heeloworld语句
System.out.println("HelloWorld");
}
}
//注意:类名要和文件名相同
System.out.print(); //这是不换行的输出语句
System.out.println(); //这是换行的输出语句
1.2.2 注释
注释就是对代码的解释说明,它是给程序员看的。
1.2.3 注释分类
单行注释://
多行注释:/* */
文档注释:/** */
1.2.4 关键字
关键字就是java中有特殊意义的词
特点:
完全是小写的字母
常见的开发软件中会有特殊颜色
1.2.5 常量
在程序运行中,不变的量
整数常量:不带小数点的整数
小数常量:带小数点
字符常量:加单引号的一个字符
字符串常量:加双引号的0个或0个以上的字符
布尔常量:true false
空常量:Null
1.2.6 数据类型
基本数据类型
四类八种:
整数:
字节 byte 1 -128~127
短整数 short 2
整数 int 4
长整数 long 8
浮点数:
单精度 float 4
双精度 double 8
布尔:
boolean 1
字符:
char 2
引用数据类型
不是基本数据类型的都是引用数据
1.2.7 变量
在程序运行中,可以改变的值
变量一般都是用来存储一些数据
格式:
a) 数据类型 变量名 = 值;
b) 数据类型 变量名;
变量名 = 值;
变量的使用:
直接写变量名;
注意事项:
变量使用不能超过作用域的范围
【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。
public class Demo3{
public static void main(String[] args){
//【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
{
int a = 1;
System.out.println(a);
}
a = 20;//这里会报错
System.out.println(a);
}
}
public class Demo3{
public static void main(String[] args){
//【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。
int a = 20;
{
int a = 1;//这里会报错
System.out.println(a);
}
System.out.println(a);
}
}
1.2.8 标识符
标识符:我们给变量,方法或者类名就是标识符
命名规则:(硬性要求)
标识符可以包含英文大小写字母,数字,下划线和$ 中文也可以
不能以数字开头
不能是关键字
命名规范(软性要求)
类名:大驼峰 所有单词首字母大写
类名:小驼峰 除了第一个单词外,所有单词首字母都大写
1.2.9 数据类型转换
自动类型转换
特点:代码不需要进行特殊处理,自动完成
规则:数据范围从小到大
强制类型转换
特点:代码需要进行特殊的格式处理,不能自动完成
格式:
目标类型 变量名 = (目标类型)被转换的数据
注意事项:
强制了下转换一般不推荐使用,因为可能会发生精度损失,数据溢出,只有你确定了我这个转换不会发生这些问题,或者就算出现了也无所谓的时候我才用。
byte/short/char这三种类型都可以发生数学运算,在运算的时候都会先被提升为int类型再进行计算
boolean类型不能发生数据类型转换
byte b1=10;
byte b2=20;
byte sum = b1+b2;//报错 改成int.
第二章 Day02
2.1 运算符
2.1.1 算术运算符:+ - * / %
特别注意:
/和数学中的除不太一样两个整数相除只能得到整数,如果需要得到小数要求至少其中一个是浮点数。
%取余 比如10%3结果为1
2.1.2 自增和自减运算符:++ --
a++; 相当于a=(a的数据类型)(a+1);
a--; 相当于a=(a的数据类型)(a-1);
注意:
++可以写在变量的前面也可以写在变量的后面,单独写的时候写前面写后面都没有区别,区别就在和其它运算符一起写。
++变量名 (先自增再运算);
--变量名(先运算再自增);
2.1.3 赋值运算符: = += -= *= /= %=
基本赋值运算符: =
代表将右侧的数据交给左侧的变量;
例如:
int a = 30;
a= a+3;
符合赋值运算符:+=,-+,*=,/=,%= (有隐含强制转换)
例如:
int a = 10;
a+ = 3;//相当于a=(int)(a+3);
a-= 3;//相当于 a = (a的数据类型)(a-3);
2.1.4 比较运算符:> < >= <= == !=
比较结果是布尔类型;
2.1.5 逻辑运算符:& | ! ^ && ||
与 &&(短路与),&(没有短路效果)读成并且 ,结果都是一样的
或 || , | 读取或者
非 !取反
异或 ^ 可以用来判断是否是异性
短路:
左边表达式的结果确定之后,如果整个表达式的结果已经被确定了,就不会去执行右边的表达式
2.1.6 三元运算符:数据类型 变量名 = 布尔表达式?表达式1:表达式2
执行流程:
先判断布尔表达式的结果,如果结果为true三元表达式的结果就是表达式1,否则就是表达式2
求三个数的最大值
int a=10;
int b=20;
int c=30;
int max = a>b?(a>c?a:c):b;
2.2 分支语句:if
三个部分:
① if(判断表达式){
语句体;
}
② else if(判断表达式){
语句体;
}
③ else{
语句体;
}
if语句格式:
首先有且仅有一个一个if,后面会有0个到多个else if语句,最后会有0个或1个else
注意:开头肯定是一个if,有可能一个else if都没有,else有可能没有,如果有也只会出现一个else.
执行流程:
从上到下依次执行判断表达式
结果为true:则执行后面紧跟着的语句体.语句体执行完了整个if语句就结束了.
结果为false:则继续判断下面一个判断表达式
如果所有判断表达式的结果都为false,在有else语句的情况下就执行else里面的语句体,没有的话if语句结束.
注意:
1. 一旦执行了一个大括号中的语句体,整个if语句就结束了。不可能出现执行两个语句体的情况。
2. 如果大括号中的语句体只有一行代码的时候可以把大括号省略,但是建议永远不要省略。
2.3 键盘录入
导包:import java.util.Scanner;
创建对象:Scanner sc = new Scanner(System.in);
键盘录入给变量名赋值: int num = sc.nextInt();
第三章 Day03
3.1 switch
标准格式:
switch (表达式) {
case 值1:
语句体1;
break;
case 值2:
语句体2;
break;
case 值3:
语句体3;
break;
...
default:
语句体n+1;
break; // 最后一个break语句可以省略,但是强烈推荐不要省略
}
执行流程:
看表达式的结果和哪个case后面的值相同,就执行那个case后面的语句体,碰到break就结束switch.
如果没有符合要求的case则执行default后面的语句体.
注意事项:
①switch后面小括号当中只能是下列数据类型:
基本数据类型:byte/short/char/int
引用数据类型:String字符串、enum枚举
②switch可以没有default,但是一般都会加上
③case语句后面可以不加break.但是如果不加break就会出现case穿透问题.匹配哪一个case就从哪一个位置向下执行,直到遇到了break或者整体结束为止;
3.2 循环
3.2.1 for
格式:
for(初始化语句;条件判断;步进语句){
循环体;
}
执行流程:
先执行初始化语句,然后看条件判断的结果,如果为false 循环结束,如果为true 执行循环体.循环体执行完后执行步进语句.然后继续执行条件判断(PS:注意,不是初始化语句)如果结果为false,结束循环,结果为true则继续循环体,然后步进语句以此类推.
注意事项:
for循环的变量在小括号当中定义,只有循环内部才可以使用。
3.2.2 while
格式:
while(判断表达式){
循环体;
}
执行流程:
看判断表达式的结果,如果为false循环结束,如果为true,则执行循环体.循环体执行完后继续看判断表达式的结果以此类推
3.2.3 do….while
格式:
do{
循环体;
}while(判断表达式);
执行流程:
先执行循环第,然后看判断表达式的结果如果为true则继续执行循环体如果判断表达式的结果为false则循环结束,如此反复。
3.2.4 循环小结
总结:如何选择循环语句
用的最多的是for循环,如果循环次数已知一般用for.如果循环体和循环次数有关系,也用for循环
while循环一般在循环次数未知的情况下使用,或者死循环一般都用while循环
do...while循环基本不用
3.2.5 循环控制语句
break:
在循环过程中,碰到break整个循环就直接结束了,应用场景:break只能出现在循环中或者switch中
Continue:
如果在循环过程中碰到了continue,则跳过本次循环,继续下次循环
3.2.6 死循环
死循环就是会一直循环下去的循环
while(true){
}
for(;;){
}
3.3 Random随机数
步骤:
A. 导入包 import java.util.Random;
B. 创建对象 Random r = new Random();
C. 获取随机数 int num = r.nextInt(10);//[0,10)
第四章 Day04
4.1 数组
1.数组的长度一旦确定就不能改变
2.数组中元素的数据类型都是一样的
4.1.1 数组的初始化
数组的初始化:在内存当中创建一个数组,并且向其中赋予一些默认值。
两种常见的初始化方式:
1. 动态初始化(指定长度)
格式:
数据类型[] 数组名 = new 数据类型[长度];
解析含义:
左侧数据类型:也就是数组当中保存的数据,全都是统一的什么类型
左侧的中括号:代表我是一个数组
左侧数组名称:给数组取一个名字
右侧的new:代表创建数组的动作
右侧数据类型:必须和左边的数据类型保持一致
右侧中括号的长度:也就是数组当中,到底可以保存多少个数据,是一个int数字
2. 静态初始化(指定内容)
格式:
省略格式:(推荐使用)
数据类型[] 数组名 = {元素值1,元素值2,元素值3,...};
标准格式:
数据类型[] 数组名 =new 数据类型[] {元素值1,元素值2,元素值3,...};
4.1.2 数组元素的表示方式
格式:
数组名[索引]
索引值:就是一个int数字,代表数组当中元素的编号。
【注意】索引值从0开始,一直到“数组的长度-1”为止。
4.1.3 数组的内存图
1.java内存中的几块区域(重要的)
①栈
方法被调用的时候都会入栈
局部变量都被保存在栈中
②堆
new出来的东西都在堆中
堆中的东西都有默认初始化值
局部变量:定义在方法中的变量
数组的实体保存在堆中
数组名实际保存的是数组实体的地址值
4.1.4 数组长度的表示
格式:
数组名.length
4.1.5 数组的遍历
int[] arr={1,2,3,4,5,7};
//遍历输出数组元素
for(int i=0;i<arr.length;i++){
System.out.println(arr);
}
第五章 Day05
5.1 方法
5.1.1 方法的定义:
方法的定义格式:
public static 返回值类型 方法名(参数类型 参数名,参数类型2 参数名2,.....){
方法体;
return 返回值;
}
修饰符:目前固定使用public static
返回值 :就这件事情做完之后的结果
返回值类型: 这件事情做完后的结果的类型
方法名:这件事情的名字
参数:做这件事情需要的东西
参数类型 : 参数的数据类型
参数名:就是给参数取的一个名字
return :用来返回最终的结果. 两个作用,第一停止当前方法,第二将后面的返回值还给调用处
定义方法三要素:(先把这三个要素分析出来再去定义方法)
方法的功能
方法的参数
方法的返回值类型
5.1.2 方法的调用
格式:
最纯粹的格式:
方法名(参数1,参数2...);
注意:传参数的时候方法定义里有几个参数就传几个参数.方法定义的时候参数是什么类型就传什么类型.
如果方法有返回值,一般是用接收返回值
5.1.3 方法的重载
方法重载(Overload)的定义:
在同一个类中,方法名相同,参数列表不同的方法才叫重载
参数列表不同:
参数个数不同
参数类型不同
参数的多类型顺序不同
如何快速的分辨参数列表是否相同:
把每个参数的数据类型拼接在一起组成一个字符串.
比较两个字符串是否相同
注意:看参数列表是否相同的时候和参数名没有关系
第六章 Day07
6.1 面向对象思想
面向过程思想
让我们去做事情的时候,我们自己去把每个步骤给做了
缺点 自己太累了
面向对象思想:
让我们去做事情的时候,我们自己不做,指挥别人或者别的东西去做 我们负责指挥 优点:我们轻松了,并且任务也能完成
6.2 类和对象
类:对一个共同事物属性和行为的的描述
对象:对象是某类事物的一个个体
6.3 封装
就是把一些东西隐藏起来。
6.4 构造方法
构造方法的特点:
类名和方法名相同
②没有返回值类型,连void都不能写
构造方法的调用格式:
new 类名(参数);
|
|