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

原创 2012年03月27日 16:32:41

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在某一时刻只处理一个程序。
多任务同时运行,真正是双核以上的情况。

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

相关文章推荐

java基础视频25days(毕老师)学习日志(day23、24)

看基础视频也有一段时间了,这两天看的网络编程day23和day24的内容,下面发的笔记主要是听看视频时记录内容的。看视频最主要的是记住思路,然后可以自己按照思路写出代码,相信这样学习进步会快一些,所以...

java基础视频25days(毕老师)学习日志(day20、day21)

day20:  ★01  File 概述: 用来将文件夹和文件封装成对象。 File对象出现弥补了流的不足,流: 不能操作文件夹,不能操作文件的属性信息, c:\\abc\\zzz\a.tx...

java基础视频25days(毕老师)学习日志(day01、day02、day03)

day01 ★1 ,2,,3 dos命令行,课程中常见的命令。 dir : 列出当前目录下的文件以及文件夹 md : 创建目录 rd : 删除目录 cd : 进入指定目录 cd.. : ...

java基础视频25days(毕老师)学习日志(day11、day12、day13)

day11 ★01 多线程; 进程:是一个正在执行中的程序。       每一个进程执行都有一个执行顺序。该顺序是一个执行路径。      或者叫一个控制单元。 线程:就是进程中的一个独立的...

java基础视频25days(毕老师)学习日志(day07、day08、day09、day10)

day07 ★01  继承 注意:千万不要为了获取其他类的功能,简化代码而继承。 必须是类与类之间有所属关系才可以继承。所属关系is a。 ★02  继承概述2 继承的意义 1,提高了代码...

java基础视频25days(毕老师)学习日志(day17、day18、day19)

day17 ★01 集合,不需要保证唯一,用List。可是想对集合中元素进行排序,不能用Tree,Tree是set集合中的,List里面没有直接排序的方式。可是提供了工具:collections...

java基础视频25days(毕老师)学习日志(day14、day15、day16)

day14 ★01 ★02  collection framework 共性方法。 接口,没有构造方法摘要,只有方法摘要。 增删改查。容器 retainAll(Collection)   取...

java基础视频day04

  • 2016年12月09日 23:58
  • 7.89MB
  • 下载

传智博客毕向东老师java基础视频笔记——Day 01

传智博客毕向东老师java基础视频笔记——Day 01 一:基础知识 1.1:软件开发    ①软件是一些列按照特定顺序组织的计算机数据以及指令的集合。目的为了处理现实生活中的数据。 ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java基础视频25days(毕老师)学习日志(day04、day05、day06) .
举报原因:
原因补充:

(最多只允许输入30个字)