【幻化万千戏红尘】qianfeng-JAVA课程结束总结







JAVA知识点:
面向对象:
面向对象是一种思想
编程的指导


封装:
面向对象2大核心:
1、类:描述信息,抽象
格式:[public/abstract/final] class 类名 {
属性
构造方法
方法
}


2、对象:具体的实例
格式:类名 对象[=new 类名([实际参数列表])];


this的用法
1、代指本类对象
2、调用构造方法


方法的参数传递:
1、基本类型:传输的是数据的本身
2、引用类型:传输的是地址


static:静态
1、修饰属性
2、修饰方法
3、修饰代码块
4、修饰内部类


包:
1、package:声明
2、import:导入


继承:
继承:一个类拥有另一个类的属性或方法
构造器不能被继承
父类、超类、基类
子类、派生类
extends


super:用在子类中
1、可以调用父类中的属性或方法
2、可以调用父类中的构造方法




重写:扩展父类中的方法
规则:
1、访问修饰符不能比父类的严格
2、静态、非静态、返回值类型、方法名、形式参数列表相同


重载:相似功能的方法采用同一方法名
规则:
1、方法名相同
2、形式参数列表不同


访问修饰符:
public---->protected--->默认---->private


abstract:抽象
1、修饰方法
2、修饰类
抽象类不一定有抽象方法
有抽象方法的类一定是抽象类


final:最终的
1、修饰变量
2、修饰方法
3、修饰类


接口:由抽象方法和常量组成的


java只能单继承,但是可以多实现


Object类:所有类的祖宗类


==和equals的区别?


开发中优先选择接口其次抽象类


多态:
1、编译时多态
重载
2、运行时多态
重写
对象转型
1、向上转型:自动,子类---->父类
2、向下转型:强制,父类----->子类
instanceOf:验证对象是否可以强制转换


内部类:
1、成员内部类
2、匿名内部类
3、静态内部类
4、局部内部类


设计模式:
1、单例模式
2、简单工厂模式
3、装饰者模式


数组:存储一组相同数据类型的数据结构
2大核心:
1、元素的类型
2、数组的长度


2种创建方式
1、静态
2、动态
索引:0~length-1


Arrays:数组工具类
二维数组


异常的处理:
1、try{
可能引发异常的代码块
}catch(异常类){
对异常的处理
}finally{
一定会执行的代码
}


2、throws


常用类:
日历类Calendar
SimpleDateFormat
String
StringBuilder
Math


集合:动态的存储对象
存储数据时,优先使用数组,其次再使用集合
元素个数不定使用集合


1、Collection<E>:继承迭代器接口,所以可以增强for循环
1、List<E>:有序,可重复,有索引
add
get
set
remove
1、ArrayList<E>:底层数组,新增和删除的效率较低,查询和修改的效率较高
2、LinkedList<E>:底层双链式,新增和删除效率较高,查询和修改效率较低
2、Set<E>:无序,不可重复,无索引
add
remove
1、HashSet:效率较高
元素应该重写hashCode和equals
2、TreeSet
元素必须可排序

3、LinkedHashSet
2、Map<K,V>:键值对存储
put
get
1、HashMap
2、TreeMap


比较器接口:
1、Comparable<T>:自然顺序
2、Comparator<T>:自定义


Collections:集合工具类


流:数据通信的管道
File类:操作文件或目录的类
常用方法:
mkdir
mkdirs
length
getName
renameTo
delete
list
listFiles


FileNameFilter:文件名过滤器接口


递归遍历
递归删除


I/O流:
流是数据通信的管道
数据的来源:
1、文件
2、内存
3、网络
流的分类:
按照流向分:
1、输入流
2、输出流
按照传输单位分:
1、字节流
2、字符流
按照功能分:
1、节点流
2、过滤流


常用的流类:
1、文件流:操作文件的流
4个
2、内存流:操作内存的流
2个
3、缓冲流:提高读写效率
4个
4、转换流:字节和字符之间的转换,指定编码格式---字符流
2个
5、对象流:所有数据类型的写出和读取,序列化和反序列---字节流
2个
6、打印流:支持所有数据类型的输出
2个
7、数据流:基本类型和String的写出和读取
2个
8、随机读取文件类:读取和写入
RandomAccessFile


Serializable接口
序列化接口
transient:暂态的


java中的多线程:
进程:独立的应用程序
线程:程序内部的一条执行路径
多线程开发


线程的创建方式:
1、继承Thread类,重写run方法
2、实现Runnable接口


用户线程和守护线程
默认的线程是用户线程
守护线程会受到对应的用户线程的约束,对应的用户线程销毁的时候也跟着一起销毁


优先级:获取CPU的概率
[1,10]


线程的start和run的区别?


线程的调度:改变线程状态的方法
1、sleep
2、join
3、yield
4、wait
5、notify/notifyAll


线程的生命周期
新建
就绪
运行
阻塞
死亡


线程的安全:
当多个线程操作同一数据源时,有可能会引发数据安全


解决多线程安全:
synchronized:互斥锁关键字
1、修饰代码块:同步代码块
格式:synchronized(Object){
可能引发安全的代码块
}
2、修饰方法:同步方法
1、修饰非静态方法:锁的是当前类对象
2、修饰静态方法:锁的是当前类的Class对象


死锁:当前的线程进入了阻塞互相等待阻塞条件结束


TCP/IP协议:传输控制协议/网际协议
IP
端口号
TCP编程:
ServerSocket
Socket
TCP的特点:
1、面向连接
2、每次传输无大小限制
3、字节流数据交互


SQLite数据库
SQL语句:
1、create
2、alter
3、drop
4、insert
5、update
6、delete
7、select


Http协议:超文本传输协议
请求属性
请求参数


请求方式:
1、GET
不安全,信息敏感
大小有限制
中文乱码
速度快
2、POST
安全
大小无限制
速度慢


常用的Http技术:
1、HttpURLConnection
使用步骤:
1、创建URL对象
2、创建连接对象
3、设置请求信息
4、连接
5、验证状态响应码
6、获取响应结果
7、关闭


2、okHttp
使用步骤:
1、创建客户端对象
2、创建请求内容对象(POST)
3、创建请求对象
4、创建响应对象
5、验证是否成功
6、获取响应内容


XML:可扩展的标记语言
描述数据
XML解析:
1、SAX
使用步骤:
1、根据数据创建类
2、创建DefaultHandler类的子类,并重写
3、解析
1、创建解析工厂 SAXParseFactory
2、创建解析器
3、创建自定义DefaultHandler类的子类的对象
4、开始解析
5、获取解析结果

2、PULL
使用步骤:
1、根据数据创建类
2、解析
1、创建解析工厂XmlPullParseFactory
2、创建解析器
3、设置解析数据源
4、开始解析
1、创建集合存储解析结果
2、获取初始事件
3、循环获取事件
事件常量:
0---开始文档
1---结束文档
2---开始标签
3---结束标签
4---文本内容


JSON:字符串的规则
规则:
{}--->对象
[]--->数组
:---->连接属性和值
,---->多个属性或多个元素隔开
""---->属性名称或字符串类型的值


遇到{}就是对象
遇到[]就是数组


解析方式:
1、JSON官方
JSONObject:对象
JSONArray:数组
2、Gson谷歌
Gson类
3、FastJson阿里
JSON工具类


接口回调:
声明接口类型的遍历,通过实现类对象完成实例化
再使用接口变量调用接口中的方法,这就叫接口回调






HTML:超文本标记语言
显示数据


固定标签
不区分大小写
嵌套使用


HTML5+CSS3+JavaScript


Servlet:java语言编写运行在服务器上的程序
使用步骤:
1、创建Servlet(Web项目)
2、重写doGet和doPost方法
3、发布




正则表达式:字符串的校验,替换


反射:Class
1、运行时获取类的属性、方法、构造方法、注解
2、执行私有方法或私有属性


注解:为代码添加的注释
Annotation
@interface定义注解
四大元注解:
1、@Target
2、@Retantion

















  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值