码迷,mamicode.com
首页 > 编程语言 > 详细

Java编程思想学习笔记

时间:2014-12-24 21:20:45      阅读:391      评论:0      收藏:0      [点我收藏+]

标签:

Java编程思想学习笔记

目录

第二章:一切皆对象

第三章: 操作符

第四章:控制执行流程

第五章:初始化与清理

第六章:访问权限控制

第七章:复用类

第八章:多态

第九章:接口

第十章:内部类

第十一章:持有对象

第十二章:通过异常处理错误

第十三章:字符串

第十四章:类型信息

第十五章泛型

第十六章:数组

第十七章:容器深入研究

第十八章:Java I/O系统

第十九章:枚举类型

第二十章:注释

第二十一章:并发

第二十二章:图形化用户界面

 

 

第二章:一切皆对象

 

知识点总结:

1.用引用操作对象

2.必须由自己创建所有对象,安全的做法是创建引用同时初始化对象.

3.存储到什么地方?分别是寄存器,堆栈,,常量存储,RAM存储.

4.基本类型是存储于栈中的(:这个地方可能是java不太面向对象的部分,但是提供了包装类来完成一切皆对象的设计.),另外提供了两个高精度类BigIntegerBigDecimal.

5.Java中的数组,通过自动初始化为null,运行时对数组下标是否为null做检查,达到避免常见的数组错误,而基本类型则通过全部初始化为0.来达到这一目的.

6.Java的作用域基本类型同样是用花括号来控制的.但是java是不允许在不同作用域定义同名变量的(c/c++采用的是较大作用域变量隐藏的做法).

7.Java作用域对象则和基本类型不一样的,即使到了作用域终点,引用消失,但是引用所指的对象依然存在于内存之中,而我们Java程序员并不需要关心去销毁这个对象,因为有垃圾回收器替我们做这件事情.这样就避免了c++中的内存泄漏.

6.创建类,类是什么,类是对对象的属性和方法的描述,之后用new关键字来创建这种类的一个对象即可.

7.在java的中工作就是定义类,产生类对象,并发送消息与对象交互.

8.在类中有属性和方法,属性可以是任何对象也可以是基本类型,如果是某个对象的话,那么必须初始化该引用,以便使其与一个实际对象(如前所述,使用new来实现)相关联.

9.每个对象都有用来存储其属性的空间,普通字段不能在对象间共享.给属性赋值,可以通过对象.属性名的方式来赋值,如果想修改的属性在对象所包含的其他对象中,则使用对象名,被包含对象名.属性的方式修改.

10.定义基本变量类型而未初始化,java会在编译时报错.C++则是给予警告.

11.Java的方法决定了一个对象能够接收什么样的信息,方法的基本组成包括:名称,参数,返回值和方法体.

12.方法名和参数列表统称为方法签名,唯一标识出某个方法.

13.Java中的方法,只能作为类的一部分来创建,方法只有通过对象才能被调用(除了static方法是针对类调用,并不依赖于对象的存在),且这个对象必须能够执行这个方法调用.

14.通过对象调用方法时,需要先列出对象名,紧接着句点,然后是方法名和参数列表.另外需要注意返回值的类型必须要与x的类型兼容.这种调用方法的行为通常被称为发送消息给对象.面向对象的程序设计通常简单的归纳为"向对象发送消息".

15.方法的参数列表指定要传递什么样的信息,在参数列表中必须指定每个所传递对象的类型及名字,传递时需与设定类型相同否则抛出错误.另外此处传递的是对象的引用.如果返回类型是void,return关键字只是用来退出方法.如果返回类型不是void,那么无论在何处返回,编译都强制返回一个正确的值.

16.自己写的用域名反转的方式来命名包,编译器附在一起的Java标准类库的构建使用import来导入,用通配符"*"导入一群类.

17.有两种情形使用new关键字无法满足,而使用static可以满足,就是一,只想为某种特定域分配单一存储空间,而不去考虑究竟要创建多少对象,甚至根本不创建任何空间.,希望某个方法不与包含它的类的任何对象关联在一起,也就是说,即使没有创建对象,也能够调用这个方法.

18.静态有静态方法和静态变量,静态变量的话使用类名.静态变量名,或者new个对象来使用,但是需要注意所有new出来的对象该静态变量在内存中只有一份.静态方法的话,使用类名.静态方法名()引用即可.

19.编码风格:类名的首字母要大写,如果类名由几个单词构成,那么把他们并在一起(不要用下划线分隔),其中每个单词的首字母都采用大写形式.其他所有内容,方法,成员变量,对象引用名称等标识符第一个字母采用小写.

第三章: 操作符

 

1.在最底层,Java中的数据是通过操作符来操作的.

2.所有操作符都只能操作"基本类型",例外的操作符是"=","==""!=",这些操作符能操作所有的对象,除此之外String类支持"+""+=".

3.操作符优先级,先乘除后加减,还要注意括号.另外如果System.out.println()包含"+"操作符表示字符串连接.

4.赋值使用"=",意思是"取右边的值,把它复制给左边".右边的值可以是任何常数,变量或者表达式(只要能生成一个值).但左值必须是一个明确的,已命名的变量.另外注意常熟不能作为左值.

5.对于基本数据类型赋值,是直接将内容赋值给左值,但是为对象赋值时候,我们真正操作的是对象的引用.所以倘若"将一个对象赋值给另一个对象",实际是将引用从一个地方复制到另一个地方,从而两个引用都关联着一个对象.

6.如何避免别名问题?可以使用对象名.属性名 对象名.属性名的方式来操作,这样可以保持两个对象独立,而不是都绑定到相同对象.另外将一个对象传递给方法时也会产生别名问题.

7.算术操作符,包含+-/*和取模%.整数除法会直接去掉结果的小数位,而不是四舍五入地圆整结果.

8.Java也是用简化符号同时进行运算和赋值的操作,如要将x4并将结果赋回给x,可以这么写:x+=4;

9.一元减号用于转变数据的乹,而一元加号只是为了与一元减号相对应,但是它唯一的作用仅仅是将较小类型的操作数提升为int.

10.自动递增和递减.递减操作符是"--"意为"减少一个单位",递增操作是"++",意味增加一个单位,假设a为一个int,则表达式++a就等价于(a=a+1).递增和递减操作不仅改变了变量,并且以变量的值作为生成的结果.

11递增和递减有两种使用方式,"前缀式""后缀式"对于前缀递增或者递减,会先执行运算,再生成值.而对于后缀递增和后缀递减,会先生成值,再执行运算.

12.关系操作符生成的是一个boolean,只有truefalse.如果测试对象的等价性,直接==!=比较的是引用地址.而如果要比较两个对象内容实际内容是否相同,必须使用所有对象都适用的特殊方法equals()方法.如果直接比较对象而非内容,则需要覆盖equals(),但无论是否覆盖这个方法不适用于基本类型,基本类型直接==!=即可.

13.逻辑操作符与或非能根据参数的逻辑关系,生成一个布尔值.当使用逻辑操作符时,我们会遇到一种短路现象,即一旦遇到能够明确无误地确定整个布尔式的值,就不再计算表达式余下部分.

14.直接常量后面的后缀字符表示了它的类型,不论大小写,一般建议大写,若为L则为long,若为F则为float,若为D则为double.十六进制0x,转换二进制可以使用integerLong类的toBinaryString()来转换,如果将较小的类型传递给Integer.toBinaryString(),则该类型自动转换为int.

15.指数的话使用e,1.39e-43就代表1.39乘以10-43次方.

16.按位操作符用来操作整数基本数据类型中的单个"比特(bit)",即二进制位,按位操作符会对两个参数中对应的执行布尔代数运算,并最终生成一个结果.如果两个输入位都是1,按位""操作符&则生成输出位1,否则生成一个输出位0.但是如果两个输入只要有一个是1,则按位或操作符生成一个输出位1,只有在两个都为0的情况下才输出位0,如果输入位的某一个是1,但并不全是1,那么按位异或操作生成输出位1,按位非也称取反操作符,因为是一元操作符只对一个操作数操作,取反即可.

 

第四章: 控制执行流程

1.Java中流程控制语句关键词有if-else,while,do-while,for,return,break以及选择语句switch.另外java不支持goto

2.If(boolean-expression){Statement} 其中布尔表达式必须产生一个布尔结果.while.dowhilefor用来控制循环,有时称他们为迭代语句,语句会重复执行,直到起作用的布尔表达式得到""结果为止.

3.Whiledo-while唯一的区别就是do-while语句至少会执行一次,即便表达式第一次计算为false,while循环中,如果条件第一次就为false,那么其中的语句根本不会执行.

4.For循环的格式为for(initialization;boolean-expression;step){}初始化表达式,布尔表达式,或者步进运算都可以为空,每次跌带钱会测试布尔表达式,如果false就执行for后面的语句.每次循环结束,执行一次步进.

5.逗号操作符,注意不是逗号分隔符,逗号用作分隔符时用来分隔函数的不同参数,java中唯一用到逗号操作符的地方就是循环表达式的控制表达式,在控制表达式的初始化和步进控制的部分,可以使用一系列逗号分隔语句,而且那些语句会独立执行.但是他们必须具有相同的类型.

6.Foreach,JavaSe5引入了一种更加简洁的for语法用于数组和容器,foreach语法,表示不必创建int变量去对由访问项构成的序列进行计数.foreach将自动产生每一项.

7.任何返回一个数组的方法都可以使用foreach,例如string类有一个方法是toCharArray()它返回一个char数组,因此可以很简单的迭代所有字符.foreach另外还可以用于任何Iterable对象.

8.在Java中有多个关键词表示无条件分支,这些关键词包括return,breakcontinue.其中return关键词有两方面的用途,一方面指定一个方法返回什么值(假设它没有void返回值),另一方面它会导致当前的方法退出,并返回那个值.

9.在任何迭代语句的主体部分,都可以用breakcontinue语句控制循环的流程.break用于强行退出,continue则停止执行当前的迭代,然后退回循环起始处,开始下一次迭代.

10.Swtich有时被划归为一种选择语句,根据整数表达式的值,swtich语句可以从一系列代码中选出一段执行.

 

 

 

 

Java编程思想学习笔记

标签:

原文地址:http://www.cnblogs.com/miosec/p/4183307.html

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