- 博客(18)
- 收藏
- 关注
原创 @AutoWired注解
Resource,默认按照名称进行装配,名称可以通过name属性进行指定,如果没有指定name属性,当注解写在字段上时,默认取字段名进行名称查找。@Primary注解:自动装配时当出现多个bean候选者时,被注解为@Primary的bean将作为首选者,否则将抛出异常,如果使用了@Qualifier()指定装配的bean,则还是使用明确指定装配的bean。标注在方法上:@Bean+方法参数,参数从容器中获取,默认不写@Autowired效果是一样的,都能自动装配。
2022-10-24 21:47:44 2525 1
原创 TCP协议的拥塞控制
拥塞控制就是为了防止大量数据涌入到网络中,可避免网络中的路由器或者链路过载。拥塞控制是全局性的过程,涉及到所有主机和路由器。
2022-10-08 18:33:13 785
原创 TCP与UDP的区别
①UDP在传送数据前,无需建立连接,接收方收到UDP报文之后也不用给出确认。①TCP是提供面向连接的服务,在传输数据前必须建立连接,结束再释放连接;②TCP提供可靠的传输服务,传输形式为字节流,传输效率慢,所需资源多;②UDP传输不可靠,传输形式为数据报文段,传输效率高,所需资源少。3,现定于LAN等特定网络中的应用通信;2,视频,音频等多媒体通信;4,广播通信(广播、多播)。1,包的总量较少的通信;③TCP首部字节为20个字节到60字节;③UDP首部字节为8个字节。
2022-09-22 18:46:14 513
原创 【CopyOnWriteArrayList源码分析】
Copy-On-Write 简称 COW ,是一种用于集合的并发访问的优化策略。基本思想是:当 我们往一个集合容器中写入元素时(添加、修改、删除),并不会直接在集合容器中写入,而 是先将当前集合容器进行Copy,复制出一个新的容器,然后新的容器里写入元素,写入操作 完成之后,再将原容器的引用指向新的容器。这样做的好处:实现对 CopyOnWrite 集合容器写入操作时的线程安全,但同时并不影响 进行并发的读取操作。所以 CopyOnWrite 容器也是一种读写分离的思想。
2022-09-19 00:38:03 499
原创 创建对象在堆区如何分配内存
uintx NewRatio = 2 老年代 Old / 新生代 Young 的空间比例 = 2 : 代表老年代 Old 是新生代 Young 的2 倍 因为新生代是由 Eden + s0 + s1 组成的,所以按照上述默认比例,如果 Eden 区 内存大小是 40M,那么两个 Survivor 区就是 5M,整个新生代区就是 50M,然后可以算出 Old 区内存大小是 100M,堆区总大小就是 150M。垃圾回收的时候,在 Eden 区实现清除策略,没有被引 用的对象则直接回收。大部分情况下,对象会在。
2022-09-18 21:09:16 414
原创 Session会话追踪的实现机制
在 Web 应用程序中,我们经常要跟踪用户身份。例如:当一个用户登录成功后,如 果他继续访问其他页面, Web 程序如何才能识别出该用户身份?因为 HTTP 协议是一个无状态协议,即 Web 应用程序无法区分收到的两个 HTTP 请求是否是同一个浏览器发出的。为了跟踪用户状态,服务器可以向浏览器分配一个唯 一ID,并以 Cookie 的形式发送到浏览器,浏览器在后续访问时总是附带此 Cookie ,这样,服务器就可以识别用户身份。
2022-08-25 13:58:51 450
原创 Servlet生命周期
一个 Servlet 总是继承自 HttpServlet ,然后覆写 doGet() 或 doPost() 方法。注意 到 doGet() 方法传入了 HttpServletRequest 和 HttpServletResponse 两个对象,分别 代表 HTTP 请求和响应。我们使用 Servlet API 时,并不直接与底层 TCP 交互,也 不需要解析 HTTP 协议,因为 HttpServletRequest 和 HttpServletResponse 就已经封 装好了请求和响应。
2022-08-21 17:46:48 341
原创 MyBatis学习
是将程序中的大量 SQL 语句剥离出来,使用 XML 文件或注解的方式实现 SQL 的灵活配 置,将 SQL 语句与程序代码分离,在不修改程序代码的情况下,直接在配置文件中修改 SQL 语句。MyBatis 是免费且开源的。MyBatis 相当灵活,不会对应用程序或者数据库的现有设计强加任何影响,SQL 写在 XML 中,和程序逻辑代码分离,降低耦合度,便于同一管理和优化,提高了代码的可重用性。MyBatis 是一个开源、轻量级的数据持久化框架,是 JDBC 和 Hibernate 的替代方 案。.....
2022-08-18 20:11:32 413
原创 当添加一个键值对元素时,HashMap发生了什么?
HashMap 内部数据结构使用数组+链表+红黑树进行存储。数组类型为 Node[] ,每个 Nod e 都保存了某个KV键值对元素的 key 、 value 、 hash 、 next 等值。由于 next 的存在, 所以每个 Node 对象都是一个单向链表中的组成节点。当新添加一个KV键值对元素时,通过该元素的 key 的 hash 值,计算该元素在数组中应该保 存的下标位置。...
2022-08-14 22:52:42 177
原创 Java加密总结:两种常见的哈希算法、对称式加密与非对称式加密的对比
常用的哈希算法有根据碰撞概率,哈希算法的输出长度越长,就越难产生碰撞,也就越安全。使用MessageDigest时,我们首先根据哈希算法获取一个MessageDigest实例,然后,反复调用update(byte[])输入数据。当输入结束后,调用digest()方法获得byte[]数组表示的摘要,最后,输出。packageF2;try{//获取基于MD5加密算法的工具对象//更新原始数据//获取加密后的结果//只要内容相同,加密的结果相同。...
2022-07-22 18:37:07 1478 2
原创 Java Email 用java语言实现发送邮件
Email就是电子邮件,我们通常使用的是通过网易邮箱、QQ邮箱来进行邮件发送,当然我们可以借助Java程序收发电子邮件。一、概述我们先看一下传统的邮件是如何发送的通过邮局投递,然后从一个邮局到另一个邮局最终到达用户的信箱。电子邮件发送过程也类似,只不过是电子邮件是从用户电脑的邮件软件发送到邮件服务器,可能会经过若干个邮件服务器中转,最终到达对方邮件服务器上,收件方就可以用软件接收邮件;MUAMailUserAgent用户邮件服务代理MTA二、邮件协议。......
2022-07-17 22:45:57 1040 2
原创 网络编程中的TCP编程
概述计算机网络是指两台或更多的计算机组成的网络,在同一个网络中,任意两台计算机都可以直接通信,因为所有计算机都需要遵循同一种网络协议。互联网是网络的网络(internet),即把很多计算机网络连接起来,形成一个全球统--的互联网。对某个特定的计算机网络来说,它可能使用网络协议ABC,而另一个计算机网络可能使用网络协议XYZ。如果计算机网络各自的通讯协议不统一,就没法把不同的网络连接起来形成互联网。因此,为了把计算机网络接入互联网,就必须使用TCP/IP协议。https。......
2022-07-17 18:32:49 929 2
原创 java中 Excel文件解析及超大Excel文件读写
在应用程序的开发过程中,我们经常要用到Excel进行数据的导入或导出。所以,在通过Java语言实现此类需求时,通常会对Excel文件进行解析或生成。Excel文件解析apachePOI,可以解析world和ExcelgetRow(),获取行lastRoeNumber()最后一个,getCell()按下标获取当前行的单元格GetStringCellValue()-->文本getNumberCellValue()-->数字httpshttpshttpshttps。......
2022-07-16 21:57:16 5607 5
原创 Java中集合的遍历方式总结(List、Set、Map、Queue、Deque、Stack)
前言不同集合的遍历方式也有差异,本文将对六种集合的遍历方式进行总结。一、六种集合 1,List 2,Set 3, Map 4, Queue 5, Deque 6, Stack二、遍历方式1.List List是一种有序列表,允许内部元素重复,可以插入多个null值。(在需要增删元素时,应用更多的是ArrayLis...
2022-05-13 23:11:43 821
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人