接触到这本书完全是机缘巧合。在当当上买了一些关于java的书,有个活动,再选一本价格大于35RMB的书就可以抵扣50元。所以又在促销的商品里面搜java的书,就看中这一本了,既符合价格条件,又是关于java的一些基础细节,挺合适,就给收入囊中了。
今天简单看了一遍,记录下笔记。
第一部分 语言
-
命名规则
- 缩略词 : Most Recent Common Ancestor-> Mrca ; public class MrcaCalculator{...}
- 类名(一般是名词) : 驼峰命名法,每个单词的第一个字母大写 public class AirDensityCalculator{...}
- 常量名 : 全是大写字母,多个单词之间用下划线分割 private static final double KELVIN = 273.16; private static final double DRY_AIR_GAS=287.058
- 枚举名称(enum) :名称遵循类名规则驼峰,对象全大写 public enum DoMyWork{MONDAY,TUESDAY_TODAY,}
- 方法名(一般是动词) :开始小写字符,后面大写 public void toString() ; public double getDryAirDensity()
- 接口名(一般是形容词) : 与类名一致,但一般代表功能,以“able”或"ible"结尾,否则应该是名词 public interface Relatable{...}
- 包名 :小写字母组成,可使用下划线 package com.gliesian.jairdensity;
- 模块名(反向的互联网域名) :与包名的规则一样 module com.gliesian.utils{ }
临时变量和循环变量
单字符 | 类型 |
b | Byte |
c | Character |
d | Double |
e | Exception |
f | Float |
i,j,k | Integer |
l | Long |
o | Object |
s | String |
-
词法元素
ASCII码你需要记住的是:
48~57: 0~9 65~90:A~Z 97~122:a~z a-A=32
多行注释:
/*
*值得注意的是多行注释
*每行前面都有符号*
*现在开始要记得
*确实更美观
*/
java关键字不能用作标识符;true,false和null字面量并不是关键字,而是预留的字面量。
int intValue2 = 1_000_000 //就表示100000
public static final int INT_VALUE = -200;
int intValue3 = 0X65 //十六机制的数字100
int intValue4 = 0144 //八进制的数字100
char msgValue1 = 0b01001111 //二进制字符 0
char msgValue1 = 0B01001011 //二进制字符 K
long longValue = 100L(100l);
float floatValue = 9.15f(9.15F)
转义序列的字符和字符串字面量
名称 | 序列 |
退格 | \b |
水平制表键 | \t |
换行 | \n |
换页 | \f |
回车 | \r |
双引号 | \" |
单引号 | \' |
-
基本类型
类型 | 存储 | 范围 | 引用类型 |
boolean | 1比特 | 不适用 | Boolean |
char | 2字节 | \u0000到\uFFFF | Character |
byte | 1字节 | -128到127 | Byte |
short | 2字节 | -32768到32767 | Short |
int | 4字节 | -2147483648到2147483647 | Integer |
long | 8字节 | -2^64“ 到”2^64 -1 | Long |
float | 4字节 | 1.4e-45到3.4e+38 | Float |
double | 8字节 | 5e-324到1.8e+308 | Double |
自动装箱和拆箱
集合一般用的是包装的类,因为集合存储的是引用,不是原始值
装箱:Integer atDnaChromosomeSet = Integer.valueOf(22);
拆箱:int a = atDnaChromosomeSet.intValue();
-
引用类型
!=和==能够用来比较两个对象的内存位置,如果内存位置相同,就认为是相同的,不会比较对象的内容(可以用来比较枚举)
比较内容重写equals()方法,hashCode()方法
-
面向对象编程
非final,private或static的方法才能进行覆盖
protected方法可以覆盖没有访问修饰符的方法
super用来访问超类中那些被子类覆盖的方法
子类继承抽象类,子类必须重写该抽象类的所有抽象方法,接口是特殊的抽象类,需要重写所有方法
静态数据成员 static int count 常用来计数 final static int a = 520 初次设置后不再允许修改
synchronized语句 用来限制只能由一个线程能够对代码区(如整个方法)进行访问。
try{
...
}catch(...){
...
}finally{
..
}