### JavaSE全套知识点详解
#### 一、Java基础概述
- **Java语言特点**:Java是一种面向对象的编程语言,具有简单性、面向对象、健壮性、安全性、平台无关性等特点。
- **JVM与JDK的区别**:
- **JVM(Java Virtual Machine)**:是Java程序的运行环境,主要负责加载Java类到内存中,并执行这些类中的代码。
- **JDK(Java Development Kit)**:是Java开发工具包,包含了编译器、调试器等多种工具,用于Java程序的开发。
#### 二、Java基础语法
- **基本数据类型**:包括整型(int)、浮点型(float,double)、字符型(char)、布尔型(boolean)等。
- **变量**:用来存储数据值,如int a = 10;
- **控制结构**:
- **选择结构**:if-else语句、switch-case语句
- **循环结构**:for循环、while循环、do-while循环
- **数组**:一组相同类型数据的集合,如int[] arr = new int[5];
- **字符串**:String类是不可变的字符序列,StringBuffer/StringBuilder用于可变字符串操作。
#### 三、面向对象
- **类与对象**:
- **类**:对一类事物的抽象,包含属性和方法。
- **对象**:类的具体实例,通过new关键字创建。
- **封装**:将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部的数据,而是通过该类提供的方法来实现对内部数据的操作。
- **继承**:子类继承父类的所有属性和方法,允许在子类中添加新的属性或方法,也可以重写父类的方法。
- **多态**:指一个接口可以有多种不同的实现方式,或一个行为具有多个不同表现形式的能力。
- **抽象类与接口**:
- **抽象类**:不能被实例化的类,可以包含抽象方法和具体方法。
- **接口**:定义了一组行为规范,只包含抽象方法和常量。
#### 四、异常处理
- **异常的概念**:程序在运行时发生的错误称为异常。
- **异常分类**:
- **编译时异常**:又称为检查性异常,需要在编写程序时捕获或声明抛出。
- **运行时异常**:也称为非检查性异常,无需显式捕获或声明抛出。
- **异常处理机制**:try-catch-finally语句、throws关键字。
- **自定义异常**:通过继承Exception类或其子类来创建自定义异常类。
#### 五、常用类与集合框架
- **常用类**:String、Integer、Math、Date等。
- **集合框架**:
- **List**:有序的元素集合,支持重复元素,如ArrayList、LinkedList。
- **Set**:不重复的元素集合,如HashSet、TreeSet。
- **Map**:键值对集合,如HashMap、TreeMap。
#### 六、输入输出流
- **流的概念**:程序与设备之间的数据传输通道。
- **流的分类**:
- **按流向分**:输入流、输出流。
- **按类型分**:字节流、字符流。
- **常见流类**:FileInputStream、FileOutputStream、BufferedReader、PrintWriter等。
- **序列化与反序列化**:ObjectInputStream、ObjectOutputStream用于对象的序列化与反序列化。
#### 七、多线程
- **线程概念**:Java中使用Thread类或Runnable接口来创建线程。
- **线程生命周期**:新建状态、就绪状态、运行状态、阻塞状态、死亡状态。
- **线程调度**:Java采用分时调度模型,每个线程轮流占用CPU资源。
- **线程间通信**:wait()、notify()、notifyAll()方法用于实现线程间的同步和通信。
- **死锁**:多个线程相互等待对方持有的锁,从而导致所有线程都处于阻塞状态的现象。
#### 八、网络编程
- **Socket编程**:基于TCP/IP协议的网络编程模型。
- **服务器端**:使用ServerSocket监听客户端连接请求。
- **客户端**:使用Socket向服务器发送连接请求。
- **DatagramSocket**:用于UDP协议的网络编程。
以上是JavaSE的基础知识点概览,通过学习这些内容,你可以掌握Java的基本语法和面向对象的思想,并能够进行简单的程序设计与开发。希望这份笔记能帮助你在Java学习的道路上更进一步。