java基础01

以下内容为传智博客的《java基础入门》一书的读书笔记

第一章

  • 命令行下使用java命令运行时只需输入类名,无需输入class

第二章

  • 标识符:由字母数字下划线或美元符号组成,且不能由数字开头
  • 命名规范:
  1. 包名一律小写
  2. 类、接口每个单词首字母大写(大驼峰命名法)
  3. 常亮以final修饰,且所有字母大写
  4. 变量或方法首单词首字母小写,其余单词首字母大写(小驼峰命名法)
  • 进制标识
  1. 二进制使用0b或0B开头
  2. 八进制使用0开头
  3. 十六进制使用0x或0X开头
  • 数据类型
  1. 八种基本数据类型,传递参数时为值传递;
  2. 引用数据类型:类,接口,数组,枚举,注解等,传递参数时为引用传递
  • 八种基本数据类型
    整型数据(默认值0)
  1. byte 1个字节,8位0/1
  2. short 2个字节
  3. int 4个字节(其他整型数据进行运算时会先转换为int后在进行计算)
  4. long 8个字节(赋值时数字后要加L,例子: long num = 2000L;)
    浮点数类型(默认值0)
  5. float 4个字节(小数默认类型为double,赋值是数字后要加f,例子: float num = 1.234f;)
  6. double 8个字节
    字符型(默认值‘\u0000’)
    char 2个字节
    布尔类型(默认值false)
    boolean false为0,true为非0
  • 全局变量未被初始化时,jvm会为其设置默认值;局部变量不会设置默认值,故需要手动初始化,否则报错;
  • +=符号运算时,原数据类型不会被jvm强转int或double而是保持原数据类型;
  • >>>无符号右移运算符
  • 方法重载:以参数列表为准,参数列表不同即为重载(顺序不同也视为重载)
  • 冒泡排序:不断比较数组中相邻两个元素大小,每轮将最大者置于此轮最后位置
    例子:
    排序前 9 8 3 5 2
    第一轮 8 3 5 2 9
    第二轮 3 5 2 8 9
    第三轮 3 2 5 8 9
    第四轮 2 3 5 8 9
  • 取模运算结果的符号取决于被模数,例子:(-5)%3=-2,5%(-3)=2;
  • &与&&区别:使用&运算时,无论左边结果是true或false,右边表达式都会运算;使用&&表达式当左边为false时,右边不再运算

第三章

  • 面向对象特点:封装、继承、多态
  • 全局变量,也叫成员变量,在整个类中有效
  • 构造方法要满足3个条件:
  1. 与类名相同
  2. 无返回值类型声明
  3. 不可以有返回值
    (注:一个类中如果定义有有参构造方法,则无参构造方法需要重新定义)
  • 类方法:由static修饰的方法,可以由类直接调用;实例方法:需对类实例化,利用对象调用
  • 单例模式:分为饿汉式与懒汉式
  1. 饿汉式:一但创建类立即构建实例

    1
    2
    3
    4
    5
    6
    7
    public class Singleton { 
    private static Singleton singleton = new Singleton();
    private Singleton(){}
    public static Singleton getInstance(){
    return singleton;
    }
    }
  2. 懒汉式:创建类后不立即构建实例,被调用时才构建实例

1
2
3
4
5
6
7
8
9
10
11
public class Singleton { 
private static Singleton singleton;
private Singleton(){}

public static synchronized Singleton getInstance(){
if(singleton==null){
singleton = new Singleton();
}
return singleton;
}
}
  • this调用构造方法,只能在构造方法中使用,不可以在成员方法中使用,且调用this的语句必须放在第一行