黑马程序员技术交流社区

标题: 自学毕向东老师视频总结 [打印本页]

作者: 我就是姚舜禹    时间: 2014-11-19 22:29
标题: 自学毕向东老师视频总结
第一章:编程基础
1.Java的特性和优势:简单性、面向对象、可移植性(writeonce,run anywhere)、高性能、分布式、动态性、多线程、安全性、健壮性。
2.Java的运行机制,计算机高级编程语言类型有:编译型、解释型,Java语言是这两种类型的结合,利用编辑器编写Java源程序--源文件名:主类名.java,利用编译器(javac)将源程序编译成字节码--字节码文件名:源文件名.class,再利用虚拟机(解释器,即java)解释执行,运行过程:载入、代码校验、解释执行。
3.Java运行时环境JRE包含:Java虚拟机、库函数、运行Java应用程序和Applet所必须的文件,JDK(又称SDK)包含:JRE的超集、编译器、调试器等开发工具。
4.Java运行环境的三项主要功能:加载代码:由class loader完成;代码校验:由bytecodeverifier完成;执行代码:由runtime interpreter完成。
5.Java开发环境搭建:下载安装JDK,新增系统环境变量JAVA_HOME,设置就是JDK的安装路径,修改系统环境变量Path,在最前面加上%JAVA_HOME%\bin,并以分号;和原路径分隔,再在最前面加上.;表示当前目录的意思,完整的就是.;%JAVA_HOME%\bin;
6.注释:就是程序员为读者作的说明,是提高程序可读性的一种手段,Java中有三种注释,即单行注释(//)、多行注释(/**/)、文档注释,/**/不能被嵌套,并且应当知道注释不会出现在字节码文件中,即注释不会影响到字节码文件的大小,Java编译器编译时也会跳过注释语句。
7.标识符:用作给变量方法命名,但应注意表示类名的标识符每个单词的首字母都要大写,方法和变量的标识符用小写字母开头,后面的描述性词以大写开头,即从第二个单词起每个单词的首字母要大写,并且Java的标识符必须以字母下划线_美元符$开头,不能以数字开头,标识符除开头外的其他部分可以是字母下划线_美元符$以及数字的任意组合,Java标识符大小写敏感,长度无限制,不能是Java中的关键字注意:Java不采用通常语言使用的ASCII字符集,而是采用unicode这样的标准的国际字符集,所以这里的字母的含义:英文汉字等等,但尽量不要用汉字来定义标识符,更不能用关键字来作为变量名和方法名,但可以是关键字与其他单词的
4
组合形式。
8.变量:通过变量来操纵存储空间中的数据,变量就指代这个存储空间!空间位置是确定的,但是里面放置什么值不确定,Java是一种强类型的语言,每个变量都必须在它本身前面声明其类型才能被使用并为其分配相应长度的存储单元,Java变量是程序中最基本的存储单元,其要素包括变量名、变量类型和作用域。注意:每个变量都有类型,类型可以是基本数据类型也可以是引用数据类型,变量必须是合法的标识符,变量声明是一条完整的语句,因此每一个声明都必须以分号";"结束。
9.变量可以分为:局部变量,即定义在方法或语句块内部的变量,生命周期是从声明位置到"}"为止,并且局部变量在使用前必须先声明其类型和初始化(赋初值);成员变量,又称实例变量,即定义在方法外部、类的内部的变量,从属于对象,生命周期伴随对象始终,如果不自行初始化,他会自动初始化成该类型的默认初始值(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔类型默认是false);静态变量,又称类变量,即被static修饰,用static定义,从属于类,生命周期伴随类始终,从类加载到卸载,如果不自行初始化,他会自动初始化成该类型的默认初始值(数值类型的初始化成0或0.0,字符型的初始化成默认的16位的0,布尔类型默认是false)。

10.常量:即初始化后不能再改变的值!


作者: 我就是姚舜禹    时间: 2014-11-19 22:32
11.命名规则(规范):所有变量、方法、类名,都要见名知意;类成员变量要首字母小写和驼峰原则;局部变量也要首字母小写和驼峰原则;常量的单词字母要全部大写,若有两个以上的单词组成,就用下划线"_"进行连接,如MAX_VALUE;类名要首字母大写和驼峰原则;方法名要首字母小写和驼峰原则,如run()、showRun()。
12.Java的数据类型分为两大类,即基本数据类型和引用数据类型,在基本数据类型中有3类8种基本数据类型(逻辑型-boolean;文本型-char;数值型-byte、short、int、long、float、double),引用数据类型有类(class)、接口(interface)、数组(array),注意,引用数据类型的大小统一
5


为4个字节,记录的是其引用对象的地址!
13.Byte类型(1字节)、short(2字节)、int(4字节)、long(8字节)、float(4字节)、double(8字节)。
14.字符型(2个字节),单引号来表示字符常量,例如'A'是一个字符,它与"A"是不同的,"A"表示含有一个字符的字符串;char类型用来表示在unicode编码表中的字符;unicode编码被设计用来处理各种语言的所有文字,它占2个字节,可允许有65536个字符,ASCII码占1个字节,可允许有128个字符,是unicode编码表中前128个字符;unicode具有从0到65535之间的编码,他们通常从'\u0000'到'\uFFFF'之间的16进制值来表示(前缀u表示unicode);Java语言还允许使用转义字符'\'来将其后的字符转变为其它的含义,如\b代表退格、\n代表换行、\r代表回车、\t代表制表符(tab)、\"代表双引号、\'代表单引号、\\代表反斜杠。

方法,Java的方法类似于其他语言的函数,是一段用来完成特定功能的代码片段,声明格式:[修饰符1  修饰符2  . . .]  返回值类型方法名(形式参数列表){
Java语句;
. . .
}
形式参数,即在方法被调用时用于接收外界输入的数据;实参,调用方法时实际传给方法的数据;返回值,方法在执行完毕后返还给调用它的环境的数据;返回值类型,事先约定的返回值的数据类型,如无返回值,必须给出返回值类型void;调用方法的格式为对象名.方法名(实参列表);实参的数目、数据类型和次序必须和所调用的方法声明的形参列表匹配;return 语句终止方法的运行并指定要返回的数据;Java中进行方法调用传递参数时,要遵循的原则是,基本数据类型传递的是该数据值本身,引用数据类型传递的是对对象的引用,而不是对象本身;Java中只有值传递!

16.简单的键盘输入和输出:
Scanner scanner=newScanner(System.in);
//将输入的第一行赋给string
//String string=scanner.nextLine();
//将输入单词到第一个空白符为止的字符串赋给string
//String string=scanner.next();
//将输入的数字赋给变量6

intstring=scanner.nextInt();
System.out.println(string);
17.for循环和while循环的特点:1,for和while可以互换;2,格式上的不同,在使用上有点小区别,即当需要通过变量来对循环进行控制,该变量只作为循环增量存在时,区别就体现出来了,在for循环中该变量随着循环结束而从内存消亡,但在while循环中却可以继续存在并使用,也就是还在内存中并未消亡。
18.无限循环最简单的形式:while(true){ }和for( ; ; ){ }。
19.什么时候使用循环结构呢?当对某些代码执行很多次时,使用循环结构完成,当对一个条件进行一次判断时,可以使用if语句,当对一个条件进行多次判断时,可以使用while语句,注意:在使用循环时,一定要明确哪些语句需要参与循环,哪些不需要,循环通常情况下,需要定义条件,需要控制次数。

20.If语句的三种格式:
if(条件表达式)
{
执行语句;
}
if(条件表达式)
{
执行语句;
}
else//否则
{
执行语句;
}
if(条件表达式)
{
执行语句;
}
else if (条件表达式)
{
执行语句;
}
……
else
{7

执行语句;
}
21.三元运算符就是if else 语句的简写格式,简写格式什么时候用?当if else语句运算后,有一个具体的结果时,可以简化写成三元运算符形式。
22.局部代码块可以定义局部变量的生命周期,如:

{//局部代码块可以定义局部变量的生命周期。
inta = 3;
//a 的运算。
System.out.println(a+4);
}
变量a的作用域只是在声明位置起到"}"为止。
23.if和switch的应用,if:1,对具体的值进行判断;2,对区间判断;3,对运算结果是boolean类型的表达式进行判断;switch:1,对具体的值进行判断;2,值的个数通常是固定的,对于几个固定的值判断,建议使用switch语句,因为switch语句会将具体的答案都加载进内存,效率相对高一点。
24.比较运算符,运算完的结果必须是true或者false,如:

System.out.println(3>2);//true
System.out.println(3==2);//false
25.逻辑运算符有什么用?用于连接两个boolean类型的表达式,&:与,|:或。

&:符号的运算特点是:
true & true = true;
true & false = false;
false & true = false;
false & false = false;
&:运算规律:
&运算的两边只有有一个是false,结果肯定是false,
只有两边都为true,结果才是true。
|:运算特点:
true | true = true;
true | false = true;
false | true = true;
false | false = false;
作者: 夏至落叶    时间: 2014-11-19 22:34
顶顶,1103班威武
作者: wez924612    时间: 2014-11-19 22:34
名字碉堡! 虽然哥不认识你是哪个逗比!
作者: 随风sky    时间: 2014-11-19 22:40
给顶一个!
作者: 迷失的小Z    时间: 2014-11-19 22:49
有种ctrl c+ctrl v 的感觉……
作者: Tae丶Yeon    时间: 2014-11-19 22:53
有种ctrl c+ctrl v 的感觉
作者: 王立腾    时间: 2014-12-11 19:05
这个我亲眼所见,感觉挺努力的,明天加油。
作者: 陈强fly    时间: 2014-12-11 20:20
   受教了,新手,零基础。多谢了。希望自己不要跟不上老师的进度。
作者: 时间都去哪了    时间: 2014-12-12 21:37
加油,顶顶楼主
作者: 双鱼座程序员    时间: 2014-12-14 12:56
给个赞,有前途
作者: 斷灬dian    时间: 2014-12-14 21:06
很好刚开始不久 ,刚好拿来 学习
作者: 我就是姚舜禹    时间: 2014-12-15 00:45
第二章:数组
29.内存的划分:
1,寄存器。
2,本地方法区。
3,方法区。
4,栈内存。
存储的都是局部变量,而且变量所属的作用域一旦结束,该变量就自动释放。
5,堆内存。
存储是数组和对象(其实数组就是对象) 凡是new建立在堆中。
特点:
1,每一个实体都有首地址值。
2,堆内存中的每一个变量都有默认初始化值,根据类型的不同而不同。整数是0,小数0.0或者0.0f,boolean false char '\u0000'
3,垃圾回收机制。
30.数组中常见的两个异常:
System.out.println(arr[3]);//ArrayIndexOutOfBoundsException:
//当访问到数组中不存在的角标时,就会发生该异常。
arr = null;
System.out.println(arr[0]);//NullPointerException
//当引用型变量没有任何实体指向时,还在用其操作实体。就会发生该异常。12

31.break与continue:
break:跳出。
break作用的范围:要么是switch语句,要么是循环语句。
记住:当break语句单独存在时,下面不要定义其他语句,因为执行不到。
break跳出所在的当前循环。
如果出现了循环嵌套,break想要跳出指定的循环,可以通过标号来完成。
continue:继续。
作用的范围:循环结构。
continue:结束本次循环,继续下次循环。
如果continue单独存在时,下面不要有任何语句,因为执行不到。

作者: 我就是姚舜禹    时间: 2014-12-15 00:47
32.九九乘法表:
/*
需求:
打印一个99乘法表。
思路:
1,定义一个类。
2,为了可以运行,该类中定义一个main函数。
3,将99惩罚表的代码定义在main函数中。
步骤:
1,用class关键字定义名称Demo99为的类。
2,定义main函数。
3,
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
分析一下99乘法表。
*/
classDemo99
{
publicstaticvoidmain(String[] args)
{
/*
99乘法表的分析:
。。。
符合了大圈套小圈的思想。
就是要使用for嵌套循环。
*/
//int z = 1;
for(intx = 1;x<=9 ;x++ )
{13

for(inty=1; y<=x ; y++)//
{
System.out.print(y+"*"+x+"="+y*x+"\t");
}
System.out.println();//
//z++;
}
}
}
33.输出一个由星*组成的正方形:
classForForDemo
{
publicstaticvoidmain(String[] args)
{
//大圈套小圈思想。
/*
for(int x=0; x<3; x++)
{
for(int y=0; y<4; y++)
{
System.out.println("ok");
}
}
*/
/*
*****
*****
*****
*****
*/
for(intx=0; x<4; x++)//外循环控制的是行数
{
for(inty=0; y<5; y++)//内循环控制的是每一行的个数
{
System.out.print("*");
}
System.out.println();
}14

作者: 我就是姚舜禹    时间: 2014-12-15 00:48
手打感想,保存再发上来不容易。谢谢各位看。
作者: 焦明坤    时间: 2014-12-21 20:31
确实不错,很适合新手看
作者: zw937820438    时间: 2014-12-22 00:04
不管怎么说意思是在哪里了,感谢一下楼主
作者: 爱卿    时间: 2014-12-22 23:23
20个黑马币哦 亲! 果然有料!
作者: missyoyo    时间: 2014-12-22 23:25
很基础的知识,基础越扎实,就业班学的越好,谢谢楼主的分享!
作者: 我就是姚舜禹    时间: 2014-12-22 23:30
missyoyo 发表于 2014-12-22 23:25
很基础的知识,基础越扎实,就业班学的越好,谢谢楼主的分享!

不用客气,我会尽快更新的
作者: 我就是姚舜禹    时间: 2014-12-22 23:31
zw937820438 发表于 2014-12-22 00:04
不管怎么说意思是在哪里了,感谢一下楼主

客气客气,感谢支持
作者: Charay    时间: 2014-12-22 23:36
我是来捧场的
作者: 疯玲    时间: 2015-3-22 17:19
总结得不错




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2