
java高级部分
文章平均质量分 62
布尼-QXT
这个作者很懒,什么都没留下…
展开
-
线程模型介绍
一. 线程模型基本介绍1.传统阻塞 I/O 服务模型2.Reactor 模型根据 Reactor 的数量和处理资源池线程的数量不同,有 3 种典型的实现单 Reactor 单线程单 Reactor 多线程主从 Reactor 多线程二.传统阻塞 I/O 服务模型采用阻塞 IO 模式获取输入的数据, 每个连接都需要独立的线程完成数据的输入 , 业务处理和数据返回工作存在问题:当并发数很大,就会创建大量的线程,占用很大系统资源连接创建后,如果当前线程暂时没有数据可读,该线程会阻塞在原创 2022-03-31 22:35:56 · 2372 阅读 · 0 评论 -
JAVA中I/O模型详解
一.说明I/O 模型简单的理解:就是用什么样的通道进行数据的发送和接收,很大程度上决定了程序通信的性能Java 共支持 3 种网络编程模型/IO 模式:BIO(同步并阻塞)、NIO(同步非阻塞)、AIO(异步非阻塞)阻塞与非阻塞主要指的是访问IO的线程是否会阻塞(或处于等待)线程访问资源,该资源是否准备就绪的一种处理方式同步和异步主要是指的数据的请求方式同步和异步是指访问数据的一种机制二.BIO(同步并阻塞)Java BIO就是传统的 socket编程.BIO(blockin原创 2022-03-31 21:54:16 · 401 阅读 · 0 评论 -
如何理解Redis中的事务
1.Redis事务Redis的事务是通过multi、exec、discard和watch这四个命令来完成的。Redis的单个命令都是原子性的,所以这里需要确保事务性的对象是命令集合。Redis将命令集合序列化并确保处于同一事务的命令集合连续且不被打断的执行 Redis不支持回滚操作注意:1.Redis: 命令是顺序执行的,在一个事务中,有可能被执行其他客户端的命令的2.Redis有持久化但不保证 数据的完整性2.事务命令multi:用于标记事务块的开始,Redis会将后续的命令逐个放入原创 2021-11-20 22:29:38 · 1866 阅读 · 0 评论 -
使用netty-socketIO实现服务端向客户端推送消息
1.功能概述 Netty-SocketIO是一个开源的、基于Netty的、Java版的即时消息推送项目。通过Netty-SocketIO,我们可以轻松的实现服务端主动向客户端推送消息的场景。它和websocket有相同的作用,只不过Netty-SocketIO可支持所有的浏览器。 Socket.IO除了支持WebSocket通讯协议外,还支持许多种轮询(Polling)机制以及其它实时通信方式,并封装成了通用的接口,并且在服务端实现了这些实时机制的相应代码。Socket.IO能够根据浏览器对通讯原创 2021-10-26 22:25:35 · 2239 阅读 · 0 评论 -
跨域问题中常见2种解决方法
1.使用JSONP解决跨域问题缺点:只支持get请求2. 使用CORS解决跨域问题原创 2021-10-25 22:30:45 · 231 阅读 · 0 评论 -
一致性Hash算法在分布式场景的应用
Nginx ip_hash策略示意图下面是上面策略的简单代码实现,模拟出它是如何将客户端请求分配到不同节点,而且还保证session的一致性。package demo;import java.util.ArrayList;import java.util.List;/** * * @author qiu * */public class HashUtils { public static void main(String[] args) { //模拟客户端原创 2021-02-27 22:12:38 · 801 阅读 · 7 评论 -
浏览器访问服务器的流程
原创 2021-01-24 17:12:49 · 378 阅读 · 0 评论 -
DispatcherServlet类请求结构
原创 2020-12-10 22:31:57 · 125 阅读 · 0 评论 -
自己实现一个简单的SpringMVC框架
springmvc框架大致执行原理流程如下:第一步:在web.xml中引入自定义的前端控制器 <servlet> <servlet-name>sunwaymvc</servlet-name> <servlet-class>com.sunway.qiu.mvcframework.servlet.DispatcherServlet</servlet-class> </servlet>第二步:编写自定义注解/原创 2020-12-10 21:32:08 · 403 阅读 · 0 评论 -
过滤器、拦截器、监听器作用时机图
原创 2020-12-05 22:30:36 · 168 阅读 · 0 评论 -
SpringBean循环依赖图
原创 2020-11-24 23:03:22 · 263 阅读 · 0 评论 -
Spring Bean生命周期图
SpringBean生命周期图原创 2020-11-07 16:22:36 · 260 阅读 · 0 评论 -
SpringIOC容器之高级特性(后置处理器)
后置处理器Spring提供了两种后处理bean的扩展接口,分别为BeanPostProcessor和BeanFactoryPostProcessor,两者在使用上是有区别的。工厂初始化(BeanFactory)--------> Bean对象 在BeanFactory初始化之后可以使用BeanFactoryPostProcessor 进行后置处理做一些事情。在Bean对象实例化之后可以使用BeanPostProcessor进行后置处理做一些事情。...原创 2020-11-07 16:20:33 · 244 阅读 · 0 评论 -
JavaWeb常考面试题(找工作必看)
1.Redis在项目中的使用场景数据类型使用场景String比如说,我想知道什么时候封锁一个IP地址 Incrby 命令Hash存储用户信息 【ID,name,age】 Hset (key field value )List实现最新消息的排行 、 利用List的push命令,将任务存在list集合 ,同时使用另一个命令,将任务从集合中取出...原创 2020-04-12 19:35:50 · 640 阅读 · 0 评论 -
在Centos上搭建Mysql从服务器配置时报错
以下是错误信息 Slave is not configured or failed to initialize properly. You must at least set –server-id to enable either a master or a slave. Additional error messages can be found in the MySQL error...原创 2018-07-14 16:42:35 · 280 阅读 · 0 评论 -
Linux上常用和java开发有关的命令
让jar包一直运行:nohup java -jar xxx.jar&这里要注意的是当退出客户端时要输入 exit命令退出。在Linux下查看所有java进程命令:ps -ef | grep java停止所有java进程命令:pkill - 9 java停止特定java进程命令:kill -9 java进程序号删除文件同目录删除:熟记 rm -rf 文...原创 2018-08-15 10:29:09 · 276 阅读 · 0 评论 -
在Linux上搭建mysql数据库
操作系统CentOS1:查看CentOS自带的mysql输入 rpm -qa | grep mysql2:将自带的mysql卸载rpm -e –nodeps xxxxx3: 上传Mysql到linux4:安装mysql的依赖(这一步可以不做)yum -y install libaio.so.1 libgcc_s.so.1 libstdc++.so.6 ...原创 2018-08-15 11:00:28 · 433 阅读 · 0 评论 -
详谈Spring框架的搭建
什么是Spring的IOC和DI?IOC :控制反转,将对象的创建权交给了 Spring. DI :全称:Dependency Injection 依赖注入.需要有 IOC 的环境,Spring 创建这个类的过程中,Spring 将类的依 赖的属性设置进去.开始搭建Spring基础框架下载 Spring下载地址:http://repo.springsource.org/...原创 2018-08-17 15:28:06 · 332 阅读 · 0 评论 -
hashCode()和equals()的区别
hashCode()和equals()的区别在Java中任何一个对象都具备hashCode()方法和equals(Object obj)方法。equals(Object obj)方法是用来判断两个对象是否相同,相同就返回true,不相同就返回false。hashCode()方法返回一个int数值。JDK对hashCode()方法和equals()方法有一定的规范:若重写equals(Ob...原创 2019-03-26 10:58:30 · 1684 阅读 · 0 评论 -
ActiveMQ管理页面无法访问此网站问题
配置activemq时,linux防火墙关闭了,activemq也启动了,但是访问后台页面时告诉你无法访问此网站。这时候可以查看下netstat -tnlp端口监听,看8161端口有没有,没有的话,说明没有启动成功。这时候发现自己什么配置都没有错,但是会在哪出错呢。原因是机器名和ip地址没有对上。这时候可以vim /etc/hosts,这时候会发现下面这些映射关系[root@ActiveM...原创 2019-03-26 11:04:03 · 3026 阅读 · 0 评论 -
springmvc中全局异常处理器的配置
与spring整合的全局异常处理器之前在ssm项目中对异常处理很是烦脑,没有统一的异常处理机制,在web层大量的使用try~catch,有的处理不了的就直接抛给了用户,这样的异常处理显然健壮性很差,后来发现原来spring自带的有异常处理器。用过之后履试不爽。以下是处理全局异常的类自己定义一个类只需实现 HandlerExceptionResolver接口即可/** * ...原创 2018-07-18 08:43:30 · 908 阅读 · 0 评论