黑马程序员技术交流社区
标题:
技术贴-基础班开学期间所学所用
[打印本页]
作者:
不惊不扰
时间:
2019-8-21 16:24
标题:
技术贴-基础班开学期间所学所用
基础班开学期间所学所用
来黑马学习了两周,感觉接触了很多东西,打开了技术新世界的大门,让我见识了很多我从未接触过的东西。
我本身就是电子信息工程专业科班出身,从事嵌入式开发已经超过3年时间,现在转行过来学习java,感觉上手非常容易,而且黑马的老师讲课也非常棒,很细心。对知识点的归纳与总结都很到位。
从一开始进班下载安装jdk,配置环境变量,notepad++安装,算是给java工程师一把武器,开始准备打怪升级之旅。
第二天讲了运算符与表达式,运算符其实就是一些符号(eg:+ - * /),用运算符连接起来的一些式子,成为表达式。如果用算术运算符连接起来,就是算术表达式,下午还讲了键盘输入以及if表达式的使用,让我们慢慢熟悉了java的一些语法知识。
第三天重点是switch语句,表达式结果的类型:byte、short、char、int、枚举。String 执行流程:计算表达式的值,然后从上往下和各个case后面的值进行比对,只要发现相同,就执行该case的语句,遇到break,switch语句结束;如果所有的case都不匹配,执行default的语句。还补充了case穿透:如果某个case内没有break,在执行该case内语句后,并不会再次判断后面case的值是否匹配;而是直接执行后面case中的语句,直到遇到break或者语句结束。然后是while循环,基本格式:while(条件判断语句){循环体语句; }。完整格式:初始化语句①;while(条件判断语句②){循环体语句③;条件控制语句④;}执行流程(基于完整格式):1.执行初始化语句2.执行条件判断语句结果为false,while循环结束;结果为true,执行while循环体语句3.执行条件控制语句4.重新执行第二步,直到条件判断语句的结果为false。三种循环语句的区别:1. for、while先进行条件判断语句,然后再执行循环体do…while先执行一次循环体,然后再进行判断。最少执行一次循环体2. for和while的区别for控制循环的变量在循环结束以后,无法继续使用while循环的控制变量在循环结束以后,可以继续使用3. 死循环for(;;){}while(true){}do{}while(true);4. 使用一般情况下选择for循环死循环选择while(true)5.break和continue,break结束整个循环(还可以用在switch语句中)continue,结束本次循环,继续下一次循环6. 循环嵌套for(外层初始化语句;外层条件判断语句;外层条件控制语句){//下面内容就是外层的循环体语句for(内层初始化语句;内层条件判断语句;内层条件控制语句){ 内层循环体语句;} }。以及Random随机数生成器,使用分三步1. 导包 import java.util.Random;2. 创建对象 Random r = new Random(); 3. 生成随机数 int i = r.nextInt(n);生成随机数的范围是 [0,n),包左不包右。
第四天讲了程序中一种基本的数据结构,数组:存储多个同一类型数据的容器(内存空间),格式:数据类型[] 变量名;(不推荐:数据类型 变量名[]),数组的初始化:数据需要先初始化后使用(变量也是一样)。然后是,局部变量:写在一对大括号({},类除外)里面的变量,称为局部变量。int[] arr 写在main方法里面 就是局部变量,局部变量存储在栈内存中,在main方法结束以后,该局部变量会立即消失。对象:通过new出来的称之为对象,对象存在堆内存中,使用完以后不会立即消失(被回收),等垃圾回收器空闲时在合适的时间回收。让我印象最深的是在最后的时候讲了一道大厂的面试题,打开了另一扇大门,讲了3种方法。在一个数组中,某一个元素出现的次数>length/2,请用程序获取数组中的该数字。{1,2,6,1,5,1,3,1,1}1. 遍历数组,统计每个元素出现的次数,如果某个元素出现次数大于长度的一半。2. 排序从小到大排序 结果是 1 1 1 1 1 2 3 5 6 6 5 3 2 1 1 1 1 11 1 1 1 1 3 5 6 6 5 3 1 1 1 1 1对数组进行排序,获取数组中索引为length/2的元素,即为该数字3. 火拼1 1 1 1 1 3 5 6 {1,6,1,1,1,3,1,5}第一个元素上场前场上目前胜利的帮派/某个值winner = 0;场上有的人数/元素数量count = 0;第一元素1上场后 winner = 1;count = 1;第二个元素6上场后winner = 0;count = 0;第三元素1上场后winner = 1;count = 1; 第四个元素1上场后winner = 1;count = 2;…… 上场 看count == 0是 winer = 自己 count++ 否看是不是自己人是winner==自己 count++ //winer=自己 否 count—
第五天一整天都讲了方法,概述:具有一定功能的代码集合;注意事项:a. 方法必须先定义再使用b. 方法创建之后,需要手动使用,这个过程叫做方法的调用。2. 最简单方法的定义和调用,3. 注意事项a. 方法定义在类里面,main方法外面(方法不能嵌套定义)b. 方法的调用,是在其他方法(目前是在main)里面c. 一个作用:提高代码的复用性d. 方法的调用时在栈内存中,方法被调用时进栈,调用完毕后方法出栈3. 带参数方法的定义和调用,方法名(与参数列表匹配的变量/常量);参数列表:组成: 数据类型1 变量名1, 数据类型2 变量2,……1. 数据类型和 变量名必须成对出现2. 调用时候,传的值或变量需要与定义时参数列表匹配3. 参数列表匹配要求的是:各个参数的类型、参数数量、参数顺序都匹配4. 形参和实参形参:方法,定义的时候使用的参数格式:数据类型 变量名,实参:方法调用时候传递的参数变量名/常量值,形参和实参的关系:1. 名称:没有关系实参的变量名和形参的变量名没有关系,可以完全不一样2. 当参数为引用数据类型时,形参和实参指向了堆内存中同一地址值,通过任意一个参数修改其值,另外一个参数的值的具体内容会同步发生改变5. 带返回值的方法定义和调用返回值:方法的运算结果,这个结果的类型就是返回值的类型6. 方法定义的注意事项1. 方法不能嵌套定义,只能定在类里面,其他方法外面2. 返回值类型如果是void,表示没有返回值 方法中可以不写return 方法中可以写return,但是要这样写 return;3. 返回值类型如果不是void,return值的类型必须和方法定义时返回值类型一致4. 方法的return语句之后,不能再有语句,因为不会被执行两个明确:明确返回值类型,明确参数列表。调用:如果返回值类型是void,直接调用即可,如果返回值类型不是void,建议通过变量接收其返回值,以便继续使用。8. 方法重载。在同一个类中,存在方法名相同,参数列表不同的多个方法,这些方法之间就构成了方法重载1. 在同一个类中(后续再做优化调整)2. 多个方法方法名相同,返回值类型无所谓(方法名、参数列表相同,仅返回值类型不同的两个方法不是重载,是重复,会报错)3. 参数列表不同:参数类型、参数个数、参数顺序4. 调用时只需要传参就可以了,虚拟机会自己判断调用某个方法9. 方法调用过程中参数传递细节,当参数是基本数据类型时,形参的改变不会影响实参,当参数是引用数据类型时,形参的改变会影响实参。
后面的内容肯定更加精彩,相信在日后的学习,肯定会让我信心倍增,我热爱java,我喜欢黑马。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2