Java基础知识总结归纳

  • 0. 入门常识

    • 0.1 Java 特点

    • 0.2 Java 和 C++

    • 0.3 JRE 和 JDK

    • 0.4 Java 程序编译过程

  • 1. 数据类型

    • 1.1 基本数据类型

    • 1.2 引用类型

    • 1.3 封装类

    • 1.4 缓存池

  • 2. 字符串 String

    • 2.1 定义

    • 2.2 不可变性的优点

    • 2.3 String vs StringBuffer vs StringBuffer

    • 2.4 字符串常量池(String Pool)

    • 2.5 new String(“xxx”)

  • 3. 基础语法

    • 3.1 注释

    • 3.2 常见关键字

    • 3.3 标识符和关键字

    • 3.4 访问控制符

    • 3.5 static、final、this、super

    • 3.6 continue、break 和 return

    • 3.7 while 循环与 do 循环

    • 3.8 final、finally、finalize

  • 4. 运算符

    • 4.1 算术运算

    • 4.2 关系运算符

    • 4.3 位运算符

    • 4.4 逻辑运算符

    • 4.5 赋值运算符

    • 4.6 条件运算符(? :)

    • 4.7 instanceof

    • 4.8 equals() 和 ==

  • 5. 方法

    • 5.1 方法的类型

    • 5.2 重载和重写

    • 5.3 深/浅拷贝

    • 5.4 值传递

  • 6. 面向对象

    • 6.1 面向对象 vs 面向过程

    • 6.2 封装、继承、多态

    • 6.3 成员变量 vs 局部变量 vs 静态变量

    • 6.4 构造方法的特点

    • 6.5 抽象类 & 接口

    • 6.6 Object 类中常见方法

    • 6.7 hashCode & equals

    • 6.8 序列化与反序列化

0. 入门常识

0.1 Java 特点

  1. 简单易学

  2. 面向对象(封装、继承、多态)

  3. 平台独立

  4. 安全可靠

  5. 支持多线程

  6. 解释和编译共存

  7. 安全性

  8. 健壮性(Java 语言的强类型机制、异常处理、垃圾的自动收集等)

0.2 Java 和 C++

  • 相同点:两者均为 OOP 语言,均支持 OOP 的三大特性(封装、继承、多态);

  • 不同点

    • Java 不存在指针的概念,所以内存更加安全;

    • Java 类是单继承(但是接口可以多继承),C++ 的类是多继承;

    • Java 中有自动内存管理机制,但是 C++ 中需要开发者手动释放内存;

    • C/C++ 中,字符串和字符数组最后均有一个额外的 \0 标志来表示结束,但 Java 中不存在这一概念;

0.3 JRE 和 JDK

  • JRE(Java Runtime Environment),即 Java 运行时环境,是用来运行已经编译过的 Java 程序所需内容的集合(JVM、Java 类库、Java 命令等),不能用来开发新程序;

  • JDK(Java Development Kit),即 Java 开发工具包,是功能齐全的 Java SDK,包含 JRE 拥有的一切,还有编译器和其他工具,如果我们想要创建和编译新程序,就必须使用到它;

两者关系

0.4 Java 程序编译过程

我们编译的源代码(xxx.java)经 JDK 中的 javac 命令编译后,成为 JVM 能够理解的 Java 字节码(xxx.class),然后经由 JVM 加载,通过解释器 逐行解释执行,这就是为什么能经常听见说 Java 是一门编译和解释共存的语言

其中 JVM 是解释 Java 字节码(xxx.class) 的虚拟机,针对不同系统均有特定实现,方便一次编译,多次运行,即 Java 语言的平台独立性;

1. 数据类型

1.1 基本数据类型

数据类型 bit 字节 封装类 数据范围 默认值
byte 8 1 Byte  ~  0
short 16 2 Short  ~  0
char 16 2 Character \u0000 ~ \uffff( ~ ) u0000
int 32 4 Integer  ~  0
long 64 8 Long  ~  0L
float 32 4 Float  ~  0.0f
double 64 8 Double  ~  0.0D
boolean 不确定 不确定 Boolean true 或 false false

注意:

  1. boolean 一般用 1 bit 来存储,但是具体大小并未规定,JVM 在编译期将 boolean 类型转换为 int,此时 1 代表 true0 代表 false。此外,JVM 还指出 boolean 数组,但底层是通过 byte 数组来实现;

  2. 使用 long 类型时,需要在后边加上 L,否则将其作为整型解析,可能会导致越界;

  3. 浮点数如果没有明确指定 float 还是 double,统一按 double 处理;

  4. char 是用 单引号 ‘’ 将内容括起来,相当于一个整型值(ASCII 值),能够参加表达式运算;而 String 是用 双引号 “” 将内容括起来,代表的是一个地址值;

1.2 引用类型

数据类型 默认值
数组 null
null
接口 null

1.3 封装类

基本数据类型都有其对应的封装类,两者之间的赋值通过 自动装箱 和 自动拆箱 来完成;

  • 自动装箱:将基本数据类型装箱为封装类;

// 实际调用 Integer.valueOf(12)
Integer x = 12;
  • 自动拆箱:将封装类拆箱为基本数据类型;

Integer x = 12;
// 实际调用 x.intValue()
int y = x;
  • 基本类型与对应封装类的不同

    1. 基本类型只能按值传递,封装类按引用传递;

    2. 基本类型 会在  中创建,效率较高,但可能存在内存泄露问题;封装类对象会在堆中创建,其 引用在栈中创建;

 

1.4 缓存池

以 new Integer(123) 和 Integer.valueOf(123) 为例:

  • 通过 new 的方式每次都会创建一个新的对象;

  • 通过 valueOf() 的方式则会优先判断该值是否位于缓存池,如果在的话就直接返回缓存池中的内容,多次调用指向同一个对象的引用;

Integer x = new Integer(123);
Integer y = new Integer(123);
// false,通过 new 的方式,每次都会创建一个新对象,指向不同对象
System.out.println(x == y);
Integer m = Integer.valueOf(123);
Integer n = Integer.valueOf(123);
// true,通过 valueOf() 的方式,先到缓存池中查找,存在时则多次调用也是指向同一对象
System.out.println(m == n);
数据类型 默认缓存池
Byte  ~ 
Character \u0000 ~ \u007F
Short  ~ 
Integer  ~ 
Boolean true & false

2. 字符串 String

2.1 定义

public final class String implements java.io.Serializable, Comparable<String>, CharSequence {
   
  • 7
    点赞
  • 57
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 尚硅谷Java基础笔记是一套系统而全面的Java基础学习资料。这份笔记从Java语言的基本概念介绍开始,涵盖了Java的核心知识点,包括变量、数据类型、运算符、流程控制等。接着,笔记详细讲解了面向对象编程的特点和Java中的类、对象、封装、继承、多态等内容。 在这份笔记中,还深入讨论了Java中的常用类库,如String、ArrayList、HashMap等,以及它们的常见用法和实例操作。此外,笔记还介绍了常见的异常处理机制,包括try-catch语句、throw和throws关键字等,帮助学习者理解并掌握Java中的错误和异常处理。 除了基础知识的讲解,尚硅谷Java基础笔记还提供了大量的例子和练习题,帮助学习者巩固所学内容,并通过实践提高编程能力。这些例子和练习题涵盖了各个知识点和应用场景,从简单到复杂,逐渐深入,非常有助于学习者的理解和应用能力的提升。 总而言之,尚硅谷Java基础笔记是一份详细、系统、易懂的学习资料,适合初学者入门学习Java编程。无论是对于零基础的学习者还是对于有一定编程经验的人来说,这份笔记都是一份不可多得的宝藏,可以帮助他们夯实Java基础,掌握编程技巧,为进一步扩展知识奠定坚实的基础。 ### 回答2: 尚硅谷java基础笔记是一份完整而详细的教程,对于初学者来说是一个很好的学习资源。 这份笔记由尚硅谷团队精心编写而成,包含了Java基础的各个方面。首先从Java的历史和应用领域入手,引导读者对Java有一个整体的认识。然后逐步介绍Java的发展环境和使用工具,让读者能够了解如何配置和使用Java开发环境。 接下来,笔记逐个介绍了Java的基本语法、数据类型、运算符、流程控制语句等基础知识。这些内容以简洁明了的方式呈现,附有实例和练习题,让读者可以通过练习巩固所学内容。 除了基础语法,笔记还深入讲解了Java的面向对象编程思想和相关特性,包括类与对象、封装、继承、多态等。这部分内容对于理解Java的核心思想和编程范式非常重要,而且通过实例和案例的讲解,更加直观地展示了面向对象的优势和应用。 此外,笔记还包含了Java的常用类库的介绍,如集合框架、IO流、异常处理等,这些内容对于进行实际开发非常实用。 总之,尚硅谷java基础笔记内容全面、深入浅出,适合初学者学习和巩固基础知识。通过系统地学习这份笔记,读者可以建立起扎实的Java基础,为后续的学习和实践打下坚实的基础。同时,笔记中的案例和练习题也为读者提供了不少实践机会,帮助读者更好地理解和应用所学知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值