- 博客(15)
- 收藏
- 关注
原创 Spring AOP的原理
AOP 为 Aspect Oriented Programming 的缩写,AOP是面向切面编程,是通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP 是 OOP(面向对象编程) 的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。利用AOP可以对业务逻辑的各个部分进行隔离,从而使得业务逻辑各部分之间的耦合度降低,提高程序的可重用性,同时提高了开发的效率。
2022-11-21 00:54:54
327
1
原创 TCP协议与UDP协议的区别
TCP:传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、面向字节流的传输层通信协议。UDP:用户数据报协议(UDP,UDP,User Datagram Protocol)是一种无连接的 、不可靠交付的传输层通信协议。在建立TCP连接过程中的前两次握手:①客户端向服务器发出建立连接的请求、② 服务器向客户端确认这个请求,足以证明客户端与服务器之间的网络是畅通的。TCP协议的3。
2022-11-01 15:16:15
499
原创 MD5和AES在项目中的使用方式与区别
MD5(全称是message-digestalgorithmd5)一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。MD5加密是一种单向的不可逆的加密算法,不可逆加密算法的特征是加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,只有重新输入明文,并再次经过同样不可逆的加密算法处理,得到相同的加密密文并被系统重新识别后,才能真正解密。
2022-10-24 19:19:33
220
原创 Java操作mongodb增删改查的基本操作
2007年10月,MongoDB由10gen团队开发。2009年2月首度推出。基于分布式文件存储的数据库,由c++语言编写。旨在为web应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据哭(nosql)之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。
2022-09-29 19:02:29
910
原创 描述Servlet生命周期,Servlet是线程安全的吗? 为什么?
Servlet(Serve Applet)是Java Servlet的简称,用Java编写的服务端端程序,具有独立于平台和协议的特性,主要功能在于交互式地浏览和生成数据,生成动态Web内容。Servlet 看起来像是通常的 Java 程序。Servlet 导入特定的属于 Java Servlet API 的包。因为是对象字节码,可动态地从网络加载,可以说 Servlet 对 Server 就如同 Applet对 Client 一样,但是,由于 Servlet 运行于 Server 中,它们并不需要一个。
2022-09-21 20:03:33
214
原创 Mybaits一级缓存和二级缓存分别是什么,区别是什么?
一级缓存:默认开启,一级缓存只是相于同一个SqlSession对象而言的;二级缓存:需要手动设置,二级缓存是对于同一个SQLSessionFactory而言的。
2022-09-16 23:06:36
291
原创 数据库基本增删改查语法和多表连查的方式
数据库(Database,简称DB)概念:长期存放在计算机内,有组织、可共享的大量数据的集合,是一个数据“仓库”。作用:存放、管理数据分类:关系型数据库、nosql数据库。
2022-09-12 21:18:02
286
原创 MySql的事务是什么?什么是脏读?幻读?不可重复读?
事务就是将一组SQL语句放在同一批次内执行,如果一个SQL语句出错,则该批次内的所有SQL都将被取消执行。
2022-09-05 08:42:16
229
原创 synchronized底层的锁(偏向锁 无锁 轻量级锁 重量级锁)
轻量级锁考虑的是竞争锁对象的线程不多,而且线程持有锁的时间也不长的情景。当一个线程使用synchronized方式获取了一个锁对象时,会在该对象的对象头中存 储当前线程的ID,后续这个线程再次去获取该锁对象时,直接进行线程ID的比较, 成功就表示该锁是偏向当前线程的,不需要再次获取锁了。一个对象被一个线程作为锁对象,释放锁对象后(但是该线程没有消亡时),其他线 程再获取该锁对象,则处于轻量级锁状态。一个对象被一个线程作为锁对象,没有释放锁,其他线程也要获取该锁对象,就处 于重量级锁状态。.........
2022-08-28 01:32:05
305
3
原创 线程池的拒绝策略
线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但线程的数目永远不会超过最大值。超过最大值的线程可以排队,但他们要等到其他线程完成后才启动。
2022-08-20 19:09:36
759
原创 简述哈希表
哈希表的英文叫 Hash Table,也可以称为散列表或者Hash 表。哈希表用的是数组支持按照下标随机访问数据的特性,所以哈希表其实就是数组的一种扩展,由数组演化而来。可以说,如果没有数组,就没有散列表。哈希表存储的是由键(key)和值(value)组成的数据。二、哈希表的结构JDK1.8以前哈希表是由数组+链表组成JDK1.8开始哈希表是由数组+链表+红黑树组成加入红黑树的好处:链表的特点是增删快,查询慢。所以链表越长就会导致查询越慢,而红黑树恰好解决这一问题。...
2022-08-14 22:44:55
1333
2
原创 继承关系下构造方法的访问特点
Java继承是面向对象的最显著的一个特征。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。继承所表达的就是一种对象类之间的相交关系,它使得某类对象可以继承另外一类对象的数据成员和成员方法。若类B继承类A,则属于B的对象便具有类A的全部或部分性质(数据属性)和功能(操作),我们称被继承的类A为基类、父类或超类,而称继承类B为A的派生类或子类。...
2022-08-05 15:58:29
186
原创 为什么float4个字节比long8个字节所表示的数值范围广
在Java语言中,我们知道基本数据类型包括数值型、字符型以及布尔型。其中数值型包括整数类型(byte、short、int、long)和浮点类型(float、double)。long型占用8个字节的存储空间,即64bit,最左边一位是符号位,0表示正,1表示负,其余23位存储数值,所以long型可以表示的数值范围为-263到263-1。这个很好理解,而float型占用4个字节,即32bit,所表示的数值范围为-3.403E38到3.403E38,这个数值范围是要大于long型所表示的数值范围的。......
2022-07-31 13:57:10
512
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人