Java核心技术 ( 卷 I ) 读书笔记(第一~三章)
2017-09-10 18:22
197 查看
因为开学要学Java,只有六周,Python是暑假自己学的,Java结束后继续吧,而且我同时再看程序设计竞赛,好看,但计科的男人不能哭
Java核心技术 ( 卷 I ) 读书笔记(第一~三章)
注:先修C++,只标记Java与C++不同或特别重要的语法。第一章 Java程序设计概述
第二章 Java程序设计环境
JDK:Java Development KitJRE:Java Runtime Environment
SE:Standard Edition
EE:Enterprise Edition
ME:Micro Edition
CamelCase:驼峰命名法。如果名字由多个单词组成,每一个单词的第一个字母都应该大写。
源代码的文件名必须与公共类的名字相同,并用 .java 作为拓展名。
注释:Java中前两种注释和C++一样,第三种注释可以自动地生成文档,这种注释使用 \** 开始,以 */ 结束。
/**
* This is the first sample program in Core Java Chapter 3
* @version 1.01 1997-03-22
* @author Gary Cornell
*/
数据类型: 8中基本类型( primitive type), 没有无符号类型。
int : 4字节
short:2字节
long:8字节。长整型数值有一个后缀L。
byte:1字节
float:4字节。有效位数6~7位。有后缀F。
double:8字节。有效位数15位。
boolean:1字节。整数值和布尔值之间不可以进行互相转换。
char:1字节
从Java 7开始,加上前缀 0b 就可以写二进制数,如0b1001就是9。从Java 7开始还可以为数字字面量加下划线,增强可读性,如1000_1101_1000。在JDK 5.0中可以使用十六进制表示浮点数值,如0x1.0p-3, 其中 p 表示指数。
表示溢出和出错情况的三个特殊浮点数值:正无穷大,负无穷大,NaN(不是一个数字)。不能这样检测一歌特定值是否等于Double.NaN, 但可以使用 Double.isNaN(x) 判断x是不是一个数字。
转义序列符 \u 表示Unicode代码单元的编码,除了可以出现在字符常量或字符串内,还可以出现在之外,而其他转移序列符不可以。
public static void main(String\u005B\u005D args)
代码点(Code point):是指与一个编码表中的某个字符对应的代码值。Unicode 中代码点可分为17个代码级别(Code plane),第一个代码级别称为基本的多语言级别(basic multilingual plane), 包括经典的Unicode代码,其余的16个附加级别,包括一些辅助字符(supplement character)。
常量:Java中,使用 final 指示常量。习惯上常量名使用全大写。
在main方法中,所有指令都将使用严格的浮点计算,如果将一个类或方法标记为 strictfp, 那这个类中的所有方法或这个方法都将使用严格的浮点计算。
public static strictfp void main(String[] argd)
位运算:使用2的幂次方的 & 运算可以将其他位屏蔽掉。>>> 将使用0填充高位,>> 运算符使用符号位填充高位,没有<<<运算符。对移位运算符右侧的参数需要进行 膜32 的运算(左边是long,这时模64),例如,1<<35 和 1<<3的结果是一样的。
Math.round(x) 方法可以对浮点数进行舍入运算,得到最接近的整数(long)。
子串:String类的 substring( int beginIndex, int endIndex )返回索引从 beginIndex 到 endIndex-1 的子串。
拼接:当将一个字符串和一个非字符串的数值进行拼接时,后者就会转换成字符串。
equals(Object anObject):检测两个字符串是否相等,是返回True;否则返回false。可以使字符串变量或常量。equalsIgnoreCase()不区分大小写。== 云端副不能用来判断两个字符串是否相等,只能确定两个字符串是否放置在同一个位置。
空串:”“, 是一个Java对象,有自己的串长度 (0) 和内容 (空)。String还可以存放特殊值 null,目前没有雨任何对象关联。
if(str != null && str != "") #要先检查不为null
String.length() 方法返回采用UTF-15编码表示的给定字符串所需要的代码单元的数量。String.charAt(n) 将返回位置n的代码单元。
构建字符串:使用 StringBuilder类——字符串构造器。当每次需要添加一部分内容时,就调用 append() 方法,在需要构建字符串就调用 toString()方法。
StringBuilder builder = new StringBuilder();
builder.append(ch);
String completedString = Builder.toString();
输入输出:要通过 console控制台进行输入,首先要构建一个 Scanner 对象,并与标准输入流 (System.in) 关联。
Scanner in = new Scanner(System.in);
nextLine() 方法将输入一行,因为在输入行中可能有空白格们要想读取一个单词(以空白为分隔符),就要使用 next() 方法。
String firstName = in.next();
可以使用静态的 String.format()方法创建一个格式化的字符串。
String message = String.format("Hello, %s!", name);
printf()中日期和时间的格式化选项,以 t 开始,以日期与时间转换符的任意字母结尾。同时,可使用一个格式化的字符串支出要被格式化的参数索引(从1开始),索引必须紧跟在 % 后,并以 $ 结束。同样可以使用 < 指示前面格式说明中的参数将被再次使用。
printf("%tc", new Date()); #c表示完整的年月日
printf("%1$tB, %2$te, %3$tY", new Date()) #这行代码有误,仅作为索引的介绍。
文件的输入与输出:要相对文件记性读取,就要用一个 File 对象构造一个 Scanner 对象
Scanner in = new Scanner(Paths.get("myFile.txt"));
要写入文件,就要构造一个 PrintWriter 对象,只需要提供文件名。如果文件不存在,则创建该文件。
PrintWriter out = new Printwriter("myFile.txt");
不能在嵌套的两个块(block)中声明同名的变量。
Java提供了一种带标签的 break 语句,用于跳出多重循环,标签必须放在希望跳出的多层循环之前,并且紧跟一个冒号。智能跳出语句块而不能跳进语句块。
read_data;
while(...){
for(...){
if(...)
break read_data;
}
}
大数值:BigInteger 和 BigDecimal 两个类处理包含任意长度数字序列的数值。使用静态的 valueOf()方法可以将普通的数值转换成大数值。
BigInteger a = BigInteger.valueOf(100);
不能使用算术运算符,而要使用大数类的add(), subtract(), multiply(), divide(), mod() 方法。其中使用 BigDecimal 类的 divide() 方法时必须给出四舍五入的方式(rounding mode)。
数组:声明数组, 指出数组类型(数据元素类型紧跟[])和数组变量的名字
int[] a;
使用 new 运算符创建一个数组, 数组长度不要求是常量。允许数组长度为 0,长度为0和 null 是不同的。
int[] a = new int[100];
使用列表初始化数组的使用不需要调用 new
int[] a = {1, 2, 3, 4};
甚至可以初始化匿名数组, 在不创建新变量的情况下重新初始化一个数组。
a = new int[] {1, 2, 3, 4};
Java允许 数组拷贝, 两个变量将引用同一个数组。
int[] b = a;
for each 循环:for(elememt : collection) statement
可以一次处理数组中的每个元素而不必为制定下标值担心。collection 这一集合必须是一个数组,或者一个实现了 Iterable 接口的类对象。
main()函数接受一个字符串数组,也就是命令行参数。
Math.random() 方法将返回一个从0到1,左开右闭的随机浮点数,用n乘以这个数就可以到的0 ~ n-1 之间的随机数。
相关文章推荐
- 【笔记】Java核心技术 卷1 基础知识 第一章 读书笔记
- Java多线程编程核心技术读书笔记(2)-并发控制
- 读书笔记——JAVA核心技术-卷II
- Java核心技术读书笔记
- 小博老师解析JavaWeb核心技术 ——AJAX第一弹
- Java核心技术(卷I)读书笔记 第七~九章
- [读书笔记]java核心技术
- Java核心技术-读书笔记 概览
- 《Java 核心技术卷一》读书笔记
- Java核心技术读书笔记一接口和内部类
- java内部类总结 Java核心技术读书笔记
- IO流 Java核心技术读书笔记
- Java多线程编程核心技术读书笔记(1)-Thread基础
- java 泛型 java核心技术 读书笔记
- java 网络 socket编程 Java核心技术读书笔记
- 读书笔记——Java多线程编程核心技术
- Java多线程编程核心技术读书笔记(3)-线程通信
- XML Java核心技术 读书笔记
- Java核心技术 卷1 读书笔记 (3 Java基本程序设计结构)
- Get方法中不要返回可变对象的引用 【Java2核心技术第一卷 读书笔记】