《Java SE 6.0 编程指南》学习笔记

来源:互联网 发布:欧洲历史书籍 知乎 编辑:程序博客网 时间:2024/06/05 05:26

   前几个星期从学校图书馆借来《Java SE 6.0编程指南》由吴亚峰和纪超老师编写,讲解详细,写得很好。书很厚,但觉得这么一股脑地看下去也不是办法,于是把其中目前我不甚了解或者容易忽略的知识点记录了下来。3天前开始看,认认真真地看了100多页,现把3天的东西都粘贴一下吧,希望以后能坚持下来,争取每天或几天一更。

   2011-05-12
1、double的精度是float的两倍(精度指小数点后的位数)。
2、JavaSE5之前,浮点型只能用十进制表示,之后可以用十六进制表示。如0.125=0X1.0p-3(“p”是power,指数,非“e”)。
3、boolean型不能用0或1表示,即只能用true或者false。
4、比int级别低的数据类型(byte和short)参加运算,都要先转化为int型再运算;比int高的则照旧。即两个数值型数据进行运算时,结果至少是int。取负运算是其特例:
                                     byte a=-2;
                                     byte b=-a;
编译报错,原因是取负时,-a会提升为int型。改为byte=(byte)-a;另外,位运算也有此规律,而自增或自减没有此规律。
5、可用""+i将数值型数据转化为字符串。
6、关于求余运算符(%):①忽略正负,即如15%-4、-15%4、-15%-4两两相等;②浮点数也可求余
7、自增和自减分前缀和后缀。自增或自减在单独表达式中无甚差别;在表达式中时,前缀先计算自增(自减),再计算表达式。后缀先计算表达式,再计算前缀(后缀)。
8、==和!=特殊情况下可用于判断是否为正负无穷(常量分别是:Double.POSITIVE_INFINITY和Double.NEGATIVE_INFINITY),如12.0/0==Double.POSITIVE_INFINITY,返回True。但不能判断由12.0%0=NaN所产生的“NaN”(意为不知道)。Java规定:“结果”==Double.NaN返回false;“结果”!=Double.NaN返回true(这里假设“结果”为NaN,如果“结果”不是NaN,返回值与前述一致)。
9、数值与正无穷、负无穷是有意义的(正无穷比任何数都大,负无穷比任何数都小);数值与NaN比较无意义,Java规定,任何数值与之比较返回均为false。
10、与运算符分“&&”和“&”,前者如遇到“&&”的前半部分为false时,后半部分则不会执行,立即返回false;而“&”总是执行前后两部分。&&效率比&高。或运算符也分“||”和“|”,理同与运算。
11、三元运算符。形式()?1:2中,
①如果表达式1和2的数据类型如果不同,要求其能相互转化。如1为boolean型、2为int型,则编译出错。
②返回值类型与1、2的关系,遵循如下规则:(1)不同型的数值型数据类型,尽量窄化,不能的返回高级别;(2)变量不能窄化,返回二者中最高级别类型;以上的规则目的是使返回值尽量窄。

2011-05-13
1、赋值语句也是一个表达式,有返回值:a=b,返回b。借此可从根本上解析诸多现象。
2、位运算:移动位数个位,结果为0。如int i=88>>32;long=67>>64;则i=j=0。
3、else在没有花括号限制情况下,总是与离其最近的if配对。
4、switch的根本执行流程为:各case值与判断表达式配对,配对情况分两种:
①有匹配的case值,则从此开始执行,直至遇到break;
②无匹配的case值,则从default开始执行,直至遇到break;
5、for(int i=0;...;...)中,i的作用域为循环体。即循环体外可再次声明i,所以在同一个类中同时使用多个for语句而不需要考虑声明语句的重复问题。
6、编程中的反面思考。比如要打印1到100中不能被3、5整除却能被7整除的数。正面思考虽然可以,但编出的代码很复杂,从反面思考可以写成:   
 程序简单明了,提高了可读性。也即,配合循环语句和continue可剔除集合中满足某条件的成员。
7、String是系统定义的一个类,非基本数据类型。此情况与数组类似。
8、null表示引用没有指向任何对象。如代码:Sting []s=new String[1];int []n=new int[1];打印s[0]和n[0],分别是null和0。
9、main方法中,“String []args”表示方法的入口参数,是一个字符串数组,起元素是执行程序是输入的命令行参数,有几个参数args.length就等于几。“args”是数组名,可任意更换。
10、方法参数个数不定,Java SE5.0后,可声明一种参数个数变化的方法,举个例子:
                                       public static void Name(int...entrys){}
等效于5.0以前的
                                       public static void Name(int [] entrys){}
调用时,可以Name(2,3,6);也可Name(5,6,9,7,4);等效于将2,3,6或5,6,9,7,4赋给entrys[],再执行以前的方法。这样就方便点了。使用可变长参数时,遵循:①一个方法只能有一个可变长的形参;②若方法的参数不止一个,可变长参数需为最后一个。如方法methodName(int x,String y,int...entrys),不能将最后的int...entry提前。

2011-05-14
1、成员变量自动赋初始值,局部变量不能。
2、成员变量与局部变量同名时,系统将访问局部变量。
3、使用多个import语句不影响程序的运行效率,因为import只在编译的时候有作用。
4、关于引入类的使用,考察如下两个例子:
①某包A、B同时含有类C(假设A、B都在java包中),现需分别引入包A、B中的多个类,以及包A中的类C而不引入包B中的类C。若写成:
                  import java.A.*;
                  import java.B.*;
则系统会报错,原因是使用类C时,系统不知应匹配A中的C还是B中的C。正确写法应为:
                  import java.A.*;
                  import java.A.C;
                  import java.B.*;
②前提与①相同,不同的是要同时引用A包的C和B包中C。若写成:
                  import java.A.*;
                  import java.A.C;
                  import java.B.*;
                  import java.B.C;
则系统会报错,因为特定名的类只能引用一次,解决办法不能从引用下手,要从程序下手:
                  import java.A.*;
                  import java.B.*;
                  public class Test{
                       java.A.C c1=new java.A.C();
                       java.B.C c2=new java.B.C();
                       //...
                  }
除了以上,引用的时候要了解:
(1)系统会优先匹配import语句中明确给出类名的类;
(2)不能具体地引用同名类,如例子② 的错误写法。
5、Java SE 5.0开始,import语句可引入静态方法和静态成员变量。形式为:
import static <包名>.<类名>.*;//指引用某类下的所有静态方法和成员变量
import static <包名>.<类名>.<具体方法或成员变量名>;//指引用特定的方法和成员变量
引用之后就可以在程序中直接使用已引用的方法或成员变量了。实际的编程中很少使用静态引入,因为这会降低程序可读性。如import static java.lang.System.*,后程序可直接使用out.println()打印字符串,由此就会降低可读性。但此并非一无是处,某些时候使用静态引用后,更符合自然地阅读习惯。如,import static java.lang.Math.*;之后可以直接写PI来表示圆周率,sqrt()来计算平方根,比Math.PI、Math.sqrt()更方便更自然。
6、类与源代码的搭配:
(1)一个源代码文件中可有多个类,但只能有一个公共类,类出现的次序不规定;
(2)文件名必须与公共类相同,无公共类时文件名可为任意合法名;
(3)导入语和包语句作用于文件的所有类。
7、成员访问控制中的默认类型(即不加任何限制修饰符),该成员只在同一个包中是可见的。即,同一包中,相当于public型,不知同一包中是private型。
8、protected型,与默认差不多,不同的是位于包外的类只能通过继承来访问该成员。















原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 公办教师去私立学校档案怎么办 辞职后档案不给怎么办 档案不小心拆了怎么办 退休职工档案年龄有涂改怎么办 养老金原始档案找不到怎么办退休 寄辞职信不接收怎么办 公司不给办离职怎么办 离职手续表填写错误怎么办 退货少退了个配件怎么办 小米8拖影严重怎么办 被兼职中介骗了怎么办 被兼职中介坑了怎么办 人在工厂宿舍死了怎么办 事业单位在编人员开除后社保怎么办 因违规无法进群怎么办 微信号违规进不了群怎么办 工作跨省调动社保怎么办 工作中看到别人违反规定应该怎么办 深户调令过期了怎么办 特岗教师满三年怎么办 特岗教师想辞职怎么办 入职一周想离职怎么办 原单位买断工龄后档案怎么办 北京国企辞职后户口怎么办 工作档案弄丢了怎么办 沈阳大集体职工工龄漏算怎么办 集体职工工龄漏算怎么办 cad打开字体是问号怎么办 cad中字体显示问号怎么办 代扣代缴个税申报逾期申报怎么办 个税申报错了怎么办 个税公司报错了怎么办 个税为0没申报怎么办 建筑老项目无法取得发票怎么办 客户说选的地砖不好看怎么办 外国客户打电话来不敢接怎么办 电话营销遇到不礼貌的客户怎么办 去领导家被拒绝怎么办 共享电车没电了怎么办 享骑电单车没电怎么办 小车前轮刹车卡钳卡死了怎么办