JAVA
零零JA
保龙一族成员
展开
-
一个logbak日志配置文件demo
<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="10 seconds" debug="false"> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 --> <!-- scan:当此属性设置为...原创 2020-08-04 13:38:06 · 318 阅读 · 0 评论 -
JUC
0.JUC的简介在Java5.0中提供了java.util.concurrent(简称JUC)包,在此包中增加了很多在并发编程中很实用的类,用于定义类似线程的自定义子系统,包括线程池,异步IO,轻量级任务框架。提供可调的,灵活的线程池。还提供了设计用于多线程上下文中的Collection实现等。1.volatile关键字-内存可见性1.1 volatile关键字保证内存可见性禁止内...原创 2020-03-20 19:09:53 · 243 阅读 · 0 评论 -
NIO介绍 二
4.通道(Channel)4.1Channel的只要实现类通道(Channel):由 java.nio.channels 包定义的。Channel 表示 IO 源与目标打开的连接。Channel 类似于传统的“流”。只不过 Channel本身不能直接访问数据,Channel 只能与Buffer 进行交互。FileChannel:用于读取、写入、映射和操作文件的通道。DatagramCha...原创 2020-03-20 19:04:14 · 213 阅读 · 0 评论 -
NIO介绍一
1.NIO简介Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作。NIO将以更加高效的方式进行文件的读写操作。2.NIO与IO的区别IONIO面向流(Stream Oriented)面向缓...原创 2020-03-20 18:59:38 · 144 阅读 · 0 评论 -
MySql复习六.4 流程控制结构
流程控制结构有哪些 顺序结构:从上到下顺序执行; 分支结构:程序从一条或多条路径中选择一条去执行; 循环结构:在满足一定条件下,重复去执行一段代码; 分支结构 if函数 功能:实现简单的双分支; 语法:if(表达式1,表达式2,表达式3); 执行顺序:如果表达式1成立...原创 2020-03-11 22:13:45 · 109 阅读 · 0 评论 -
Spring中的AOP和AspectJ框架
Spring的面向切面编程(AOP)1,Java动态代理Demo有这样一个业务场景,设计一个计算器类,里面有加减乘除四则运算,在里面添加日志功能,日志记录输入的参数以及输出的结果。如果不使用动态代理,我们会这样写这个功能。写一个计算器的接口,里面有四则运算 public interface ArithmeticCalculator { //加 int...原创 2020-03-07 18:05:25 · 304 阅读 · 0 评论 -
Java泛型
Java 泛型1.什么是Java中的泛型泛型是Java5.0后出现的一个新特性,又称参数化类型,也就是将类型当作参数,传递给类,接口,方法。【对比】 形式 应用场合 备注普通的参数 传递的是值 只能用在方法中 要求形参和实参必须一致泛型参数 传递的是类型 可以用在类、方法或接口中 可以不用传参,默认是Obje...原创 2020-03-05 14:58:59 · 199 阅读 · 0 评论 -
Java中的数据类型,不同进制之间的转换,位运算
1,计算机中的存储单位 bit和byte计算机就是一系列的电路开关,每个开关存在两种状态开和关,如果电路是开着的它的值就是1,关就是0。一个1或者0存储为一个bit(比特),它是计算机中最小的存储单位。计算机中最基本的存储单元是byte(字节),每个字节由8个比特组成。存储单位的换算:单位 换算千字节 KB 1024B兆字节 MB 1024KB千兆字节 ...原创 2020-03-03 14:42:37 · 234 阅读 · 0 评论 -
Docker 入门
Docker入门1,docker简介Docke是一个开源的应用容器引擎,是一个轻量级的容器技术。Docker支持将将软件编译成一个镜像,在镜像中做好软件的各种配置,将镜像发布出去,其他使用者可以直接使用这个镜像。运行中的镜像我们称之为容器,容器的启动速度是很快的。下图为例: 以前我们在Linux服务器上安装MySql等各种软件,现在我们将MySql等软件打包成镜像,将镜像运行在安装有D...原创 2020-02-28 16:58:31 · 121 阅读 · 0 评论 -
利用ThymeLeaf进行页面静态化
1,为什么要页面静态化? 1,如果页面数据全部经过数据库查询后再渲染,浏览量大的情况下造成数据库压力过大。 2,每次页面都经过渲染,服务器压力过大,并发能力差。2,什么是页面静态化 将动态生成的HTML变为静态内容保存,每次用户访问不在经过页面渲染,直接返回生成好的静态页面,静态资源还可以放到nginx下,减少Tomcat压力。3,静态化的技术 1,...原创 2020-01-09 16:41:17 · 690 阅读 · 0 评论 -
JAVA中的常用概念(转)
PO(persistantObject)持久对象 在 o/r 映射的时候出现的概念,如果没有 o/r 映射,没有这个概念存在了。通常对应数据模型 ( 数据库 ), 本身还有部分业务逻辑的处理。可以看成是与数据库中的表相映射的 java 对象。最简单的 PO 就是对应数据库中某个表中的一条记录,多个记录可以用 PO 的集合。 PO 中应该不包含任何对数据库的操作。 ...转载 2019-08-28 17:54:17 · 98 阅读 · 0 评论 -
Java语言中try-catch-finally的执行顺序
Java语言中try-catch-finally的执行顺序最近遇到一道Java编程题目,让根据以下程序写输出:public static int func (){ try{ return 1; }catch (Exception e){ return 2; }finally{ return...转载 2019-08-28 18:00:51 · 123 阅读 · 0 评论 -
获取ActivmeMq连接的工具类demo
public class ActiveMQUtil { PooledConnectionFactory pooledConnectionFactory = null; public void init(String brokerUrl){ ActiveMQConnectionFactory activeMQConnectionFactory = new Activ...原创 2019-08-30 15:26:53 · 234 阅读 · 0 评论 -
将activeMqUtil注入到IOC容器中,并注入监听器的demo
@Configurationpublic class ActiveMQConfig { @Value("${spring.activemq.broker-url:disabled}") String brokerURL ; @Value("${activemq.listener.enable:disabled}") String listen...原创 2019-08-30 15:28:27 · 173 阅读 · 0 评论 -
消息队列简介
消息队列简介: 消息队列,也叫消息中间件。消息的传输过程中,消息保存在消息容器中。 消息队里解决的问题 异步 并行 解耦 排队 弊端:不确定性和延迟 解决:轮询,延迟队列 消...原创 2019-08-30 15:31:45 · 119 阅读 · 0 评论 -
分布式事务
什么是事务 对于一个sql语句的集合,要么全部执行,要么全都不执行。 mysql的事务默认是开启的 commit rollback 事务的特性 原子性 一致性 隔离性 一致性 隔离级别 在配置...原创 2019-08-30 15:32:32 · 149 阅读 · 0 评论 -
解决消息不确定性
分布式事务的异步通信问题 使用分布式事务异步通信的结构,一个很大的问题就是不确定性。一个消息发送过去了,不管结果如何发送端都不会原地等待接收端。直到接收端再推送回来回执消息,发送端才直到结果。但是也有可能发送端消息发送后,石沉大海,杳无音信。这时候就需要一种机制能够对这种不确定性进行补充。比如你给有很多笔友,平时写信一去一回,但是有时候会遇到迟迟没有回信的情况。那么针对这种偶尔出现的情...原创 2019-08-30 15:36:14 · 488 阅读 · 0 评论 -
Spring事务异常回滚,捕获异常不抛出就不会回滚
Spring事务异常回滚,捕获异常不抛出就不会回滚 最近遇到了事务不回滚的情况,我还考虑说JPA的事务有bug? 我想多了....... 为了打印清楚日志,很多方法我都加try catch,在catch中打印日志。但是这边情况来了,当这个方法异常时候日志是打印了,但是加的事务却没有回滚。 例: 类似这样的方法不会回滚 (一个方法出错...转载 2019-08-30 15:38:24 · 840 阅读 · 0 评论 -
TCP/IP、HTTP协议的区别
TCP/IP、HTTP协议的区别TCP/IP协议是传输层协议,主要解决数据如何在网络中传输,而HTTP是应用层协议,主要解决如何包装数据。关于TCP/IP和HTTP协议的关系,网络有一段比较容易理解的介绍:“我们在传输数据时,可以只使用(传输层)TCP/IP协议,但是那样的话,如果没有应用层,便无法识别数据内容,如果想要使传输的数据有意义,则必须使用到应用层协议,应用层协议有很多,...原创 2019-08-30 15:39:29 · 180 阅读 · 0 评论 -
JAVA中File类的使用
Filefile = newFile(“path”) 根据路径创建文件对象 file.exists() 判断文件是否存在 file.isDirectoty() 判断文件是否为文件目录 file.mkdir() 创建文件目录 必须有父目录 file.mkdirs() 创建文件目录,如果没父目录创建父目录 Fl...转载 2019-08-30 15:41:04 · 114 阅读 · 0 评论 -
创建线程的四种方式
1,创建线程的四种方式 写一个类 继承Thread类,重写里面都run()方法。 package com.thread;public class FirstThreadTest extends Thread{int i = 0;//重写run方法,run方法的方法体就是现场执行体...原创 2019-08-30 15:44:21 · 81 阅读 · 0 评论 -
多线程复习 一 线程的相关概念
一、概念程序:一段静止的代码。程序员为了让计算机完成某个特定的功能,编写的一系列有序指令的集合进程:正在运行的程序线程:一个进程中可以划分为若干个小的执行单位,每个执行单位称为线程。一个进程可以包含1个或多个线程单线程:一个进程中,同一个时刻只能运行一个线程。多线程:一个进程中,同一个时刻可以“同时”运行多个线程。二、好处1、...原创 2019-08-30 15:45:48 · 93 阅读 · 0 评论 -
多线程复习 三 线程的停止
一、线程停止的时机1、线程的任务体执行结束2、出现了error或Exception3、遇到了break或return4、采用通知的方式,退出 stop() 过时的方法 步骤1:需要在线程的任务体所在的循环中,添加循环条件为boolean flag,默认值为true 步骤2:需要在线程中暴露一个公共的用于更新flag的方法 setFlag 步骤3:...原创 2019-08-31 13:23:57 · 80 阅读 · 0 评论 -
多线程复习 四 线程的常见方法
一、常见方法setName:设置线程对象的名称getName:获取线程对象的名称setPriority:设置优先级 MIN_PRIORITY——MAX_PRIORITY(1——10)getPriority:获取优先级static sleep:让当前线程休眠指定的毫秒数 不会释放锁Interrupt:中断线程,并没有真正结束线程,仅仅只是 做了中断标记。当中断的线程...原创 2019-08-31 13:24:29 · 103 阅读 · 0 评论 -
多线程复习 五 线程的同步
一、线程的不安全问题如何产生?当多个线程 都需要处理共享资源,其中一个线程在处理过程中没有执行完,其他线程已经参与进来。则会导致线程的不安全问题二、如何解决线程的不安全问题?上锁!当一个线程在处理共享资源时,其他线程不允许参与进来。三、java中如何实现为代码“上锁”。同步的实现方式 ★说明:锁对象+synchronized 方式一...原创 2019-08-31 13:25:11 · 68 阅读 · 0 评论 -
多线程复习 六 线程的通信
一、说明采用一定的方式,让线程之间进行交流,最终达到控制线程的目的二、通信中用到的API★注意:以下为Object类的方法1、wait语法:对象名.wait();注意:该对象为锁对象,如果锁对象为this,实际上可以省略特点:①让当前线程等待,直到其他线程调用了该锁对象下的notify或notifyAll为止②导致锁的释放③当被唤醒后,将从断点处...原创 2019-08-31 13:25:46 · 62 阅读 · 0 评论 -
多线程复习 七 线程的生命周期状态
原创 2019-08-31 13:26:24 · 101 阅读 · 0 评论 -
Java中break、continue与return的区别
Java中break、continue与return的区别1. breakbreak语句的使用场合主要是switch语句和循环结构。在循环结构中使用break语句,如果执行了break语句,那么就退出循环,接着执行循环结构下面的第一条语句。如果在多重嵌套循环中使用break语句,当执行break语句的时候,退出的是它所在的循环结构,对外层循环没有任何影响。如果循环结构里有switch语句,...原创 2019-08-31 13:27:34 · 175 阅读 · 0 评论 -
Servlet简介
1,servlet学习 什么是servlet(server applet),直面翻译就是运行在服务器里面的小程序。 狭义:javax.servlet.Servlet接口及其子接口 广义:实现了Servlet接口及其子接口的类。 servlet对象由servlet容器创建。 如何使用? 使用servlet接口的方式 ...原创 2019-08-31 13:28:33 · 175 阅读 · 0 评论 -
web.xml文件详解
web.xml文件详解web.xml文件详解 前言:一般的web工程中都会用到web.xml,web.xml主要用来配置,可以方便的开发web工程。web.xml主要用来配置Filter、Listener、Servlet等。但是要说明的是web.xml并不是必须的,一个web工程可以没有web.xml文件。1、WEB工程加载web.xml过程 经过个人测试,WEB工程加载...转载 2019-08-31 13:30:44 · 80 阅读 · 0 评论 -
Servlet常用的监听器
WEB监听器 使用 使用方法,继承需要使用的监听器接口,根据业务需求实现接口中的抽象方法。 如果是ssm架构项目,将自定义监听器定义到 tomcat的web.xml中。 分类 监听 ServletContext对象,即application对象。 javax.servlet.Servle...原创 2019-08-31 13:31:23 · 312 阅读 · 0 评论 -
Web开发中的过滤器
6.1 Web开发 过滤器都应该实现javax.servlet.Filter接口 过滤器的作用 对目标访问前或访问后进行过滤. 实现某种功能扩展 应用场景 对密码进行加密 对请求参数进行字符编码设置 对请求进行权限控制 对请求参数值进行非法字符过滤 修改响应的结果数据 ...原创 2019-09-02 09:35:36 · 190 阅读 · 0 评论 -
将Web项目War包部署到Tomcat服务器基本步骤
1. 常识:1.1 War包War包一般是在进行Web开发时,通常是一个网站Project下的所有源码的集合,里面包含前台HTML/CSS/JS的代码,也包含Java的代码。当开发人员在自己的开发机器上调试所有代码并通过后,为了交给测试人员测试和未来进行产品发布,都需要将开发人员的源码打包成War进行发布。War包可以放在Tomcat下的webapps或者word目录下,随着to...转载 2019-09-02 09:36:56 · 265 阅读 · 0 评论 -
理解上下文路径问题
1,理解上下文路径问题。 在ssm架构时需要在JSP页面的资源请求路径写上下文路径,什么是上下文路径?因为项目部署到tomcat服务器的webapps文件夹下。项目的war包会被自动解压,解压后的文件夹名即项目名就是上下文路径,tomcat把所有的资源都映射成url地址,此时为了能访问到项目文件夹下的资源必须通过在请求路径里加上文件夹名即上下文路径。而springboot项目默认...原创 2019-09-02 09:37:31 · 6837 阅读 · 1 评论 -
转发和重定向的区别
1,转发是服务器内部进行转发,用户只发起一次请求,浏览器无法感知服务器的转发,转发发起的路径从上下文路径开始。转发浏览器地址栏路径不变。2,重定向是服务器想浏览器发送重定向信息,浏览器进行重定向。重定向浏览器发起两次请求,重定向的URL地址由浏览器进行解析。重定向浏览器地址栏发生变化。3,转发。。request.getRequestDispatcher("/路径").forward(req...原创 2019-09-02 09:38:14 · 73 阅读 · 0 评论 -
Tomcat的三个端口
以Tomcat7.0为例, 在安装目录下. conf/server.xml 中可以配置三个端口号, 如果使用多个tomcat 是需要配置这三个.1,该Connector用于监听请求.protocol: HTTP/1.1协议 ,用于监听浏览器发送的请求. 设置成80 后可以直接使用http://localhost 访问connectionTimeout: 连接超时时...转载 2019-09-02 09:39:12 · 1244 阅读 · 0 评论 -
spring-boot项目在外部tomcat环境下部署
spring-boot项目在外部tomcat环境下部署spring-boot默认提供内嵌的tomcat,所以打包直接生成jar包,用java -jar命令就可以启动。但是,有时候我们更希望一个tomcat来管理多个项目,这种情况下就需要项目是war格式的包而不是jar格式的包。spring-boot同样提供了解决方案,只需要简单的几步更改就可以了,这里提供maven项目的解决方法:...转载 2019-09-02 09:39:59 · 71 阅读 · 0 评论 -
如何隐藏tomcat命令窗口
如何隐藏tomcat命令窗口有两种方法:一、修改tomcat中的文件参数,达到隐藏目的:引用:TOMCAT_HOME\bin\setclasspath.bat在文件的底部找到以下内容:Java代码 : set_RUNJAVA="%JRE_HOME%\bin\java" 并修改为: set_RUNJAVA="%JRE_HOME%\bin\jav...转载 2019-09-02 09:41:07 · 556 阅读 · 0 评论 -
理解servlet的运行原理
在JavaWeb学习研究中,Servlet扮演重要的作用,学好它,是后续JavaWeb学习的良好基础。无论是SSH,还是SSM,微服务JavaWeb技术,都应先学好Servlet,从而达到事半功倍的效果,本篇将主要分析Servlet的运行原理。一、UML下图为Servlet UML关系图。从图中,可以看出:1. 抽象类HttpServlet继承抽象类Gener...转载 2019-09-02 09:44:42 · 334 阅读 · 0 评论 -
JAVA线程池
Java 5以前,需要手动创建自己的线程池;Java 5开始,新增了Executors工厂类产生线程池。使用线程池执行线程任务的步骤如下:1.调用Executors 类的静态方法newFixedThreadPool(int nThreads),创建一个可重用的、具有固定线程数的线程池ExecutorService对象2.创建Runnable实例,作为线程执行任务3....原创 2019-09-02 09:46:12 · 71 阅读 · 0 评论