本帖最后由 调味汁的味道 于 2019-3-8 12:28 编辑
第一章 Day01今天是javaEE基础班的第一天,我了解JAVA的一些基本知识,了解JAVA语言的历史,下面是今天所学得详细内容: 1.1 java语言概述&基础知识1.1.1 java语言发展史Java语言是美国Sun公司(StanfordUniversity 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方法主入口 publicstatic void main(String[] args){ //编写输出heeloworld语句 System.out.println("HelloWorld"); } } //注意:类名要和文件名相同 System.out.print(); //这是不换行的输出语句 System.out.println(); //这是换行的输出语句 1.2.2 注释注释就是对代码的解释说明,它是给程序员看的。 1.2.3 注释分类l 单行注释:// l 多行注释:/* */ l 文档注释:/** */ 1.2.4 关键字关键字就是java中有特殊意义的词 特点: l 完全是小写的字母 l 常见的开发软件中会有特殊颜色 1.2.5 常量在程序运行中,不变的量 整数常量:不带小数点的整数 小数常量:带小数点 字符常量:加单引号的一个字符 字符串常量:加双引号的0个或0个以上的字符 布尔常量:truefalse 空常量:Null 1.2.6 数据类型l 基本数据类型 四类八种: 整数: 字节 byte 1 -128~127 短整数 short 2 整数 int 4 长整数 long 8 浮点数: 单精度 float 4 双精度 double 8 布尔: boolean 1 字符: char 2 l 引用数据类型 不是基本数据类型的都是引用数据 1.2.7 变量在程序运行中,可以改变的值 变量一般都是用来存储一些数据 格式: a) 数据类型 变量名 = 值; b) 数据类型 变量名; 变量名 = 值; 变量的使用: 直接写变量名; 注意事项: l 变量使用不能超过作用域的范围 【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。 l 可以通过一个语句来创建多个变量,但是一般情况不推荐这么写。 public class Demo3{ public static voidmain(String[] args){ //【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。 { int a = 1; System.out.println(a); } a = 20;//这里会报错 System.out.println(a); } } public class Demo3{ public static voidmain(String[] args){ //【作用域】:从定义变量的一行开始,一直到直接所属的大括号结束为止。 int a = 20; { int a = 1;//这里会报错 System.out.println(a); } System.out.println(a); } } 1.2.8 标识符标识符:我们给变量,方法或者类名就是标识符 命名规则:(硬性要求) l 标识符可以包含英文大小写字母,数字,下划线和$ 中文也可以 l 不能以数字开头 l 不能是关键字 命名规范(软性要求) l 类名:大驼峰 所有单词首字母大写 l 类名:小驼峰 除了第一个单词外,所有单词首字母都大写 1.2.9 数据类型转换l 自动类型转换 特点:代码不需要进行特殊处理,自动完成 规则:数据范围从小到大 l 强制类型转换 特点:代码需要进行特殊的格式处理,不能自动完成 格式: 目标类型 变量名 = (目标类型)被转换的数据 注意事项: l 强制了下转换一般不推荐使用,因为可能会发生精度损失,数据溢出,只有你确定了我这个转换不会发生这些问题,或者就算出现了也无所谓的时候我才用。 l byte/short/char这三种类型都可以发生数学运算,在运算的时候都会先被提升为int类型再进行计算 l boolean类型不能发生数据类型转换 byte b1=10; byte b2=20; byte sum = b1+b2;//报错 改成int. 第二章 Day02今天是基础班第二天 2.1 运算符2.1.1 算术运算符:+ - * / % 特别注意: /和数学中的除不太一样两个整数相除只能得到整数,如果需要得到小数要求至少其中一个是浮点数。 %取余 比如10%3结果为1 2.1.2 自增和自减运算符:++ --l a++; 相当于a=(a的数据类型)(a+1); l a--; 相当于a=(a的数据类型)(a-1); 注意: ++可以写在变量的前面也可以写在变量的后面,单独写的时候写前面写后面都没有区别,区别就在和其它运算符一起写。 ++变量名 (先自增再运算); --变量名(先运算再自增); 2.1.3 赋值运算符:= += -= *= /= %=l 基本赋值运算符: = 代表将右侧的数据交给左侧的变量; 例如: int a = 30; a= a+3; l 符合赋值运算符:+=,-+,*=,/=,%= (有隐含强制转换) 例如: inta = 10; a+= 3;//相当于a=(int)(a+3); a-=3;//相当于 a = (a的数据类型)(a-3); 2.1.4 比较运算符:> < >= <= == !=比较结果是布尔类型; 2.1.5 逻辑运算符:& | ! ^ && ||与 &&(短路与),&(没有短路效果)读成并且 ,结果都是一样的 或 || , | 读取或者 非 !取反 异或 ^ 可以用来判断是否是异性 短路: 左边表达式的结果确定之后,如果整个表达式的结果已经被确定了,就不会去执行右边的表达式 2.1.6 三元运算符:数据类型变量名 = 布尔表达式?表达式1:表达式2l 执行流程: 先判断布尔表达式的结果,如果结果为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{ 语句体; } l if语句格式: 首先有且仅有一个一个if,后面会有0个到多个else if语句,最后会有0个或1个else 注意:开头肯定是一个if,有可能一个else if都没有,else有可能没有,如果有也只会出现一个else. l 执行流程: 从上到下依次执行判断表达式 结果为true:则执行后面紧跟着的语句体.语句体执行完了整个if语句就结束了. 结果为false:则继续判断下面一个判断表达式 如果所有判断表达式的结果都为false,在有else语句的情况下就执行else里面的语句体,没有的话if语句结束. l 注意: 1. 一旦执行了一个大括号中的语句体,整个if语句就结束了。不可能出现执行两个语句体的情况。 2. 如果大括号中的语句体只有一行代码的时候可以把大括号省略,但是建议永远不要省略。 2.3 键盘录入导包:importjava.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. 导入包 importjava.util.Random; B. 创建对象 Random r= new Random(); C. 获取随机数 int num =r.nextInt(10);//[0,10) 第四章 Day04基础班第4天 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基础班第7天 6.1 面向对象思想面向过程思想 让我们去做事情的时候,我们自己去把每个步骤给做了 缺点 自己太累了 面向对象思想: 让我们去做事情的时候,我们自己不做,指挥别人或者别的东西去做 我们负责指挥 优点:我们轻松了,并且任务也能完成 6.2 类和对象类:对一个共同事物属性和行为的的描述 对象:对象是某类事物的一个个体 6.3 封装就是把一些东西隐藏起来。 6.4 构造方法l 构造方法的特点: 类名和方法名相同 ②没有返回值类型,连void都不能写 l 构造方法的调用格式: new类名(参数); |