今天看完了第二章和第三章,感觉不错~ 把笔记贴在下面~
<!-- /* Font Definitions */ @font-face {font-family:宋体; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-alt:SimSun; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} @font-face {font-family:"Cambria Math"; panose-1:2 4 5 3 5 4 6 3 2 4; mso-font-charset:1; mso-generic-font-family:roman; mso-font-format:other; mso-font-pitch:variable; mso-font-signature:0 0 0 0 0 0;} @font-face {font-family:Calibri; panose-1:2 15 5 2 2 2 4 3 2 4; mso-font-charset:0; mso-generic-font-family:swiss; mso-font-pitch:variable; mso-font-signature:-1610611985 1073750139 0 0 159 0;} @font-face {font-family:"/@宋体"; panose-1:2 1 6 0 3 1 1 1 1 1; mso-font-charset:134; mso-generic-font-family:auto; mso-font-pitch:variable; mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-unhide:no; mso-style-qformat:yes; mso-style-parent:""; margin:0cm; margin-bottom:.0001pt; text-align:justify; text-justify:inter-ideograph; mso-pagination:none; font-size:10.5pt; mso-bidi-font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:宋体; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi; mso-font-kerning:1.0pt;} .MsoChpDefault {mso-style-type:export-only; mso-default-props:yes; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} /* Page Definitions */ @page {mso-page-border-surround-header:no; mso-page-border-surround-footer:no;} @page Section1 {size:595.3pt 841.9pt; margin:72.0pt 90.0pt 72.0pt 90.0pt; mso-header-margin:42.55pt; mso-footer-margin:49.6pt; mso-paper-source:0; layout-grid:15.6pt;} div.Section1 {page:Section1;} -->
加油!~~
float 的精度到底是多少? 书上说的, 3.40E+38F 怎么可能 10 的 38 次方??比 int 都大?
Java 里有八个基本变量类型:四个整数类型 (byte—1, short—2, int—4, long—8 ) ,两个浮点类型 (float—4, double—8 ) ,一个字符类型 char—2 , 一个布尔类型 boolean— 一个 bit 。另外,有一个 String 类型,是一个 class 。
java 里的 String 类的修改不是直接将其中一些字符串修改了而已,而是将其中桥接到另外的去了。如 String test = “Hello”; 如果将 ’o’ 改成 ’x’, 在 C++ 或者 C 中就直接将指针对准它,然后改为 x 就好了,可是在 java 里是直接将前四个字符提取出来后面接上另一个字符 ’x’ 。这种做法在 java 里被认为是共享的好处,它被认为大于重新定义串而带来的麻烦。“ java 设计者认为共享带来的高效率超过了通过字串提取和拼接进行字符串编辑导致的低效率”。—— String 常量池问题 。
java 没有重载 。所以很多预定义的类型不能用什么 +-*/ 之类的,这样其实很麻烦。我都觉得这样是不是太麻烦了…… java 为了避免一些简单的错误,将很多 C++ 里面很好的功能给阉割了。。。真不爽! 到底为什么一定不能重用呢 ?
java 没有指针运算,所以定义这样一个数组: int[] a = new int[100]; 之后,不能通过 a+1 来调用 a[1] !! for each 函数: for(int s : arrayA) {}
二维数组,在说 a.length 的时候说的是有多大的一维维度, a[].length 在说多大二维维度。要访问或者修改二维数组的每一个元素,不能直接用 for each 那个函数,而要用嵌套:
for(int[] r : a) for(int value : r) {}
java 的数组其实是不规则数组,所谓二维数组其实是数组的数组。可以单独存取某一行列,比如 :
int[] temp = a[i];
a[i] = a[i+1];
a[i+1] = temp;
这种数组的申明定义方式如下:
int[][] okkey = new int[10][];
for(int i=0; i<10; i++) okkey[i] = new int[i+1];
对象。 所有 java 对象都存储在堆 中。——问题:什么是堆,与栈有何区别 ?
GregorianCalendar 中怎么有多个 set 函数? 这难道不是函数重载?
问题:那么构造函数是否也可以重载呢 ?
java 的类中,每一个函数前面都要加上 public 或者其他类别的符号,不能省略。
构造器只能伴随着 new 来执行,不能在已经申明后的变量中调用。
* 构造器与类同名
* 每个类可以有一个以上的构造器
* 构造器可以有 0 、 1 、 2 ……的参数
* 构造器没有返回值
* 构造器总是伴随着 new 操作一起调用。
java 中,所有的类的方法都必须在类的内部定义。但不代表它们就是内联方法。是否将方法设置为内联方法是 java 虚拟机的任务。即时编译器会监视调用那些简介、经常被调用、没有被重载以及可优化的方法。
内联方法—— inline ?
警告 :不要编写返回引用可变对象的访问器方法。——第六版 P107.
java 的关键在这里啦!—— **.java 中带有 public 访问修饰符的类一定要与文件名相匹配。一个源文件中只能有一个共有类,但可以有无限个非公有类。