JavaSE
2024-01-10 21:35:26 4 举报
AI智能生成
JavaSE(Java Standard Edition)是Java编程语言的一个版本,它是Java平台的核心,提供了开发桌面应用程序和简洁的Web应用程序所需的工具和库。JavaSE包含了Java的核心类库,如集合、泛型、线程、IO、网络等,以及Java虚拟机(JVM),它可以在不同操作系统上运行。JavaSE是Java平台的基础,其他版本如JavaEE(Java Enterprise Edition)和JavaME(Java Micro Edition)都是在JavaSE的基础上构建的。
作者其他创作
大纲/内容
面向过程
我们遇到问题 分析问题 解决问题 我们要一步一步的实现一行一行调用 很麻烦 效率不高 强调步骤
方法
拥有独有的能力 完成特定的功能
形参
有参无返
无参有返
无参无返
有参有参
返回值
任意类型
提前结束方法
或者返回数据
方法签名
类型+形参类型
方法重载
方法名相同 形参的 类型 顺序 个数 不同
定义在类中 其它方法外
递归
方法调方法
数据类型
字节型 byte 1字节 -128——127
短整型 short 2字节 -32368——32367
整数 int 4字节 21亿
长整型 long 8字节
单精度 float 4字节 小数点7位
双精度 double 8字节 小数点15位
字符型 char 2字节
布尔型 boolean true/false
运算符
++ -- ?: && || ……
流程控制语句
循环语句
while
for
do-while
增强for循环
条件语句
if-else
switch
break 防止穿透
default
默认的
case
选择
判断值 可以放自动转为int类型 字符串 枚举
类型转换
自动
强转
注释
描述数据的
单行注释
多行注释
文本注释
常量 final
固定的 不可更改的
修饰类
不能被继承
修饰属性
必须赋值
修饰方法
只能重载 不能重写 如果父类的修饰符是私有的 子类可以定义同名的方法(但不是重写)
优点
性能好 成本低
缺点
不易维护、不易复用、不易扩展
面向对象
是一种编程思想,是基于面向过程存在的。通过对象的方式,将现实中的事物映射到计算机模型的一种编程方法 强调对象
三大特性
封装
将属性私有话 提高代码的安全性
私有的 private
受保护 protected
默认的 default
公共的 public
构造器
可以用来初始化对象的属性
static
可以修饰全局变量
对象共用一份
用类可以直接调
继承
子类继承父类 拥有父类的所有内容 还可以追加独有的属性和方法 extends
实例化子类时 一定会调用父类的构造器
父类没有无参构造时 子类必须重新写他的有参构造
只能单继承 和 多层继承
可以实现多个接口 implements
子类可以重写父类的方法
判断一个对象 是不是一个类的实列 instanceof
Super
表示父类
this
表示当前对象
多态
多态是一种现象
父类对象引用子类
重写父类的方法
有继承关系
代码块
普通代码块
跟在方法 或者 控制语句后面的
静态代码块
随着类的加载 而加载 只会执行一次
构造代码块
创建一次对象 就会加载一次
自动加载到构造器里边
抽象类
抽象类不能被实列化
继承抽象类 必须重写他的抽象方法
抽象类有普通方法 但是有抽象方法的必须是抽象类
abstract
重写
方法头必须一致
不同类中
接口
比抽象还抽象的类
只能有抽象方法
interface
优点
易维护、易复用、易扩展,也就是面向过程的缺点
缺点
成本较高 性能差
常用类
Object
所有类的最终类
toString
打印信息
clone
克隆
实现接口 Cloneable
equals
比较
Hashcode
Hash值
File
文件类
绝对路径
相对路径
当前项目
Arrays
数组类
toString
sort 排序
String
字符串类
.getByte 转为字节
spilt
replace 替换
substring 截取
trim 去掉两边空格
length 长度
不可变的
可变的
StringBuffter
StringBuilder
常量池
Date
时间类
SimpleDateFormat
format
解释时间
parse
解析字符串
System.currentTimeMillis
获取秒数
LocalDate
时间类
包装类
将基本类型包装成一个类
基本类型和字符串相互转换
自带缓存
自动拆装箱
Math
数学类
枚举
特殊的类
enum定义
定义几个静态变量 每一个变量都是这个类的实列
数组
存储同一类型长度固定的数据
增加
扩容数组
改 删
移动数据
排序
插入排序
选择排序
冒泡排序
二维数组
集合
存储不同类型长度可变的数据
Collection
list
有序的 可重复的
ArrayList 底层数组
LenkdList 底层双向链表
set
无序的 不可重复的
HashSet
哈希表
Iterator
迭代器接口
Map
以键值对存储数据 不可以重复的
HaspMap 数组链表红黑树
泛型
指定写入同意类型的数据
通配符 <?>
上限 下限
集合的四个工具类
Properties
一种特殊的集合
读取键 返回值
compartor接口
比较器
可以排序的集合
comparable接口
可以排序的集合
可比较的
重写他的 comparto方法
collections
集合工具的一些方法
fill 重写
binarySearch 二分查找
sort 排序
shuffle 乱序
reverse 逆序
IO流
以程序为标准,传给程序的就是输入流,程序传给其它程序输出流
节点流
字符输入输出流
字节输入输出流
处理流 对节点流增强效率 只对字节流
缓存流
中间有个缓存点
对象流
ObjectInputStream
序列化
ObjectOutputStream
反序列化
要自定义类实现一个接口
serialVersionUid
加一个属性地址防止序列化和反序列化同步
转换流
InputStreamRead
输入字节转字符
OutputStreamWriter
输出字节转字符
数组流
将数组存入内存中
将内存存入数组中
编码格式
UTF-8
占三个字节
GBK
占两个字节
反射
描述数据的元数据
描述构造器
创建对象
newInstance()
Constructor
描述属性
Field
描述方法
method
描述数组
Array.newInstance
声明所有 Declared
创建Class类
对象.getClass
类.Class
ClassForName
可变参数
类型一致 确定不了个数的时候
必须在所有参数最后面
类的加载器
类的生命周期
加载->验证->准备->初始化->卸载
用来加载 Java 类到 Java 虚拟机中
有三种类加载器
Bootstrap ClassLoader 此加载器采用c++编写,开发中很少见
Extension ClassLoader 进行扩展类的加载,对应的是jre\lib\ext目录中的类
AppClassLoader 加载classpath指定的类,是最常用的加载器,默认的加载器
Lambda表达式
根据内部类的匿名内部类简化的
四大内置接口
Consumer 消费型
有参无返回
accetp方法
Fuction 函数型
有参有返回
apply方法
predicate 断定型
有参反布尔
test方法
supplier 供给型
无参有返回
get方法
方法引用
借别人的方法
类::实列方法
对象::实列方法
类::静态方法
构造器的引用
类名::new
函数型接口
只有且只有一个抽象方法
内部类
成员内部类
可以访问外部类的所有成员变量和方法
匿名内部类
没有名字的类
某个类以及它的实例只是用一次
局部内部类
定义在一个方法或者一个作用域里面的类
访问仅限于方法内或者该作用域内
静态内部类
把一个类隐藏在另外一个类的内部
内部类就只能访问外部类的静态成员变量
xml
扩展标记性语言
传输数据的
拥有互联网最高级别通行证的数据携带者
两个约束
dtd
Schrma
解析器
解析不被忽略 PCTADA
解析被忽略 CTADA
xml解析
Dom
解析多次
Dom4J
功能强大 开放源代码
JDom
使用具体类 不使用接口
SAX
扫描器 解析一次
Xpath
查找信息
异常
错误异常 Error
不用管他
编译期异常 CheckedException
避免不了 可以处理
捕获
try{}catch{}finlly{}
抛出
throws....
运行时异常 runTimeException
处理不了 可以避免
网络编程
资源共享
电脑的唯一标识 IP
InetAddress
软件的唯一表示 端口
Socket
两个协议
TCP
面向连接 效率不高
客户端
连接服务端 Socket
服务端
暴露接口 ServerSocket
等待连接 accept
UDP
非面向连接 数据丢失 效率高
URL
网络的绝对路径
网络分层
底层 物理层
顶层 应用层
协议
语义 语法 时序组成
注解
描述注解的元注解
描述程序 给计算机看的
Target 作用于位置
ElementType 取值
Rentention 保留时段
多线程
进程
资源分配的单位
线程
执行和调度的单位
睡眠 sleep
插入 join
返回就绪状态 yield
同步 synchronized
等待 wait
唤醒等待 notify
开启线程 start
创建线程方法
继承Thread
实现 Runnable接口
实现 Callable接口
进程可以并发多个线程,每条线程执行不同的任务
正则
描述字符串的特殊字符串
\d
任意数字
\D
除数字之外
\w
任意数字和字符
\W
非数字和字符
.
非.之外
\.
找点
\s
空格 制表符
\S
非空格 制表符
懒惰模式 ?
独占模式 +
可回溯模式
贪婪模式
边界
开始 ^
结束 $
单词边界 \b
反向引用
内部默认缓存,从第一个左括号计算,编号为 1 开始
断言
?=xxx 以什么结尾
?<=xxx 以什么开头
?!xxx 不是以什么结尾
?< 不是以什么结尾
Stream流
以一种声明的方法处理数据
对集合功能的增强
过滤
fifter
归约
求和 求乘积 求最值
遍历
forEach
聚合
max最大数 | min最小数 | count合计
映射
map一个元素 | flatMap每一个字符
归集
collect(collectors.toList)
分组
partitioningBy | groupingBy
排序
sorted(Comparator com):
统计
collectors
平均值 averagingDouble
创建方式
集合.Stream
数组.Steam
静态创建
iterate.limit
gnerte.limit
Stream.of
0 条评论
下一页