Autowired如何实现自动注入? BeanPostProcessor有两个方法,和。它们分别在任何bean初始化回调之前或之后执行(例如InitializingBean的afterPropertiesSet方法或自定义init-method方法之前或者之后), 在这个时候该bean的属性值已经填充完成了,并且我们返回的bean实例可能已经是原始实例的包装类型了。例如返回一个。
TCP协议的拥塞控制 当过多的主机发送了太多数据或者发送数据太快,以至于网络无法处理。造成阻塞。拥塞控制就是为了防止过多的数据注入到网络中,可以使网络中的路由器或链路不致过载。拥塞造成的表现:1. 分组丢失(路由器缓存溢出)2. 分组延迟过大(在路由器缓存中排队)为解决上述出现的问题引入了拥塞控制的四个算法来控制发送方的速率从而进行拥塞控制。
浏览一个网站时的整个过程 可通信后:浏览器会向服务器发送一个HTTP数据包,由浏览器发送的HTTP数据包首先会进入传输层,在传输层,将数据包加上TCP首部通过TCP协议进行传送到服务器的传输层,接着传送至服务器的应用层,应用层通过解析拿到数据并进行处理,处理之后同样会发送一个HTTP数据包响应给浏览器,在传输期间同样会从传输层传送数据,浏览器接收到服务器响应的内容后,会对响应的内容进行解析,将内容通过HTML返回给浏览器从而在浏览器上显示内容。建立连接后,浏览器和客户端就可以相互通信了。
CopyOnWriteArrayList源码分析 CopyOnWriteArrayList(Copy-On-Write: 写入时复制)是一个线程安全的ArrayList,对其进行的修改操作都是先加锁然后在底层的一个复制数组上进行。需要拷贝原数据,数据较大的时候容易引起频繁Full GC;写和读在不同的数组上,读取的是老数组的数据(弱一致性问题)经常被用于"读多写少"的并发场景,因为读取的时候不需要加锁,性能较好。读写分离,在使用迭代器迭代的时候不会抛出异常。
创建对象在堆区如何分配内存 我们都知道对象创建后,会被存入堆区,那么在堆区中是如何分配内存的呢?再了解对象在堆区中是如何分配内存之前,我们先来了解一下堆区(heap),堆是JVM管理的内存中最大的一块区域,是被所有线程共享的一块区域,堆区被划分为新生代和老年代,新生代占总内存的三分之一,其中又被划分为两个区域eden区和survivor区,eden区占十分之二,survival区占十分之八。老年代占总内存的三分之二。 当创建一个对象后,会先判断eden区是否被填满,若没有填满,直接存放在eden区,若填满则会触发新生代GC(
多线程常见面试题总结 线程池相当于一个容器,里面存放若干个线程,对若干个线程进行管理维护,在创建线程池的时候需要对线程池进行参数配置,常用的参数有核心线程数、最大线程数、非核心线程存活时间、工作队列、拒绝策略等(单位,线程创建工厂),核心线程数指的是线程池里可维护的最小线程数量,最大线程数指线程池允许创建的最大线程数量、非核心线程存活时间指的是一个可被回收的线程空闲时间大于非核心线程存时间就会被回收,工作队列用来存储等待执行的任务,拒绝策略当线程池内线程耗尽,并且工作队列已经满,提交新的执行任务,将使用拒绝策略进行处理。
Session会话追踪的实现机制 首先, HTTP请求是无状态的,通俗点说,就是你打开一个网页,和打开下一个网页之间,没有任何关系, 数据不会保存共用的。其次, 会话,就是人的对话, 一次会话指从开始聊天到聊天结束, 在这里就是指,你进入一个网站一直访问浏览,直接到你退出这个网站,或者关浏览器, 这是一次会话, 会话跟踪, 就是在你多次访问一个网站之间要保存数据, 多次请求要保存共有的数据,就叫会话跟踪了。
Servlet生命周期 Servlet(Server Applet是Java Servlet的简称,翻译过来就是服务程序。是由sun公司提供的一门用于开发动态Web资源的技术。简单的讲,Servlet就是运行在服务器上的一个小程序,用来处理服务器接收到的请求。比如一般的网页程序,是由我们通过浏览器来访问实现的,在这个过程中,我们的浏览器发送访问请求,服务器接收到请求,并对浏览器的请求做出相应的处理,这就是我们熟悉的B/S模型(浏览器—服务器模型)。而Servlet就是对请求做出处理的组件,运行于支持java的应用服务器中。
MyBatis框架学习过程中遇到的问题总结 出现此错误的主要原因是对Mybatis的主配置文件以及XML映射文件之间的配置不熟悉,在初学时,往往会忽略映射文件在主配置文件中的配置。:解决该问题的方案是要深刻理解并熟悉Mybatis的配置文件与映射文件之间的关系,在Mybatis框架的使用中,尽可能的去避免由于配置产生的错误。在映射器中出现了相同的方法id,出现了相同insertOne当Mybatis加载第二个insertOne时,会发现Mapped集合中已经存在该方法,因此会产生错误。.........
当添加一个键值对元素时,HashMap发生了什么? 在了解添加一个键值对元素,HashMap会发生什么之前我们先来了解一下HashMap的存储结构:HashMap内部数据结构使用的方式进行存储。数组类型为Node[ ],每个Node都保存了某个KV键值对元素的key、value、hash、next等值,由于next的存在,所以每个Node对象都是一个中的组成结点。...
Java反射技术 简单来说,反射机制指的是程序在运行时能够获取自身的信息。附:在WCF或者WebService的开发过程中,我们在客户端添加服务引用的时候,在客户程序中会添加一些额外的类,在客户端生成的类扮演着代理主题角色,我们客户端也是直接调用这些代理角色来访问远程服务提供的操作。在项目中配置Mybatis时,我们仅创建了映射器接口映射文件,并未创建映射器接口的实现类,但当我们使用Sqlsesion的getMapper()方法时,Mybatis却自动帮我们实现了映射器接口的实现类,从而可以使用映射器接口中的方法。...
String为什么是不可变的? 但是这并不代表char value[ ]数组中的内容不可变,我们依旧可以通过数组下标来修改value数组,从此看来在源代码中String不可变的主要原因是存放数据的char[ ]数组被private修饰,我们从外部无法去访问到char[ ],并且String内部本身也没有向我们提供修改char value[ ]的API, 从而无法对字符串内容进行修改。在此过程中,我们通过反射的技术获取了String类中的value数组,通过数组下标修改了其内容,但字符串s的引用一直未发生改变。......
对称式加密与非对称式加密的对比 非对称加密算法使用一组密钥对进行对文件加密解密,也就是说加密和解密使用的不是相同的密钥,当我们想让A向B发送加密文件时,A首先需要将自己的公钥发送给B,B使用A的公钥对文件进行加密,随后将加密文件发送给A,A可以通过自己私钥对文件进行解密。例如,我们常用的WinZIP和WinRAR对压缩包的加密和解密,就是使用对称加密算法。解密时我们首先得拿到他的IV字节内容,根据IV字节内容恢复IV,同样在初始化密钥时将IV设置进去。2、对称加密解密的速度比较快,非对称加密和解密花费的时间长、速度相对较慢。...
常见哈希算法总结 哈希算法(Hash)又称摘要算法(Digest),它是将任意长度的二进制值串映射为固定长度的二进制值串,这个映射的规则就是哈希算法,而通过原始数据映射之后得到的二进制值串就是哈希值(散列值)。哈希碰撞哈希是将不同的输入映射成独一无二的、固定长度的值。哈希碰撞是指两个不同的输入得到了同一个哈希值,就说明发生了"哈希碰撞"。...
网络编程-HTTP编程 HTTP是基于TCP处于应用层的一种协议,与传输层协议不同,它关注的不是像TCP那样的可靠传输,而是站在应用的角度,对传输的信息来具体的使用。HTTP广泛应用于手机APP和浏览器之中。
网络编程-Java Email 电子邮件是一种用电子手段提供信息交换的通信方式,是互联网应用最广的服务。电子邮件可以是文字、图像、声音等多种形式。同时,用户可以得到大量免费的新闻、专题邮件,并轻松实现轻松的信息搜索。电子邮件的存在极大地方便了人与人之间的沟通与交流,促进了社会的发展。要想在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。SMTP服务器地址。...
网络编程-TCP 首先在网络协议中TCP协议是一种面向连接、可靠传输、字节流式的协议,而TCP编程又是基于TCP协议实现的,因此在我们进行TCP编程时,我们需要建立一个服务器端和一个客户端,ServerSocket作为服务器端,用来监听指定的端口,当这个端口进行客户端连接时,服务器端进入等待状态,等待客户端连接,而另一个Socket就是我们的客户端,用来连接指定服务器和端口,从而进行连接,实现客户端与服务器端的通信与交互。3.连接到客户端之后,我们就可以获取到客户端的相关信息,并通过输入流读取到客户端的提问。...
Excel文件解析 在应用程序的开发过程中,经常需要使用Excel文件来进行数据的导入或导出。所以,在通过Java语言实现此类需求的时候,往往会面临着Excel文件的解析(导入)或生出(导出)。在Java技术生态圈中,可以进行Excel文件处理的主流技术包括:Apache POI,Alibaba EasyExcel等。今天我们就来分别介绍一下这两种技术如何来进行解析文件和生成文件。Apache POI 是一种免费开源的跨平台的Java API ,在Apache POI 中我们常用的解析文件的类有 HSSF 和 XSSF。