
Java
包含面向对象思想、集合、异常、多线程、IO流、反射....等
路灯下的篮球场
一步一个脚印,努力凿成一名优秀的工程狮
展开
-
MQ中的数据丢失处理办法
MQ 消息队列中的数据丢失处理办法2.丢消息。这得从java的java.net.SocketException异常说起。简单点说就是当网络发送方发送一堆数据,然后调用close关闭连接之后。这些发送的数据都在接收者的缓存里,接收者如果调用read方法仍旧能从缓存中读取这些数据,尽管对方已经关闭了连接。但是当接收者尝试发送数据时,由于此时连接已关闭,所以会发生异常,这个很好理解。不过需要注意的是,当发生SocketException后,原本缓存区中数据也作废了,此时接收者再次调用read方法去读取缓存中原创 2020-09-01 15:50:30 · 2937 阅读 · 2 评论 -
消息队列MQ的作用
使⽤消息队列主要是为了:减少响应所需时间和削峰。降低系统耦合性(解耦/提升系统可扩展性)。当我们不使⽤消息队列的时候,所有的⽤户的请求会直接落到服务器,然后通过数据库或者缓存响应。假如在⾼并发的场景下,如果没有缓存或者数据库承受不了这么⼤的压⼒的话,就会造成响应速度缓慢,甚⾄造成数据库宕机。但是,在使⽤消息队列之后,⽤户的请求数据发送给了消息队列之后就可以⽴即返回,再由消息队列的消费者进程从消息队列中获取数据,异步写⼊数据库,不过要确保消息不被重复消费还要考虑到消息丢失问题。由于消息队列服务器处理原创 2020-08-25 10:07:14 · 779 阅读 · 0 评论 -
redis与数据库的数据一致性问题
如何保障mysql和redis之间的数据一致性?1.强一致(向数据库插入一条数据时,同时向redis中也插入一条数据)2.定时任务:设置过期时间结合实际场景,解决redis和mysql的数据一致性在并发不高的情况下:读操作优先读取redis,不存在的话就去访问MySQL数据库,并把从数据库中读到的数据写回Redis中;写操作的话,直接写MySQL,成功后再写入Redis(可以在MySQL数据库业务代码中定义CRUD触发器,在触发CRUD操作后写数据到Redis,也可以在Redis端解析mysql的b原创 2020-07-29 16:29:57 · 1433 阅读 · 0 评论 -
Java线程
文章目录线程1.并发与并行2. 线程与进程3. 创建线程类方法一:继承 Thread 类创建线程方法二:实现 Runnable 接口创建线程4. Thread和Runnable的区别线程1.并发与并行并发:指两个或多个事件在同一个时间段内发生。并行:指两个或多个事件在同一时刻发生(同时发生)。在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 CPU 系统中,每一时刻只能有一道程序执行,即微观上这些程序是分时的交替运行,只不过是给人的感觉是同时运行,那是因为原创 2020-06-12 10:53:51 · 125 阅读 · 0 评论 -
网络通信协议TCP/IP
文章目录1.1 软件结构1.2 网络通信协议1.3 协议分类1.4 网络编程三要素协议IP地址端口号1.1 软件结构C/S结构 :全称为Client/Server结构,是指客户端和服务器结构。常见程序有QQ、迅雷等软件。B/S结构 :全称为Browser/Server结构,是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一定的协议下,实现两台计算机的通信的程序。1.2 网络通信协议网络通信协议:通过计算机网络可以转载 2020-06-08 16:38:23 · 982 阅读 · 0 评论 -
反射与注解
文章目录反射:框架设计的灵魂1.反射机制的理解2.Java代码在计算机中经历的三个阶段3 获取Class对象的方式:3.1 Class对象功能:3.2 Field:成员变量3.3 Constructor:构造方法3.4 Method:方法对象注解:代码级别的说明1.注解的理解2. 注解作用分类:3. 注解的种类3.1 `JDK`中预定义的一些注解3.2. 自定义注解3.3. 元注解:用于描述注解...原创 2020-04-21 21:07:21 · 257 阅读 · 0 评论 -
JDK1.8稳定版
JDK1.8稳定版本官网下载速度有时候巨慢,分享出来给大家节省时间链接:https://pan.baidu.com/s/1If1XHMhDJAiOnKA_hKWz2A提取码:601y原创 2020-04-15 14:56:42 · 1862 阅读 · 0 评论 -
I/O流 - 图片复制原理与实现
字节流练习:图片复制复制原理图解文件复制:一读一写明确:数据源: c:\1.jpg数据的目的地: d:\1.jpg文件复制的步骤:1.创建一个字节输入流对象,构造方法中绑定要读取的数据源2.创建一个字节输出流对象,构造方法中绑定要写入的目的地3.使用字节输入流对象中的方法read读取文件4.使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中5.释放...原创 2020-04-10 16:08:47 · 394 阅读 · 0 评论 -
I/O流 - 字节流
文章目录一. IO概述1.1 什么是IO1.2 IO的分类1.3 IO的流向说明图解1.4 顶级父类二. 字节流2.1 一切皆为字节2.2 字节输出流【OutputStream】2.3 FileOutputStream类构造方法写出字节数据数据追加续写写出换行2.4 字节输入流【InputStream】2.5 FileInputStream类构造方法读取字节数据一. IO概述1.1 什么是IO...原创 2020-04-10 15:55:16 · 203 阅读 · 0 评论 -
Lambda理解
Lambda表达式1. 函数式编程思想概述在数学中,函数就是有输入量、输出量的一套计算方案,也就是“拿什么东西做什么事情”。相对而言,面向对象过分强调“必须通过对象的形式来做事情”,而函数式思想则尽量忽略面向对象的复杂语法——强调做什么,而不是以什么形式做。面向对象的思想: 做一件事情,找一个能解决这个事情的对象,调用对象的方法,完成事情.函数式编程思想:只要能获取到结果,谁去做的,...原创 2020-04-08 17:13:05 · 174 阅读 · 0 评论 -
Java中String类、Arrays类、Math类常用方法总结
1. String类常用方法java.lang.String类代表字符串。Java程序中所有的字符串文字(例如 “abc” )都可以被看作是实现此类的实 例。类 String中包括用于检查各个字符串的方法,比如用于比较字符串,搜索字符串,提取子字符串以及创建具有翻 译为大写或小写的所有字符的字符串的副本。java.lang.String :此类不需要导入。构造方法public St...原创 2020-04-08 16:27:08 · 220 阅读 · 0 评论 -
集合 -双列集合(Map)
文章目录二. 集合2.双列集合(Map)2.1 集合概述:2.2 Map常用子类(HashMap)2.2.1 HashMap2.2.2 LinkedHashMap2.3 Map接口中的常用方法2.4 Map集合遍历键找值方式2.4.1 Entry键值对对象2.4.2 Map集合遍历键值对方式二. 集合2.双列集合(Map)2.1 集合概述:IP地址与主机名,身份证号与个人,系统用户名与系统...原创 2020-03-31 22:40:53 · 330 阅读 · 0 评论 -
集合 - 单列集合(Collection)
文章目录二. 集合1.单列集合1.1 集合概述1.2 集合框架1.3 Collection 常用功能2. List接口介绍2.1. ArrayList2.2 LinkedList集合3. set集合3.1 HashSet集合介绍3.1.1LinkedHashSet集合3.2. Collections:操作集合的工具类二. 集合1.单列集合1.1 集合概述集合:集合是java中提供的一...原创 2020-03-31 21:48:13 · 2120 阅读 · 0 评论 -
面向对象的思想(通俗易懂)
一. 面向对象的思想1. 思想特点:让复杂的事情简单化更加符合我们的思想让我们从执行者变成指挥者2. 三大特征:封装性:将属性隐藏起来,若需要访问某个属性,提供公共方法对其访问。继承性:就是子类继承父类的属性和行为,使得子类对象具有与父类相同的属性、相同的行为。子类可以直接访问父类中的非私有的属性和行为。多态性:是指同一行为,具有多个不同表现形式 ,用父类访问子...原创 2020-03-31 16:46:18 · 2438 阅读 · 0 评论