码迷,mamicode.com
首页 > 其他好文 > 详细

第二天

时间:2015-06-24 22:26:16      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:

    虽然今天因为红蜘蛛的问题,一天没有上课,但是相当于给了我们一天自习的时间,我也仔细研读了一下老师发给我们的ppt,下面来做个总结:

    JAVA基础:
    关键字,标识符,常量变量,数据类型,运算符,语句,函数,数组    下面展开来总结,思考:
    目前我可以理解的关键字:class , byte , int ,short ,long ,int ,float ,double, char , boolean , void , null , false, true , if ,else , switch , for ,while , break , continue ,return , case ,default , private , public , protected,
extends , 
    我不能理解的关键字:interface , abstract , final , static , synchronized , implements,new ,this ,super,
instanceof , try , catch , finally , throw ,throws , package , import , native , strictfp , transient , volatile , 
assert;
    标识符:
    包名:由多个单词组成时, 所有单词小写;
    类名或者接口名:多个单词组成时,所有单词首字母大写
    变量名和函数名:多个单词组成时,第一个单词首字母小写,其他的首字母大写
    常量名:所有字母都大写,多单词时,每个单词用下划线连接;
    常量和变量:
    类型转换中,如下代码不能理解:
byte a = 1;
a = (byte)a + 2; 
    运算符:
算数运算符注意事项:
1.如果对负数取模,可以把模数符号忽略不记,如 5 % -2 = 1;但是如果被模数是负数就另当别论了;
2.整数之间的/运算,只保留整数部分,而舍弃小数部分;
逻辑运算符:(逻辑运算符用于连接布尔型表达式)
& 与 且运算符
|  或 运算
^ 异或运算
&& 与
|| 或
! 非
那么&和&&的区别是什么呢:
1.单&时,左边无论真假,右边都进行运算
2.双&&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参加运算
3.单|时,左边无论真假,右边都参与运算
4.双||时,如果左边为假,右边参与运算,如果左边为真,那么右边不参与运算
 
^异或,与|的区别是:当左右两边都为true时,^的结果为false,| 的结果是true;
 
位运算:
1.<<  空位补0,被移除的高位丢弃
2.>> 如果被移位的最高位为0,那么移动后,最高位补0;如果最高位为1,那么移动后,最高位补1;
3.>>> 无符号右移,不管最高位是0还是1,移动后,最高位都是补0;
4. ^ 任何相同的二进制位进行^运算,结果为0,任何不相同的二进制位进行^ 运算,结果为1;
 
if条件判断:
1.条件表达式无论写成什么样,只需要看最终的结构是否是true或者false
2.条件判断和三目运算符的区别是:三目运算符运行完之后,是有值出现,是有返回值的,可以很方便的写到其他的表达式中。
 
switch 条件判断:
1.switch语句选择的类型只有四种:byte,short, int ,long 
2.switch结束有两种情况:遇到break,或者执行到switch语句结束
3.如果匹配的case  或者 default 没有对应的break,那么程序会一直执行下去、
 
break:
1.用于选择结构或者循环结构
 
continue:
1.只能应用与循环结构
2.结束本次循环,继续下次循环
 
注意:
1.这两个关键字,离开应用范围,存在就没有意义了
 
 
函数:
函数的重载:即是在一个类中,可以存在两个相同的的函数名,但是函数形参的个数或者形参的类型必须不同,且与返回值无关,只看参数列表
 
数组:
Java程序在运行时,需要在内存中的分配空间。为了提高运算效率,又对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式。
 
栈内存:
用于存放局部变量,当数据使用完成之后,所占空间会自动释放
 
堆内存:
1.数组和对象,通过new建立的实例都存放在堆内存中
2.每一个实体都有内存地址值
3.实体中的变量都有默认初始化值
4.实体不在被使用,会在不确定的时间内被垃圾回收器回收
 
类似的内存空间中还有  方法区,本地方法区,寄存器 等
 
数组常见操作:
1.遍历
2.java中的参数传递
3.获取最值(最大值或者最小值)
4.排序(冒泡排序和选择排序)
5.折半查找
 
面向对象:
因为之前有理解过面向对象的思想,所以这里只拿较重要的地方来说明
成员变量和局部变量的区别
成员变量:

成员变量定义在类中,在整个类中都可以被访问。
成员变量随着对象的建立而建立,存在于对象所在的堆内存中。
成员变量有默认初始化值。

 
局部变量:
局部变量只定义在局部范围内,如:函数内,语句内等。
局部变量存在于栈内存中。
作用的范围结束,变量空间会自动释放。
局部变量没有默认初始化值。
 
匿名对象:目前并不理解,需要进一步思考
 
构造方法:
该方法的名字和类名相同,不需要定义返回值类型,没有具体的返回值,其作用是给对象进行初始化,当有多个构造函数时,它是以重载的方式存在的。
 
this:
代表其所在函数所属对象的引用,换言之,this就是代表本类对象的引用,当在函数中需要调用该函数的对象的时候,我们使用this
 
代码块:
局部代码块:
在函数中使用的代码块 就是局部代码块,作用:可以控制变量的使用范围
构造代码块:
 在类中使用的代码块 就是构造代码块,作用:可以给成员变量赋值,在构造方法前 执行
 
对象的初始化过程:
Persion one = new Persion()  这一行代码究竟在内存中做了什么,需要深入理解。
 
继承:
1.java只能单继承而不可以多继承,即:
class One extends Two  //ok
class One extends Two , Three   //wrong   
2.java支持多层继承
class A{};
class B extends A;
class C extends B;
3.我们不能为了某一个功能而去继承父类
 
super:
1.和this的用法很像
2.this代表本类对象的引用
3.super代表父类的内存空间的标识
4.当子父类出现同名成员时,可以使用super进行区分
5.子类要调用父类构造函数时,可以使用super语句
 
子类实例化的过程:
1.子类中所有的构造函数默认都会访问父类中空参数的构造函数
2.因为每一个构造函数的第一行都有一条默认的语句super();
3.子类会具备父类中的数据,所以要先明确父类是如何对这些数据初始化的。
4.当父类中没有空参数的构造函数时,子类的构造函数必须通过this或者super语句指定要访问的构造函数。
 
函数覆盖:
1.子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为重写或者复写。
2.父类中的私有方法不可以被覆盖。
3.在子类覆盖方法中,继续使用被覆盖的方法可以通过super.函数名获取。

覆盖注意事项:
1.覆盖时,子类方法权限一定要大于等于父类方法权限
2.静态只能覆盖静态。

覆盖的应用:
当子类需要父类的功能,而功能主体子类有自己特有内容时,可以复写父类中的方法,这样,即沿袭了父类的功能,又定义了子类特有的内容。
 
final关键字:(不明白)
1.final可以修饰类,方法,变量。
2.final修饰的方法不可以被覆盖。
3.final修饰的变量是一个常量。只能被赋值一次。
4.final修饰的类不可以被继承。
5.内部类只能访问被final修饰的局部变量。
 
多态:(不明白)
1.父类型引用指向子类型对象;
2.父类或者接口的引用指向或者接受自己的子类对象
 
总结之后发现还是有好多东西不懂呀,不过没关系,明天休息,好好搞一下。
                                                                                                                                                           

第二天

标签:

原文地址:http://www.cnblogs.com/ccharp/p/4598712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!