刚好廖雪峰的Java教程还在更新当中,知乎上看了一些提问,大家都推荐这本书。先看看如何。下载个第十版看看,(搜索的时候尽量把书名号加上并且加上精确的文字,不然搜索出来的会是第七版什么的)
在强化基础的角度来看,大家比较推荐看1-6章节,我的计划是看1-6 或者1-9章节, 剩下的不是很必要。
第一章 Java程序设计概述
介绍了Java程序设计平台(也就是语言本身的情况)、java的关键术语(简单性,面向对象,分布式,健壮性,安全性,体系结构中立,可移植性、解释性、高性能、多线程、动态性)
多线程:摩尔定律行将完结。我们不再追求更快的处理器,而是着眼于获得更多的处理器
动态性:Java 与 C 或 C++ 相比更加具有动态性。它能够适应不断发展的环境
Java 在服务器端编程和跨平台客户端应用领域则很有优势
很多 Java 程序都在 Web 服务器上运行并生成用于网页的代码
还介绍了Java applet与Internet,Java的发展历史,和一些对Java常见的误解的解答
这章大概就这样都是抽象的内容,花个10分钟左右看看就行了,不然看的太认真消耗注意力不太好。
第二章 Java程序设计环境
介绍下载安装JDK、安装库文件(这个比较老了我之前装新的版本已经是没有这个东西了),下载文档(其实打开下载页就是java的API文档),用命令行运行了编译后运行一个简单地输出小案例,使用集成开发环境(因为之前在廖的教程看过做过就不看了),然后是运行一个小的图片查看器引用程序(这个程序感觉还行图形化应用程序,但是好像之前大家都不推荐看swing了,是什么原因?) , 最后介绍applet(作者在书中说如果对此不感兴趣可以直接跳过,也没必要看了因为它是“过去的记忆”)
虽然说没必要,但是好奇也稍微看了一下,没跟着做(估计有点难度费时间),大概是说,浏览器打开一个内部写有applet标签的HTML的文件,如果浏览器支持applet比如Firefox,它就会自动打开JAVA的appletViewer查看器来渲染applet标签内的内容(和javascript的script差不多),但要复杂得多,需要什么证书,然后为JAR文件签名,将java配置为信任本地文件系统的applet,(我也没搞清楚这波操作的意义),还是跳过不看好点。
第三章 java的基本程序设计结构
数据类型:整型的范围与运行 Java 代码的机器无关。这就解决了软件从一个平台移植到
另一个平台,或者在同一个平台中的不同操作系统之间进行移植给程序员带来的诸多问题。
注意, Java 没有任何无符号(unsigned) 形式的 int、 long、short 或 byte 类型。
浮点型:绝大部分应用程序都采用 double 类型。float 类型的数值有一个后缀 F 或 f (例如,3.14F。) 没有后缀 F 的浮点数值(如 3.14 ) 默 认为 double 类型。当然,也可以在浮点数值后面添加后缀 D 或 d (例如,3.14D)。
注意: 浮点数值不适用于无法接受舍入误差的金融计算中,例如,命令 System.out.println
( 2.0-1.1 ) 将打印出 0.8999999999999999, 而不是人们想象的 0.9
char 类型:char 类型的字面量值要用单引号括起来。例如:W 是编码值为 65 所对应的字符常量。 它与 "A" 不同,"A" 是包含一个字符 A 的字符串, char 类型的值可以表示为十六进制值,其范围从 到 。
我们强烈建议不要在程序中使用 char 类型,除非确实需要处理 UTF-16 代码单元。最好
将字符串作为抽象数据类型处理
boolean (布尔)类型有两个值:false 和 true
变量
可以在一行中声明多个变量: int i , j; // both are integers
不过,不提倡使用这种风格。逐一声明每一个变量可以提高程序的可读性
常量
在 Java 中, 利用关键字 final 指示常量。例如:
public class Constants { public static void main(String[] args) { final double CM_PER_INCH = 2.54; double paperWidth = 8.5; double paperHeight = 11; System,out.println("Paper size in centimeters: " + paperWidth * CM PER INCH + " by " + paperHeight * CM.PER.INCH); } }
关键字 final 表示这个变量只能被赋值一次。一旦被赋值之后,就不能够再更改了。
经常希望某个常量可以在一个类中的多个方法中使用,通常将这些常量称为
类常量。可以使用关键字 static final 设置一个类常量
public cl ass Constants〗 { public static final double CM_PER_INCH = 2.54; public static void main(Stringn args) { double paperWidth = 8.5; double paperHeight = 11; System.out.println("Paper size in centimeters: " + paperWidth * CMJERJNCH + by " + paperHeight * CM_PER_INCH) ; } }
运 算 符
在 Java 中,使用算术运算符 +、-、 *、/ 表示加、减、 乘、除运算。
整数被 0 除将会产生一个异常, 而浮点数被 0 除将会得到无穷大或 NaN 结果
数学函数与常量
在 Math类中,包含了各种各样的数学函数。在 Java中,没有幂运算, 因此需要借助于 Math 类的 pow 方法。语句: double y = Math.pow(x, a);
不必在数学方法名和常量名前添加前缀“ Math”, 只要在源文件的顶部加上下面
这行代码就可以了。
import static java.1ang.Math.*;
例如:
System.out.println("The square root of PI is " + sqrt(PI));
数值类型之间的转换
例如,123 456 789 是一个大整数, 它所包含的位数比 float 类型所能够表达的位数多。 当将这个整型数值转换为 float 类型时, 将会得到同样大小的结果,但却失去了一定的精度。
强制类型转换
例如:
double x * 9.997;
int nx = (int) x;
这样, 变量 nx 的值为 9。强制类型转换通过截断小数部分将浮点值转换为整型。
结合赋值和运算符
可以在赋值中使用二元运算符,这是一种很方便的简写形式。例如,
X += 4; 等价于:x = x + 4;
自增与自减运算符
建议不要在表达式中使用 ++, 因为这样的代码很容易让人闲惑,而且会带来烦人的 bug。
关系和 boolean 运算符
Java 包含丰富的关系运算符:要检测相等性,可以使用两个等号 ==。例如, 3 == 7 的值为 false。
位运算符
如果 n 是一个整数变量,而且用二进制表示的 n 从右边数第 4 位为 1,则
int fourthBitFromRight = (n & OblOOO) / OblOOO; 会返回 1,否则返回 0。利用 & 并结合使用适当的 2 的幂, 可以把其他位掩掉, 而只保留其 中的某一位。
括号和运算符的有限级别
枚举类型
有时候,变量的取值只在一个有限的集合内。
enum Size{SMALL,MEDIUM,LARGE,EXTRA_LARGE}Size s = Size.MEDIUM;
Size 类型的变量只能存储这个类型声明中给定的某个枚举值,或者 null 值,null 表示这
个变量没有设置任何值。