java基础视频25days(毕老师)学习日志(day04、day05、day06) .

来源:互联网 发布:手机淘宝短信通知 编辑:程序博客网 时间:2024/05/17 00:56

day04
★01
数组定义的两个格式。
数组在操作时容易出现的问题:
ArrayIndexOutOfBoundsException
数组角标越界异常。操作数组时,访问到了数组中不存在的角标。
arr=null;
NullPointerException
空指针异常。指针已经不指向任何实体了,但还要拿着这个指针进行实体操作,这是不允许的。
20120217 am
★02数组(遍历)
♂EditPlus 问题:
键入回车键,现有代码不换行,只是鼠标下移;重启EditPlus 软件后,回复正常。
&遍历,通常要用到for循环。

System.out.println(arr);
打印的是数组实体的内存存放地址。输出数组的地址没什么意义。
1.arr.length  如何获取数组长度
2.用了一个小功能,对数组进行了基本的操作。
★03 数组,获取最值
♂max作为角标来比较时,最后打印的max怎么回事,max不是角标吗,怎么突然变成了数组元素?
视频时间:13:45
解答:int max=getMax_2(arr);  在主函数中这一语句,已经将返回的最大值赋给了max,所以这时的max已经不是角标号了。而是return后的数组最大值。
&boolean型数组,默认值是false
★04
数组排序:选择排序。
定义一个数组,并打印出来,需要一段固定结构的代码,可以将此定义为一个函数。
★05 冒泡排序
:相邻的两个元素进行比较,如果符合条件换位。
&冒泡排序第一圈:最值出现;
&在堆内存中频繁换位置的操作,转移到栈内存中。
1,明白排序的算法,
2,应付面试。
&运行错误,Arrays.sort 未达到想要的运行结果。视频时间17:10
★06
无论什么排序,都需要对满足条件的元素进行位置的置换。
所以可以把这部分相同的代码单独提取出来,单独封装成一个函数。
swap
★07
数组的查找操作,折半查找。详见编译练习文件。
★08
十进制——二进制
打印结果,用void型;
★09
十进制——十六进制
★10
查表法来获取内容
字符数组在内存中一被定义,它的初始化值:
空位:"\u0000" java 中的Unicode编码。
★11  十进制——二进制
两种方法:
1)同1进行与运算,然后存储,继续右移1位的方式。
2)手动相同的算法机制,莫于2,取余存储。
&右移方法转换进制:
定义数组列表,定义指针,进行循环、临时存储,右移、从低位向高位打印。
由以上规律,见下一个:
★12 进制转换优化
★13数组
把数组作为元素存到数组中去,这样包含数组的数组,称之为二维数组。
&求二维数组中所有元素的和。
★14  二维数组的定义方法。

day05

★01 面向过程、面向对象;
★02 面向对象举例;
需求分析,开发,测试。分两部分来说
面向对象的特点,首先它是一种思想,它能让复杂问题简单化,从执行者转变成指挥者。
举例说明,结合实际场景来说。
&对象具备特定的功能,对象不是单单指人。
java:一切皆对象,万物皆对象。所想到的概念都可以是一个对象。
对象在程序中的体现:在解决问题的时候,先找对象。java中是否已经提供了相对应的对象。
有对象拿过来用,没有对象自己造一个对象。
★03
功能定在哪个事物中最合适,需要考虑。
面向对象的三个特征:封装、继承、多态。
以后的开发其实就是在找对象使用;没有对象就创建一个对象。
找对象,创建对象,使用对象并维护对象之间的关系。
&对象,多个功能的封装。
&类和对象的关系。类就是对现实生活中事物的描述,对象就是这类事物实实在在存在的个体。
现实生活中的对象:张三、李四。
描述:提取对象中的共性内容,对具体的抽象。
描述时,这些对象的共性有:姓名,年龄,性别,学习java的功能。
&在java中,描述是用类的形式来体现的;而对象,通过new操作符,所产生一个实体,这个实体在堆内存当中。
&描述事物就是在描述事物的属性和行为。
&映射到java中,描述就是class定义的类。
具体对象就是对应java在堆内存中用new建立的实体。
&类类型的变量指向对象
&多个引用指向同一个对象。
★04
一个程序会有很多类组成,只要一个入口就行;
★05
知识点:匿名对象。
匿名对象调用的属性没有意义。调用方法有意义。
使用方式一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。
如果对一个对象进行多个成员调用,必须给这个对象取一个名字。

凡是简化的,都是有局限的,三元运算符,if  else的简化,三元运算符必须要有运算结果。
使用方式二:可以将匿象作为实际参数进行传递。
需求:汽车修配厂。对汽车进行改装,将来的车都改成黑色,3个轮胎。
匿名对象可以作为实际参数进行传递。
堆中产生一个对象。
栈里面开辟一个show的空间。
★06  07  封装:
是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。
封装原则:
   将不需要对外提供的内容都隐藏起来。
   把属性都隐藏,提供公共方法对其访问。
函数,就是java代码中最简单的封装体。类也是封装体。包的概念。
private 封装后提供一种访问的方式。
对于变量的操作方式:设置值或获取值
成员变量有默认值。
&对于成员变量,方法,函数,入口等的设置只是有了一个初步的印象,person
speak age的例子,还不能顺利地用java语言写出来。
定义函数,变量,调用方法,必须弄清楚类,对象,方法、过程之间的关系,并一一对应到这一实例中去。

★08
想使用该类,则创建该类相应的对象;

对象建立则调用与之对应的构造函数。
构造函数的作用:可以用于给对象进行初始化。
当我们在堆内存中产生对象的时候,它需要一个初始化动作。
一出现就具备了基本的特性。
构造函数的小细节:当一个类中没有定义构造函数时,那么系统会默认给该类加入一个空参数的构造函数。当在类中自定义了构造函数后,默认的构造函数就没有了。构造函数同其他函数一样,同样可以重载。
方法被对象调用。
★09 构造代码块

构造代码块定义的是不同对象的共性内容。
★10 this关键字
看上去,是用于区分局部变量和成员变量同名的情况;
this到底代表的是什么呢?
this代表本类的对象,代表它所在函数所属对象的引用。
简单说:哪个对象在调用this所在的函数,this就代表哪个对象。
★11 this关键字的应用
比较是不是同龄人:
结果是boolean型;
★12 this关键字在函数之间的调用。
构造函数间调用需要this语句。this函数只能定义在构造函数的第一行。

day06
★01 static
静态:static
用法:是一个修饰符,用于修饰成员(成员变量,成员函数)。
&每个人都可以访问country,但是内存中只存在一份。这样节约内存空间。
静态修饰内容被对象所共享。
当成员被静态修饰后,就多了一种调用方式,除了可以被对象调用外,还可以直接被类名调用。类名.静态成员
方法区、数据区、共享区。
对象的特有数据和共有数据。

static特点:
1、随着类的加载而加载。
  也就是说:静态会随着类的消失而消失。说明它的生命周期最长。
2、优先于对象的存在
 明确一点就是:静态是先存在的,对象是后存在的。
3、被所有对象所共享
4、可以直接被类名所调用。
实例变量和类变量的区别:
1、存放位置。
  类变量随着类的加载而存在于方法区中。随着类的消失而消失。
  实例变量随着对象的建立而存在于堆内存中。
2、生命周期:
   类变量生命周期最长,随着类的消失而消失。
   实例变量生命周期随着对象的消失而消失。

&静态使用注意事项:
1、静态方法只能访问静态成员。
   非静态方法可以访问静态成员。也可以访问非静态。
2、静态方法中不可以定义this,super关键字。
   因为静态优先于对象存在。所以静态方法中不可以出现this。
3、主函数是静态的。

静态有利有弊
利处:对对象的共享数据进行单独空间的存储,节省空间。没有必要每个对象中都存储一份。可以直接被类名调用。
弊端:生命周期过长。
      访问出现局限性。(静态虽好,只能访问静态)
★02
arguments 参数
主函数。

★03
★04 静态的应用(工具类)
通常工具里面定义的都是静态方法。
★05 面向对象(帮助文档的制作)
开始制作程序的说明书。java的说明书通过文档注释来完成。
类的说明书。
★06
静态代码块给类初始化
构造代码块给对象初始化的
构造函数给对应对象初始化
★07
这句都做了什么事情?
1,因为new用到Person.class。所以会先找到Person.class文件并加载到内存中。
2,执行该类中的static代码块,如果有的话,给Person.class类进行初始化。
3,在堆内存中开辟空间,分配内存地址。
4,在堆内存中,建立对象的特有属性,并进行默认初始化。
5,对属性进行显示初始化。
6,对对象进行构造代码块初始化。
7,对对象进行对应的构造函数初始化。
8,将内存地址赋给栈内存中的p变量。
★08 对象调用成员过程。
赋值的变换,有点晕。
非静态时前面省略this点;静态时前面省略Person点。
★09 单例设计模式
方法要想被调用,要么对象,要么类名。
对象肯定在堆里面。
这样就保证了一个类在内存中对象的唯一性。
★10 单例设计模式2
1,建立一个私有并静态的本类对象。
2,建立一个构造方法
3,共有并静态的返回方法。

开发一般用饿汉式,懒汉式容易出现问题:
CPU在某一时刻只处理一个程序。
多任务同时运行,真正是双核以上的情况。

记录原则:定义单例,建议使用饿汉式。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 脚麻了被别人动怎么办 毛孔又粗又黑怎么办 手臂睡觉压麻了怎么办 睡觉压的胳膊麻怎么办 摔跤摔到腰肿了怎么办 牛奶喝多了拉稀怎么办 doc文档下载是乱码怎么办 家人被教练技术骗了怎么办 十个月宝宝不爱喝水怎么办 离婚后孩子找爸爸怎么办 离婚后孩子要找爸爸怎么办 断奶期间胸涨的难受怎么办 断奶胸涨的很疼怎么办 过了麦季身上老痒怎么办 过麦时候皮肤痒怎么办 颈部起红疙瘩痒怎么办 脚底痒身上痒该怎么办 生完孩子屁股疼怎么办 pr打开工程文件无响应怎么办 娃娃和老师有隔阂了怎么办 大人字写得不好怎么办 不会写好看的字怎么办 无限量流量限速了怎么办 长期化妆后皮肤变黄怎么办 手机密码忘记了打不开怎么办 手机解压包不知道密码怎么办 手机屏图标没了怎么办 b站页面卡顿怎么办 被全景视觉骗了怎么办? 逆战进去没声音怎么办 Mac电脑ai卡住了怎么办 pr字幕打不了字怎么办 pr手写字多笔画怎么办 家中挖矿噪音很大怎么办 学了栏目包装不想干怎么办 在文本打字乱了怎么办 体考后觉得成绩有出入怎么办 荧光棒进眼睛里怎么办 无法读源文件或磁盘怎么办 爱剪辑视频横着怎么办 pr界面字体太小怎么办