自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(34)
  • 收藏
  • 关注

原创 线程池执行流程

1.提交一个任务后,当线程池中存活的线程数小于核心线程数(corePoolSize)线程池就会创建一个核心线程来处理提交的任务。2.如果当前线程数大于或等于核心线程数会将任务放入任务队列中,等待被核心线程执行。3.如果任务队列也被放满就会创建非核心线程。4.如果最大线程数也满了,就会采用拒绝策略。

2022-11-07 19:30:10 1014

原创 线程的基本状态有那些?

WAITING:等待状态,表示线程进入等待状态,需要其他线程通知才能重新进去运行态。RUNNABLE:(可)运行态,表示当前线程处于运行或者就绪(可运行)TIME_WAITING:超时等待状态,到达时间自动返回。NEW:初始态,线程被构建,但还没有调用start()TERMINATED:终止态:表示当前线程已经执行完毕。BLOCKED:阻塞态,表示当前线程阻塞。

2022-11-04 17:43:30 218

原创 TCP粘包

总结:粘包就是由于TCP是面向流的传输协议,发送和接受都是不定长度,这种传输方式是无保护数据边界的从而造成粘包。解决办法:1.用开始符和结束符规定好每条数据的长度。2.设置长度,发送时在数据前几位明确此条数据的长度。2.发送方需要等待缓冲区flush时发送数据,造成发送时粘包。假设接受方粘包:通过优化程序逻辑等,接受方粘包是最难解决的,有时候甚至无法优化。产生原因:1.接受方未能及时接受缓冲去的数据,多包一起接受,造成接受时粘包。假设发送方粘包:不等缓冲区满就立即发送数据,但是这种方式会降低通行传输速率。

2022-11-04 14:32:03 454

原创 sleep和wait方法区别和共同点

wait方法调用后,线程不会自动苏醒,需要别的线程调用一个对象上的notify或者notifyAll,sleep方法执行后会自动苏醒,或者可以使用wait(long timeout)方法后会自动苏醒。其他区别:wait用于线程交互/通信,sleep通常用于暂停执行。两者最主要的区别:sleep不释放锁,wait释放锁。共同点:两个方法都可以暂停线程执行。

2022-11-03 10:18:05 265

原创 线程池核心参数

有:ArrayBlockingQueue(基于数组的阻塞队列) LinkedBlockingQueue(基于链表的阻塞队列) DelayedWorkQueue(基于堆的阻塞队列) PriorityBlockingQueue(可用compator或者comparaable实现排序的队列) SynchronousQueue(同步队列,不存数据直接启用非核心线程)核心线程数,创建线程的数量不大于核心线程数则不会被销毁。拒绝策略,当最大线程数用尽时会使用拒绝策略。最大线程数(包括核心线程数)

2022-11-02 19:30:01 321

原创 创建线程的四种方法

方式三:实现java.util.concurrent.Callable接口,允许子线程返回结果、抛出异常,重写call()方法。4.通过线程池创建线程,在前面的几种方法中线程时不可复用的,而线程池可以多次使用。方法一:继承 Java.lang.Thread类,重写run方法。方法二:实现Runnable接口,重写run()方法。

2022-11-02 19:07:48 137

原创 https协议的工作流程

HTTPS是加密后的HTTP协议,可以将HTTPS协议大体理解成先用非对称加密后用对称加密然;

2022-10-31 17:50:05 122

原创 UDP和TCP的区别

UDP是无连接以数据包的形式发送数据,可以一对一,一对多,多对多,具有广播的功能。三次握手四次挥手,重传机制,流量控制,拥塞避免,这些都保证的了TCP的可靠性。拥塞避免:报文段指数增加到达门限值后每次只增加一个报文段,如果出现超时会将门限降至现有的一半然后每次只增加一个报文段(执行快恢复)3.TCP相比UDP来说效率低,因为TCP有复杂的建立和释放连接的操作(三次握手四次挥手)和复杂的首部格式。重传机制:依靠快速重传,超时重传,SACK方法来实现重传机制;拥塞控制:慢开始,拥塞避免,快重传,快恢复。

2022-10-31 16:39:29 629

原创 Mybatis三种分页方式

SELECT * FROM 表名 LIMIT A,B //第一个参数A是从第几条开始显示,第二个参数为显示几条数据(是最基本的分页方式,也是数据库原始的分页方式)

2022-10-24 20:00:47 355

原创 数据库索引建立和优化的原则

2.为经常需要排序(ORDER BY),分组(GROUP BY),联合(UNION),去重(DISTINCT)操作的字段建立索引。5.如果整张表的数据量比较小可以考虑不建立索引,因为建立索引也许需要占一定的内存空间,同时索引的维护也需要时间。8.限制索引的数目,索引并不是越多越好,因为索引也是会占据磁盘空间,在修改表内容的时候索引也必须更新维护。1根据列的散列性创建索引,因为散列度越高,索引最终的范围就越小,最终扫描的行数就越小,索引效率也就越高。6.如果索引字段的值很长,最好只检索前面若干字符。

2022-10-22 23:39:00 146

原创 数据库索引为什么失效

例如:SELECT name FROM nametable WHERE name LIKE'%三'/LIKE'%三%'(索引失效)SELECT name_id,name,address FROM nametable(组合索引有效)SELECT name_id,name,address FROM nametable(组合索引有效)SELECT name_id,name FROM nametable(组合索引有效)SELECT name_id FROM nametable(组合索引有效)

2022-10-22 23:16:55 503

原创 项目中使用MD5,AES和不用框架使用MD5,AES的区别

什么时候会用到MD5?什么是MD5算法?怎么实现MD5?什么是AES?怎么实现AES加密和解密?几种基本的对称加密算法。PCBC(Propagating cipher-block chaining)填充密码块链接:使密文中的微小更改在解密时导致明文大部分错误的模式,并在加密的时候也具有同样的特性。

2022-10-19 19:38:12 233

原创 (双等)==与equals的区别

从包装类型和字符串两个讨论它们的不同

2022-10-10 19:59:01 221

原创 Mysql的事务

什么是事务?事务的四大特性,数据库的事务并发所造成的问题与隔离级别

2022-10-08 20:21:19 302

原创 介绍Mongdb,Mongdb基本的增删改查以及用Java对其操作

什么是mongdb?MongDB与sql中大致对应关系,MongDB的优缺点以及应用场景,mongdb的基本操作,用Java对MongDB操作

2022-10-07 23:38:25 565

原创 一级缓存和二级缓存在Mybaits和操作系统中分别指什么

在操作系统和Mybaits都有一级缓存和二级缓存的概念,而它们两个的含义却大有不同,今天将他们做简单的区分。什么是mybatis中缓存(cache)?eviction:代表的是缓存回收策略,MyBatis中有四种策略将Mybaits中一级缓存和二级的不同点阐述总结共有四点。mybaits二级缓存因为是定时清空的所以有可能读脏数据,使用的条件比较苛刻,现实应用场景已经十分少见,特别是分布式环境极大可能读取到错误的数据。可以引用redis等第三方内存库作为mybatis的缓存。

2022-09-17 20:49:44 942

原创 sql语句基本语法

SELECT * FROM 表名1 CROSS JOIN 表名2 WHERE 表名1 .表名1中某字段 = 表名2.表名2中某字段。SELECT 字段名 FROM 表1 INNER JOIN 表2 ON子句 表1.表1中某个字段=表2中某个字段。SELECT 字段名1,字段名2 FROM 表 1, 表 2 WHERE 判断语句。SELECT 字段名 FROM 表1 RIGHT OUTER JOIN 表2。关键字连接两个表,并使用 ON 子句来设置连接条件。关键字连接两个表,并使用 ON 来设置连接条件。

2022-09-13 07:39:53 264

原创 object类的常用方法

一、object类是什么?二、obeject类中的方法有什么?三:用native修饰的方法:

2022-09-05 07:57:40 969

原创 servlet及其周期

servlet是什么?servlet生命周期。http的两种请求方式:get方法和post方法

2022-08-21 12:07:21 302 1

原创 Hashmap底层存储机制和调用put()方法的过程

数组,链表,红黑树并不是随着hashmap对象创建而生成的(如果调用有参构造方法指定初始容量会有数组,调用有参构造大部分也不是按自己所填的参数产生容量的,而是按照2的次方进行扩容,比如有参构造为7,实际扩容为2的3次方)。...

2022-08-15 08:18:51 222

原创 用Java实现基于FTP协议的文件上传与下载

用Java实现基于FTP协议的文件上传与下载

2022-08-07 21:20:40 592 1

原创 基于Java的对称加密算法和非对称加密算法

A将对称加密算法中的某种算法(例如AES)再次进行加密(例如RSA)并发给B,B用RSA解密再用AES。填充在分组密码中,当数据长度不符合分组长度时,需要按一定的方式,将尾部明文分组进行填充,这种将尾部分组数据填满的方法称为。电子密码本模式是最简单的块密码加密模式,加密前根据加密块大小分成几块,之后将每块使用相同的密钥单独加密。填充密码块链接使密文中的微小更改在解密时导致明文大部分错误的模式,并在加密的时候也具有同样的特性。不填充,规定了明文的长度必须是加密算法分组长度的整数倍。...

2022-07-24 22:30:50 1568

原创 用Java实现常见的哈希算法

Hmac算法是配合其他hash算法一起去使用的,例如将Hmac算法和MD5一起使用,对应的就是HmacMD5算法,会产生一个64字节的key混入MD5中,使之更安全。哈希算法最重要的特点就是输入相同的值经过hash算法一定获得相同的输出,输入不同的值经过hash算法大概率得到不同的值(有概率哈希碰撞产生相同的值)。hash算法又称摘要算法,它的作用是对任意一组输入的数据进行计算,得到一个长度固定的输出算法。哈希算法的目的检验元数据是否被篡改。...

2022-07-24 20:57:32 2817

原创 用Java写Excel

用Java创建excel

2022-07-18 20:03:35 3334

原创 用Java发送Email

基于JavaMail发送邮件

2022-07-17 23:35:34 1622 3

原创 基于Java实现udp编程

基于Java实现udp编程

2022-07-17 20:38:40 1538 2

原创 两种实现斐波那契数列的方法

用for循环和递归实现斐波那契数列

2022-05-18 15:11:36 231

原创 实现希尔排序(交换元素)

实现希尔排序(交换元素)

2022-05-16 10:59:19 205

原创 栈转换为队列

栈转换为队列

2022-05-12 08:40:36 455

原创 Java集合collection接口概述

Java集合collection接口概述

2022-05-11 08:55:53 197

原创 StringBuilder和StringBuffer

初学者总结StringBuilder和StringBuffer

2022-02-21 18:01:49 161

原创 对多态的小结

对多态的小结

2022-02-19 22:53:45 120

原创 抽象类与接口

抽象类与接口说明和它们的区别

2022-02-17 19:10:54 147

原创 关于重载与重写

重写(override):在继承中,子类对父类某个方法重新定义,且方法名参数值完全相同只改方法体内的代码称为重写(override)。2、重载改变参数值而重写不改变参数值。System.out.println("你好"+age+"岁"+name);System.out.println("你好"+name);重载与重写的不同:1、重载在同一个类中,而重写用在不同类(须有继承关系)中。System.out.println("你好");这种方法名相同但参数不同的方法称为方法重载(overload)

2022-02-16 19:52:13 155

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除