JAVA
文章平均质量分 55
Ajaxtxdy
这个作者很懒,什么都没留下…
展开
-
JAVA面试全集
Java面试全集原创 2022-08-17 01:06:17 · 320 阅读 · 0 评论 -
Concurrent
一、概述1. Concurrent包是JDK1.5提供的一个用于应对高并发的包2. 包含5块主要内容:BlockingQueue、 ConcurrentMap、 ExecutorService、 Lock、 Atomic操作BlockingQueue - 阻塞式队列一、概述1. 满足队列的特性:FIFO2. 阻塞式队列是有界的,既大小固定不变3. 阻塞:a. 如果队列已满,则新添元素的线程会被阻塞b. 如果队列为空,则获取元素的线程会被阻塞4.方法:5. BlockingQueue中不允原创 2022-06-22 23:32:40 · 216 阅读 · 0 评论 -
NIO的3大组件之三Selector
一、概述1. Selector。称之为多路复用选择器2. 对通道进行选择,需要基于事件进行驱动3. 针对了四类事件:connect、accept、read、write,四类事件定义在SelectionKey中4. 可以实现利用一个或者少量线程处理大量请求5. 适用于大量的段任务场景,不适用于长任务场景6. Selector针对的必须是非阻塞的通道二、示例package cn.tedu.nio.selector;import java.io.IOException;import java原创 2022-03-26 00:17:08 · 221 阅读 · 0 评论 -
NIO的3大组件之二Channel
简介:Channel,称之为通道,在NIO中用于完成数据的传输;在操作的时候是面向缓冲区进行的;可以实现数据的双向传输;Channel默认是阻塞的,可以手动设置为非阻塞。FileChannel一、概述1. FileChannel,顾名思义是面向文件的通道2. 可以利用FileChannel完成对文件的读写操作3. 利用FileChannel读取文件的时候,是先将文件中的内容映射到虚拟内存中,然后再读取到程序的缓冲区中4. FileChannel不能直接创建,可以利用FileInputStream原创 2022-03-26 00:01:13 · 1242 阅读 · 0 评论 -
NIO的3大组件之一Buffer
一、ByteBuffer概述1. 字节缓冲区,继承了Buffer类2. 底层是依靠字节数组来存储数据3. 本身是一个抽象类,需要利用其子类创建对象或者是利用其提供的allocate或者是wrap方法来创建ByteBuffer对象4. 重要位置:capacity >= limit >= position >= mark二、重要位置1. capacity:容量位。用于标记该缓冲区的容量,在缓冲区创建好之后就不再改变2. limit:限制位。用于限制操作位position所能达到的原创 2022-03-25 00:33:08 · 435 阅读 · 0 评论 -
BIO和NIO的区别与联系
一、Java中的IO介绍1. BIO:BlockingIO,同步式阻塞式IO,即传统的IO,是Java中最早期的流2. NIO:Non-BlockingIO,又称New IO,同步式非阻塞式IO,是JDK1.4提供的流3. AIO:AsynchronousIO,异步式非阻塞式IO,可以认为是NIO的二代版本,是JDK1.8提供的流二、概述1. NIO是JDK1.4出现的一个新的用于进行数据传输的流2. 全称是Non-Blocking IO,是一种同步式非阻塞式的IO,也是一种能供进行多路复用的I原创 2022-03-25 00:08:49 · 694 阅读 · 0 评论 -
redis的基础命令和五种数据类型
1.五种数据结构redis中支持内存中的hashMap处理数据,在value的结构中存在为不同情况不同功能准备的5种不同的数据类型String:字符串Hash:面向对象的结构List:双向链表Set:集合ZSet:有序集合2.操作命令String类型(包含了基本命令)2.1基础命令(不仅仅操作string,还包括exists del expire ttl)对key值的管理,才能实现对数据的增删拆改○ keys pattern(*)keys可以查看想要的匹配到的所有key值,如果pa原创 2022-03-01 00:35:12 · 569 阅读 · 0 评论 -
redis的安装步骤
1.获取安装包解压1.1安装包redis-3.2.11.tar.gz在/home/resources操作习惯 /home/software文件夹安装所有的软件[root@10-9-39-13 ~]# mkdir /home/software1.2将安装包解压到指定目录将安装包拷贝到software等待解压[root@10-9-39-13 ~]# cp /home/resources/redis-3.2.11.tar.gz /home/software/将software下的tar包使用tar命原创 2022-03-01 00:06:55 · 718 阅读 · 0 评论 -
微服务框架springcloud
1.纵向拆分的独立系统的集群的问题1.1没有引入管理的功能系统的管理,授权,监听,熔断等逻辑都没有引入1.2静态配置的负载均衡的强耦合在庞大的纵向拆分的集群中,nginx的静态文件维护负载均衡逻辑,容易出现强耦合:例如:集群中某些节点出现宕机/迁移可以引入微服务的概念,从架构角度去解决问题2.微服务框架2.1微服务从一个单体项目,从一个功能比较集中的项目中纵向拆分出来独立运行的功能,每个功能的系统–微服务微:纵向拆分服务:功能被调用2.2微服务框架一个框架技术能够管理大量的拆分的独原创 2022-02-24 01:02:27 · 225 阅读 · 0 评论 -
springboot框架
一、springboot1.springboot概括1.1介绍springboot是一个基于spring框架的工具框架,可以实现spring容器的快速搭建快速配置快速启动1.2特性独立运行的spring容器可以实现通过main方法作为工程的一个cpu运行入口,启动一个spring的容器,容器中各种bean对象创建完成。嵌的servlet容器没有web应用servlet容器也存在,默认是tomcat(1.5.9.RELEASE版本的springboot内嵌tomcat8.5),整合spring原创 2022-02-23 00:17:51 · 1116 阅读 · 0 评论 -
高性能的HTTP和反向代理web服务器nginx
1.nginx概括1.1介绍nginx是一个轻量级(mysql oracle),支持http协议的反向代理服务器http协议:nginx可以通过浏览器,ajax,插件等支持http协议的客户端访问到nginx反向代理:代理:代理的是后端的服务器(tomcat)反向:代理控制的访问逻辑集中在后端发送到tomcat服务器的步骤1.2互联网框架中的作用○ 负载均衡负载:高并发的访问压力负重,载重均衡:平均分配,后端服务器(后端服务器集群)单机的nginx在cpu性能足够的情况下,5万-7万原创 2022-02-22 23:16:52 · 1717 阅读 · 0 评论 -
Maven概念和基本配置
1.MAVEN是什么Maven项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,依赖,报告和文档的项目管理工具软件。有了maven创建,生成,打包,管理项目结构变得极其方便2.MAVEN2.1配置window环境变量○ MAVEN运行需要jdk支持maven3.6–>jdk1.8○ 配置MAVEN的环境变量(MAVEN_HOME)MAVEN_HOME(我的电脑–>属性–>高级系统设置–>环境变量)添加一个变量○ PATH添加命令文件夹bin确原创 2022-02-14 00:55:25 · 1039 阅读 · 0 评论 -
MyBatis详解
1. MyBatis的结构2. MyBatis的入门案例a. 创建java项目,并在其中导入相关开发包b. 导入约束文件c. 创建表,创建beani. 创建表create database mydb;use mydb;create table user ( id int primary key auto_increment, name varchar(255), age int);insert into user values (null,'张三',19),(null,'李原创 2022-02-10 00:15:49 · 834 阅读 · 0 评论 -
SpringMVC细节
1. @RequestMappinga. 基本使用通过注解方式实现路径到处理器方法的映射。可以用在类或方法上。用在方法上表示将该方法变为一个处理器,且和指定路径做映射。用在类上则配置的路径会作为这个类中所有处理器的路径的父路径使用。 @RequestMapping("/test01.action")public ModelAndView test01() { ModelAndView mav = new ModelAndView(); mav.addObject("attr1", "he原创 2022-02-09 00:41:13 · 302 阅读 · 0 评论 -
浅谈SpringMVC
1. SpringMVC概述SpringMVC是一个WEB层、控制层框架,主要用来负责与客户端交互,业务逻辑的调用.SpringMVC是Spring家族的一大组件.Spring整合SpringMVC可以做到无缝集成.2. Servlet与SpringMVC比较a. Servlet的开发配置相对麻烦,servlet特别多的时候web.xml文件将会非常臃肿b. 每个Servlet都只能处理一个功能,如果需要多个功能就需要开发多个Servlet,项目中存在大量Servlet显得臃肿。c. 获取请求参原创 2022-02-09 00:03:37 · 128 阅读 · 0 评论 -
Spring整合JDBC步骤
1. Spring整合JDBC - 管理数据源a. 导入相关开发包b. 将数据源交于Spring管理c. 通过spring获取数据源,获取连接,操作数据库2. Spring整合JDBC - JDBC模板类使用模版类能够极大的简化原有JDBC的编程过程。a.在Spring中配置JDBC模板类b. 使用JDBC模板类实现增删改查 /** * 使用jdbc模板类 实现 delete */ @Test原创 2021-11-21 12:30:18 · 421 阅读 · 0 评论 -
SpringAOP案例
1. 异常信息收集在业务方法执行时,如果有异常抛出,则根据异常信息记录日志package cn.tedu.em.aspect;import java.io.FileWriter;import java.util.Date;import org.aspectj.lang.JoinPoint;import org.aspectj.lang.annotation.AfterThrowing;import org.aspectj.lang.annotation.Aspect;import org原创 2021-11-21 12:01:39 · 758 阅读 · 0 评论 -
SpringAOP—切面思想
1.Spring AOP中的基本概念1)连接点(Joinpoint):在程序执行过程中某个特定的点,比如某方法调用的时候或者处理异常的时候。在Spring AOP中,一个连接点总是表示一个方法的执行。例:层于层之间调用的过程中,目标层中可供调用的方法,就称之为连接点。层于层之间调用的过程中,目标层中可供调用的方法,就称之为连接点。2)切入点(Pointcut):匹配连接点的断言。通知和一个切入点表达式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方法时)。切入点表达式如何和连接点匹原创 2021-09-04 17:55:25 · 523 阅读 · 2 评论 -
SpringAOP基础(代理设计模式)
背景:当存在大量存在重复代码,导致开发效率低下;通过代理设计模式,将这部分代码提取到代理者中,简化层中的代码。1.静态代理模式优点:结构清晰 易于理解缺点:如果被代理者有多个方法,则代理者也需要开发多个方法,其中往往存在大量重复代码,仍然存在代码重复。备注:静态代理设计模式解决了软件分层过程中 额外的功能代码侵入模块的问题,将额外的功能代码提取到了代理者中进行,但是静态代理实现的代理者中存在大量重复的代码,并没有解决代码重复问题。所以在真正开发中–包括spring的底层,基本不会使用静态代理。例:原创 2021-09-04 16:37:21 · 115 阅读 · 0 评论 -
Spring框架概述
概述Spring是一个Service层的框架,可以整合许多其它框架进行工作。Spring的主要技术是 IOC(DI) AOPIOC(DI) - 控制反转(依赖注入)AOP - 面向切面编程一.Spring IOC1.IOC(DI) - 控制反转(依赖注入)所谓的IOC称之为控制反转,简单来说就是将对象的创建的权利及对象的生命周期的管理过程交由Spring框架来处理,从此在开发过程中不再需要关注对象的创建和生命周期的管理,而是在需要时由Spring框架提供,这个由spring框架管理对象创建和生原创 2021-08-15 23:32:22 · 306 阅读 · 0 评论 -
事务的特性
1.事务的四大特性(ACID)原子性(Atomicity):事务是一个不可分割的单位,事务中的每一个单元都必须同时成功或失败。一致性(Consistency):事务修改数据前后,数据库中的数据完整性仍然保持一致。隔离性(Isolation):数据库中的一个事务,可能被其他事务的影响,为了避免这种影响,数据提供一些隔离级别的选项,让用户自行选择隔离别。持久性(Durability):一旦数据库的事务提交,数据就会发生永久性的改变,任何操作都无法撤销这个过程,即使数据库损毁也不能恢复到原有数据内容。a原创 2021-08-15 21:32:35 · 504 阅读 · 0 评论 -
“事务“的重要性
1.概述在一个事件中,有多个组成单元,这些单元要么全部成功,要么全部失败,这个事件就可以称之为一个事务。2. 案例:转账update user set money = money -100 where name= ‘a’;update user set money = money +100 where name= ‘b’;为了保证两句sql同时成功或失败,需要将它们写入一个数据库的事务当中。3. 在Mysql客户端中书写事务数据库中事务里的sql语句,可以选择提交或回滚。如果提交,数据库中的数原创 2021-08-15 21:00:27 · 273 阅读 · 0 评论 -
log4j日志框架
1.概述log4j(log for java), 专门为java提供的日志框架。是目前公司中java语言收集日志的主流日志框架。a.特点:收集的优先级收集数据的输出目的地 文件 console收集数据的展示形式 HTML pattern2.如何使用log4ja.在程序中导入log4j所需jar包。http://jakarta.apache.org/log4jb.书写配置文件注意:在配置文件中,顶部的管道可以删除,但是如果管道存在,则必须要添加对应的配置信息,选择输出的目的地。log4原创 2021-08-15 13:56:33 · 123 阅读 · 0 评论 -
Filter过滤器
1.概述Filter和Servlet及Listener称之为Servlet三大技术。Filter是一个过滤器,可以将请求或响应拦截,拦截中的请求或响应,可以对其中的内容进行操作。操作完成后,可以选择放行或不放行当前请求或响应。2.Filter的创建a.创建一个类,实现Filter接口,即可成为一个过滤器。package cn.tedu.filter;import java.io.IOException;import javax.servlet.Filter;import javax.s原创 2021-08-14 17:38:38 · 98 阅读 · 0 评论 -
标签技术--el表达式
1.标签技术概述在jsp页面中有HTML语句和java语句相互嵌套,如果java的逻辑代码和页面的HTML组成代码都十分复杂,两者有掺杂在一起,页面的可读性和可维护性都将降低。为了解决这个问题,产生了标签技术。用它来替换页面中的java语句,这样页面中只会出现HTML代码,整体的可读性和可维护性都会提升。2.常用的JSP标签技术jsp标签:sun公司提供的标签技术 - 目前用的比较少el表达式:便捷易用 - 使用非常广泛 - 但只是表达式无法实现复杂功能jstl标签库:提供了大量强大的标签支原创 2021-08-14 15:48:59 · 924 阅读 · 0 评论 -
四大作用域范围对比
1.作用域概述作用域:一个可以共享数据的范围可以称之为作用域。2.四大作用域(由大到小排序):a.ServletContext — application代表当前web应用的对象生命周期:当web应用被加载,servletContext对象创建。当web应用被销毁,servletContext对象销毁。作用范围:整个web应用。主要功能在整个web应用中共享数据。b.Session — session代表当前会话的对象生命周期:request.getSession()方法调用的原创 2021-08-14 15:14:43 · 1844 阅读 · 0 评论 -
浅谈JSP的那些事
1.概述在 Servlet中书写后台逻辑代码和前台页面代码,十分复杂,如果页面构成繁琐,则servlet编写有很大难度。于是sun公司提供一种可以在页面中书写HTML和Java代码的技术。这门技术简化了前台和后台代码的切换操作,提升了开发的便利性。这门技术就是JSP。JSP是Sun公司提供的一门动态资源开发技术。2.原理a.jsp页面在第一次被访问的时候,会被jsp翻译引擎翻译为一个Servlet文件。其中页面的HTML和Java代码全部包含在文件内。访问jsp页面,就是访问这个Servlet原创 2021-08-14 15:06:22 · 272 阅读 · 2 评论 -
Cookie和Session特点比对
Cookie特点:cookie是将数据保存在浏览器端,是一门浏览器端的技术。由于数据保存在浏览器端,所以可以被任意的查看,安全性较低,但是可以长时间存储数据。cookie善于存储安全性要求较低,但是存储时间较长的数据。Session特点:session是将数据保存在服务器端,是一门服务器端的技术,数据保存在服务器端相对安全,但是服务器无法保留大量session对象,所以不能够长时间存储数据。服务器善于存储安全性要求较高,但是存储时间较短的数据。...原创 2021-08-14 14:19:08 · 100 阅读 · 0 评论 -
session(会话技术)
1.概述在浏览器端保存数据,数据可以被查看、获取,数据安全性较低。重要的数据应该存放在不容易获取到的位置。服务器是一个良好的选择。数据通过服务器共享,这门技术就是session会话技术。2.工作原理每一个浏览器在访问服务器时,都会创建各自对应的session对象来保存数据。相互之间不会影响,是因为在session对象身上会包含一个sessionid,可以通过这个id来区分每一个浏览器对应的session。a.本质原理:本质是通过一个名称为JSESSIONID的cookie来进行工作的。这个原创 2021-08-14 14:16:07 · 264 阅读 · 0 评论 -
cookie(会话技术)
1.概述在浏览器和服务器建立链接之后,浏览器和服务器为了完成某一功能,浏览器发送一次或多次请求,服务器作出的一次或多次响应,在浏览器关闭之前,所有的请求和响应就构成了一次会话。2.HTTP协议特点:HTTP无状态协议:当前请求和上一次请求之间没有任何的联系。3.使用会话技术的原因:为了能够在多次请求响应之间共享数据,所以提出会话技术。4.会话技术–cookiea.cookie的实现原理服务器会在第一次响应的时候,通过set-cookie响应头,将需要使用的数据发送到浏览器,浏览器会自动原创 2021-08-14 13:53:21 · 337 阅读 · 0 评论 -
浅谈ServletCofig和ServletContext
一.ServletCofig代表web.xml中当前servlet的初始化配置信息的对象。 在每一个servlet身上的注册servlet标签中都可以添加一些初始化配置信息参数,这 些参数可以在访问时,通过ServletConfig获取。a. 功能一:获取初始化配置信息1.获取方式:1)重写init方法,获取ServletConfig对象。虽然可以得到,但是它是一个局部变量,如果要在全局操作,则需要将其转换为全局变量。并且若有多个servlet都需要获取初始化配置信息,多次重写init方法,十分原创 2021-08-14 10:50:09 · 123 阅读 · 0 评论 -
response
1.response概述代表HTTP响应。2.response继承结构3.response组成4.response操作设置状态码的方法void setStatus(int sc)void setStatus(int sc, String sm)设置响应头的方法void setHeader(String name, String value)void setDateHeader(String name, long date)void setIntHeader(String name,原创 2021-08-13 22:32:44 · 415 阅读 · 0 评论 -
request
1.request概念代表HTTP请求。a.HTTP请求由四部分组成:b.请求的继承结构2.请求的功能a.获取请求资源getRequestURL方法 – 返回客户端发出请求完整URLgetRequestURI方法 – 返回请求行中的资源名部分getQueryString方法 – 返回请求行中的参数部分getRemoteAddr方法 – 返回发出请求的客户机的IP地址getMethod – 得到客户机请求方式!!getContextPath – 获得当前web应用虚拟目录名称 – 在原创 2021-08-12 23:40:03 · 168 阅读 · 0 评论 -
Servlet
1.Servlet概述a.一个动态资源开发的技术。Servlet本质就是一个java文件。需要先编译后执行,并且需要存储在servlet容器中。b.servlet容器:存储并运行servlet的环境称之为servlet容器,tomcatc.web容器:存储并运行web资源的环境称之为web容器。tomcat2.servlet细节细节一servlet组成:servlet标签和servlet-mapping标签servlet标签称之为注册servlet标签,servlet-mapping标签称之原创 2021-08-10 21:53:38 · 188 阅读 · 0 评论 -
虚拟主机和web应用
1.虚拟主机概念在一个真实的服务器中,运行着多个网站,这些网站在用户看来是运行在各自独立的服务器当中,但是真实的情况却是运行在同一个服务器中。这些网站可以称之为主机,由于网站没有运行在各自的服务器中,所以可以把这些主机称之为虚拟主机。一个网站就是一台虚拟主机。2.web应用概念由于虚拟主机无法直接管理web资源,所以将web资源放入虚拟主机管理目录中的一个子目录内。这个目录管理同一功能的web资源,多个功能不同的web资源放入不同的目录中。一般情况下,web应用会根据功能划分,一个功能一个web应用。原创 2021-08-04 00:15:17 · 242 阅读 · 0 评论 -
服务器概述
一、概述服务器是用来存放web资源的容器。web资源分为:静态web资源和动态web资源。静态web资源:每一个用户看到的内容都相同,这些资源称之为静态web资源。动态web资源:每一个用户看到内容不相同,这些资源称之为动态web资源。二、介绍服务器有软件服务器和硬件服务器之分。所谓软件服务器指的是tomcat这一类的软件。硬件服务器指的是真实存在的物理服务器。三、tomcat1.tomcat安装a.解压tomcat文件即可。b.tomcat 安装文件种类。.zip 压缩包版本 32原创 2021-08-03 22:21:49 · 172 阅读 · 0 评论 -
JDBC连接池
一、概述在使用JDBC过程中,连接的使用占用资源较少,而创建连接和销毁连接占用资源较多。为了减少在服务器和数据库服务器之间,创建连接和销毁连接的过程,可以使用连接池代替原本JDBC有关连接的操作。二、连接池原理连接池在服务器启动的时候,会自动向数据库服务器索要一批连接,这些连接会保留在连接池中,用户需要访问数据库时,可以从连接池中取出连接。使用完成后,可以归还连接,从而省去了创建和销毁的过程。三、代码实现package cn.tedu.pool;import java.io.PrintWri原创 2021-08-02 23:42:30 · 160 阅读 · 0 评论 -
JDBC工具类
创建连接和关闭资源代码重复调用,可以封装成方法。package cn.tedu.utils;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;im原创 2021-08-02 23:17:59 · 117 阅读 · 0 评论 -
JDBC实现步骤
一、步骤1.注册数据库驱动2.获取数据库连接3.创建传输器4.传输sql并返回结果5.遍历结果6.关闭资源二、代码实现package cn.tedu.jdbc;import java.sql.Connection;import java.sql.DriverManager;import java.sql.ResultSet;import java.sql.SQLException;import java.sql.Statement;import com.mysql.jdbc.原创 2021-08-02 22:51:37 · 109 阅读 · 0 评论 -
MySQL多表查询
数据库中经常涉及到多张表一起查询的情景,可以使用多表查询的方式解决。1.笛卡尔积查询:select * from dept,emp;笛卡尔积查询结果:左边表的行数*右边表的行数 = 查询结果数量select * from dept,emp where dept.id = emp.dept_id;2.内连接查询在笛卡尔积的查询基础之上,获取左边表有且右边表也有的数据,这种查询方式称之为内连接查询。inner join … oninner join前后书写两张表, on后添加两张表连接时的原创 2021-07-29 22:39:08 · 134 阅读 · 0 评论