Java核心技术 ( 卷 I ) 读书笔记(第一~三章)
来源:互联网 发布:python中的不可变类型 编辑:程序博客网 时间:2024/05/18 21:43
因为开学要学Java,只有六周,Python是暑假自己学的,Java结束后继续吧,而且我同时再看程序设计竞赛,好看,但计科的男人不能哭
Java核心技术 ( 卷 I ) 读书笔记(第一~三章)
注:先修C++,只标记Java与C++不同或特别重要的语法。
第一章 Java程序设计概述
第二章 Java程序设计环境
- JDK:Java Development Kit
- JRE: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];
使用列表初始化数组的使用不需要调用 newint[] 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 之间的随机数。
阅读全文
0 0
- Java核心技术 ( 卷 I ) 读书笔记(第一~三章)
- Java核心技术(卷I)读书笔记 第四~六章
- Java核心技术(卷I)读书笔记 第七~九章
- 读书笔记-《Java核心技术卷I-基础知识》
- java核心技术 第一卷
- Java核心技术 卷I 手记(一)
- Java核心技术 卷I 手记(二)
- 《java核心技术》(原书第七版)读书笔记之第一,二,三章
- 《Java 核心技术卷一》读书笔记
- java 核心技术卷1读书笔记
- java核心技术卷一 读书笔记
- Java核心技术卷I知识点
- Java异常(Java核心技术卷一读书笔记)
- 《Java核心技术 卷I》笔记 第二章 Java程序设计环境
- 《Java 2核心技术卷一》(读书笔记一)
- 《Java核心技术(卷一)》读书笔记——接口
- java核心技术卷I-第三章学习笔记
- java核心技术卷I-第四章学习笔记
- 一、操作系统基础知识
- linux 虚拟机模拟配置网络路由环境-简版
- [CSU 2005 Nearest Maintenance Point Submit Page] Dijkstra
- mysql server5.7 找不到my.ini,只有my-default.ini
- HDU
- Java核心技术 ( 卷 I ) 读书笔记(第一~三章)
- qt编译加速
- 2017上半年技术文章集合—184篇文章分类汇总
- HDU 6195 cable cable cable (找规律) 2017ACM沈阳赛区网络赛
- 抽奖点名
- [新手编程训练项目]004——C语言文件夹文件信息输出001:io库中_finddata_t结构体的使用
- POJ 1477
- 模电学习八大概念,工程师必看
- 作用域之LHS与RHS查询