自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(41)
  • 资源 (2)
  • 收藏
  • 关注

转载 6 种 @Transactional 注解的失效场景

@Transactional 注解相信大家并不陌生,平时开发中很常用的一个注解,它能保证方法内多个数据库操作要么同时成功、要么同时失败。使用@Transactional注解时需要注意许多的细节,不然你会发现@Transactional总是莫名其妙的就失效了。

2022-09-29 09:31:06 380

原创 Java锁机制 & Syncronize锁优化

1.什么是锁?可以参考,美团技术团队《不可不说的Java“锁”事》多个线程在竞争一个资源的时候,需要锁机制进行确保资源的使用权。当一个线程占有资源时,其他线程需要阻塞等待(如上图所示)Java是怎样实现锁机制的?线程共享的区域为:堆 + 方法区(1)Java堆:所有线程共享的一块内存区域,此内存区域最主要的目的是:存放对象实例,几乎所有对象实例都是在这里分配内存。(2)方法区:与Java堆一样,是各个线程共享的内存区域,他用于存储被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代

2021-12-02 11:03:43 528

原创 list转string字符串

JSONArray.toJSONString(list)可用于deleteByIds(String ids)Joiner.on(",").join(list)

2021-02-24 15:15:57 184

转载 数据库连接池

1.为什么要使用连接池?数据库连接资源昂贵且有限,一个数据库连接对象对应一个物理数据库连接,每次都打开一个物理连接,使用完都关闭连接,使得性能低。数据库连接池的解决方案是在应用程序启动时建立足够的数据库连接,并把这些连接组成一个连接池(简单说:在一个“池”里放了好多半成品的数据库连接对象),由应用程序动态地对池中的连接进行申请、使用和释放。对于多于连接池中连接数的并发请求,应该在请求队列中排队等待。并且应用程序可以根据池中连接的使用率,动态增加或减少池中的连接数。2.数据库连接池的工作原理第一、连

2020-09-20 14:11:47 309

原创 9/14湖南确信公司面试题

目录1.HTTP协议中的4xx,5xx状态码分别表示什么,重定向的状态码?2.什么是跨域?为什么浏览器会出现跨域问题?以及解决的办法。3.Java引用传递和值传递?4.static方法和default方法5.单例模式的实现方案,及其优缺点7.java中线程安全的集合容器9.线程池ThreadPoolExecutor中corePoolSize、maximumPoolSize及workQueue容量的关系1.HTTP协议中的4xx,5xx状态码分别表示什么,重定向的状态码?.

2020-09-15 18:21:58 242

原创 springMVCs数据绑定报错:No mapping found for HTTP request with URI(EL表达式解析)

No mapping found for HTTP request with URI1、修改web.xml <url-pattern>/*</url-pattern>为<url-pattern>/</url-pattern>(去掉*)2、给springmvc-servlet.xml添加<mvc:default-servlet-handler/>3、在Maven中添加“jstl”依赖<!-- https://mvnre..

2020-09-15 15:20:14 243

原创 maven基于注解的SpringMVC

1.搭建项目环境2.配置文件springmvc-servlet.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/sch

2020-09-11 16:23:27 124

原创 SpringMVC配置及运行错误记录

SpringMVC的JSP页面中EL表达式不起作用${}解决方法:在使用el表达式的jsp中配置:<%@page isELIgnored=”false” %>该设置代表在本jsp中使用el表达式,可以解析其中的值。若isELIgnored设置为true,代表在本页不使用el表达式,当做字符串解析出来显示。此时,el表达式正常工作,显示正常。isELIgnored默认值为true!所以才会出现这个问题!Could not open ServletContext resour.

2020-09-11 15:33:58 219

原创 垃圾收集算法

垃圾收集器的工作职责(John McCarthy, Lisp 语言)–什么内存需要收集(判定无用的对象)–什么时候回收(何时启动,不影响程序正常运行)–如何回收(回收过程,要求速度快/时间短/影响小)1. Reference counting(引用计数)–每个对象都有一个引用计数器 –有引用,计数器加一,当引用失效,计数器减 一–计数器为0的对象,将被回收优点:对程序的执行来说,每次操作只需要花费很小块的时间。(简单,效率高)这对于不能被过长中断的实时系统来说有着天然的优势缺点:无

2020-09-10 17:03:49 127

原创 JVM垃圾收集器:引用类型

对象存活在它最近的一对大括号Object的finalize方法,垃圾收集器在回收对象时调用,有且只被调用一次System的gc方法,运行垃圾回收器基于对象引用判断无用对象(零引用,互引用)对象引用链,依赖关系串联GC:Garbage CollectorGC Roots对象:–虚拟机栈中引用的对象–方法区中类静态属性引用的对象–方法区中常量引用的对象–本地方法栈中引用的对象对象引用强引用–例如Object obj = new Object(); Object

2020-09-10 15:30:39 144

原创 Mybtis与Spring的整合出现的问题

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException:### Error querying database. Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested excep.

2020-09-09 12:45:24 149

原创 JVM参数

一、JVM默认运行参数–支持JVM运行的重要配置,根据操作系统/物理硬件不同而不同–使用-java -XX:+PrintFlagsFinal -version | findstr HeapSizel 显示VM的参数二、程序启动的两类参数–程序参数:程序需要,存储在main函数的形参数组中–虚拟机参数:更改默认配置,用以指导进程运行三、堆(Heap)–共享,内存大户,存储所有的对象和数组–-Xms初始堆值,-Xmx最大堆值需要加大内存-Xmx40M四、JV.

2020-09-07 21:35:05 121

原创 JVM内存分类

目录JVM原理图Java自动内存管理JVM内存-线程私有内存–程序计数器(Program Counter Register)(存储当前方法)–Java虚拟机栈(JVM Stack)(方法的栈帧)–本地方法栈(Native Method Stack)(存储native方法信息)JVM内存-多线程共享内存–堆(Heap) (存储对象和数组)–方法区(Method Area)(存储类结构/常态/静态变量)–运行时常量池(Run-Time Constant Pool)(.

2020-09-07 21:16:28 202

原创 字节码

class文件(JVM生态体系的基础构成之一)字节码(bytecode)文件–class文件是Java“一次编译,到处运行”的基础–class文件具备平台无关性,由JVM执行–每个class文件包含了一个类或接口或模块的定义–class文件是一个二进制文件,由JVM定义class文件的规范–任何满足这种规范的class文件都会被JVM加载运行–class文件可以由其他语言编译生成,甚至不用程序语言直接生成–JDK版本不同,所编译出.class文件略有不同–字节码文件结

2020-09-07 20:06:36 171

原创 内存交互操作和happens-before

2020-09-06 21:08:21 79

原创 Java 类加载器

目录类加载过程类加载器ClassLoaderJVM四级类加载器(向上委托,下可用上,上不可用下)JVM四级类加载器的动态性类加载器双亲委托Java严格执行双亲委托机制双亲委托的补充自定义加载路径自定义类加载器类加载过程–加载(loading) –链接(linking) •验证(Verification),字节码是否满足规范要求 •准备(Preparation),分配内存,常量池初始化 •解析(Resolution),解析类/接口/字段/方法...

2020-09-05 21:14:58 222

原创 Volatile的了解及面试题

目录前言volatile的作用什么是内存可见性,什么是指令重排序?volatile如何防止指令重排volatile可以解决原子性嘛?为什么?并发编程3个特性?原子性可见性有序性volatile的内存语义volatile底层的实现机制volatile和synchronized, threadlocal 的区别前言java虚拟机提供的最轻量级的同步机制修饰变量,但不能是局部变量举个例子:public class Volatil...

2020-08-30 13:45:52 180

原创 建造者模式and模板模式

目录前言一、建造者模式介绍二、模板模式介绍总结前言建造者模式(Builder Pattern)使用多个简单的对象一步一步构建成一个复杂的对象。(创建模式)在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。(行为模式)一、建造者模式介绍意图:将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。主要解决:主要解决在软件系统中,有时候

2020-08-30 11:02:06 353

原创 创建型模式----工厂模式and抽象工厂模式

工厂模式在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来指向新创建的对象。意图:定义一个创建对象的接口,让其子类自己决定实例化哪一个工厂类,工厂模式使其创建过程延迟到子类进行。主要解决:主要解决接口选择的问题。何时使用:我们明确地计划不同条件下创建不同实例时。如何解决:让其子类实现工厂接口,返回的也是一个抽象的产品。关键代码:创建过程在其子类执行。步骤:创建一个接口(形状shape); 创建实现接口的实现类(各种形状)。 创建一个

2020-08-29 21:15:58 143

原创 创建型模式----单例模式

SqlSessionFactory对象是线程安全的,它一旦被创建, 在整个应用执行期间都会存在。如果我们多次地创建同一个数据库的SqlSessionFactory,那么此数据库的资源将很容易被耗尽。为了解决此问题,通常每-个数据库都会只对应一个SqlSessionFactory,所以在构建SqlSessionFactory实例时,建议使用单列模式。今天我们就来谈谈单例模式这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建(只创建一个对象)。这个类提供了一种访问其唯一的.

2020-08-28 15:50:12 235

原创 Stream--介绍及Strea--创建

Stream流–a sequence of elements from sourcethat supports aggregate operations–sequence of elements: 一个流对外提供一个接口,可以访问到一串特定的数据。流不存储元素,但是可以根据需要进行计算转化–source:数据来源,如数据结构,数组,文件等–aggregate operation:聚合操作,流支持像SQL操作或者其他函数式语言的操作,如filter/map/reduce/find/match/so

2020-08-27 12:56:19 409

原创 node.js面试准备

1.为什么使用 Node ?简单,强大,轻量,可扩展简单体现在node使用的是 javascript、json 来进行码,人人都会; 强大体现在非阻塞IO,可以适应分块传输数据,较慢的网络环境,尤其擅长高并发访问; 轻量体现在 node 本身既是代码,又是服务器,前后端使用统一语言; 可扩展体现在可以轻松应对多实例,多服务器架构,同时有海量的第三方应用组件.2.你是怎么理解 node 的非阻塞?node 的特点是非阻塞异步处理 提到异步有一个很好的例子,就是你在烧水的同时还在写作业,然后

2020-08-26 21:50:42 135

原创 maven报错:‘Creating maven-archetype-quickstart‘ has encountered a problem.

'Creating maven-archetype-quickstart' hasencountered a problem.1.把setting.xml中镜像mirrors注释掉,让其从中央库下载

2020-08-24 11:42:40 917

原创 通俗理解TCP/IP协议

介绍TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称为TCP/IP协议,2.层级结构TCP/IP协议分为四层(也就是数据传输一次主要经历以下4个步骤),分别是从上到下为:..

2020-08-22 13:06:06 848

原创 MIME Type(资源的媒体类型)Content-Type

浏览器显示的内容都有 HTML、XML、GIF、Flash 等,浏览器是通过 MIME Type 区分它们,决定用什么内容什么形式来显示。MIME Type 是该资源的媒体类型,MIME Type 不是个人指定的,是经过互联网(IETF)组织协商,以 RFC(是一系列以编号排定的文件,几乎所有的互联网标准都有收录在其中) 的形式作为建议的标准发布在网上的,大多数的 Web 服务器和用户代理都会支持这个规范 (顺便说一句,Email 附件的类型也是通过 MIME Type 指定的)。媒体类型通常通过 .

2020-08-22 12:52:28 1336

原创 HTTP(Hyper Text Transfer Protocol(超文本传输协议))

HTTP 简介用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)基于客户端/服务端(C/S)的架构模型HTTP 工作原理1.请求浏览器作为–HTTP客户端–通过URL向–HTTP服务端–即WEB服务器发送所有请求2.响应Web服务器根据接收到的请求后,向客户端发送响应信息。//HTTP默认端口号为803.http是无连接的(每次连接只能处理一个请求):服务.

2020-08-21 17:35:40 735

原创 线程之终止线程

结束线程有两种方式:(1)、自然消亡线程从run()方法的结尾处返回,自然消亡不会再调用pubie class HelloWorld extends Thread ( private boolean flag=true; //跳出循环标记量 public boolean isFlag(){ //标记量取值 return this.flag; } public void setFlag(boolean flag){ //标记量赋值 this. flag=flag;} pu

2020-08-17 21:48:08 318

原创 json 之JSONP 应用-跨域读取数据

Jsonp(JSON with Padding) 是 json 的一种"使用模式",可以让网页从别的域名(网站)那获取资料,即跨域读取数据。因同源策略,我们从不同的域(网站)访问数据需要一个JSONP技术1. 服务端 JSONP 格式数据如客户想访问 : https://www.baidu.com/try/ajax/jsonp.php?jsoncallback=callbackFunction。假设客户期望返回数据:["customerName1","customerName2"]。.

2020-08-17 17:34:18 257

原创 JSON 解析器

由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误:var obj = eval ("(" + txt + ")");<body><p>网站名: <span id="name"></

2020-08-17 17:25:42 216

原创 Node.js 文件系统

Node.js 文件系统var fs = require("fs")异步的 fs.readFile()和同步的 fs.readFileSync()。异步的方法函数最后一个参数为回调函数,回调函数的第一个参数包含了错误信息(error)。建议大家使用异步方法,比起同步,异步方法性能更高,速度更快,而且没有阻塞。var fs = require("fs");// 异步读取fs.readFile('input.txt', function (err, data) { if (err.

2020-08-13 11:08:33 117

原创 Node.js 之6个常用工具

Node.js 常用工具const util = require('util');util.callbackifyutil.callbackify(original) 将 async 异步函数(或者一个返回值为 Promise 的函数)转换成遵循异常优先的回调风格的函数。例如将 (err, value) => … 回调作为最后一个参数。 在回调函数中,第一个参数为拒绝的原因(如果 Promise 解决,则为 null),第二个参数则是解决的值。回调函数是异步执行的,并且有异.

2020-08-13 10:54:57 156

原创 Node.js 全局对象 global __filename __dirname

在浏览器 JavaScript 中,通常 window 是全局对象, 而 Node.js 中的全局对象是 global,所有全局变量(除了 global 本身以外)都是 global 对象的属性。在 Node.js 中你不可能在最外层定义变量,因为所有用户代码都是属于当前模块的, 而模块本身不是最外层上下文。注意: 最好不要使用 var 定义变量以避免引入全局变量,因为全局变量会污染命名空间,提高代码的耦合风险。__filename__filename 表示当前正在执行的脚本的文..

2020-08-13 10:36:04 327

原创 Node.js Stream(流)

从流中读取数据var fs = require("fs");var data = '';// 创建可读流var readerStream = fs.createReadStream('input.txt');// 设置编码为 utf8。readerStream.setEncoding('UTF8');// 处理流事件 --> data, end, and errorreaderStream.on('data', function(chunk) { data += chunk

2020-08-12 10:10:40 125

原创 索引面试题复习

一、什么是索引?一种用于提升查询效率的数据库对象;通过快速定位数据的方法,减少磁盘I/O操作;索引信息与表独立存放;ORACLE数据库自动使用和维护索引;二、索引的分类唯一性索引;非唯一性索引;三、索引的创建自动创建:在定义主键或唯一键约束时系统会自动在相应的字段创建唯一性索引;手动创建:用户可以在其他列上创建非唯一性索引;四、索引优缺点优点:1.大大加快数据的检索速度;2.创建唯一性索引,保证数据库表中每一行数据的唯一性;3.加速表和表之间的连接;4.在使用分组和排序子句进

2020-08-12 10:01:04 665

原创 将 Buffer 转换为 JSON 对象(node.js)

const buf = Buffer.from([0x1, 0x2, 0x3, 0x4, 0x5]);const json = JSON.stringify(buf);// 输出: {"type":"Buffer","data":[1,2,3,4,5]}console.log(json);const copy = JSON.parse(json, (key, value) => { return value && value.type === 'Buffer' ?

2020-08-06 12:54:56 2420

原创 Node.js Buffer(缓冲区)

Node.js Buffer(缓冲区)JavaScript 语言自身只有字符串数据类型,没有二进制数据类型。但在处理像TCP流或文件流时,必须使用到二进制数据。因此在 Node.js中,定义了一个 Buffer 类,该类用来创建一个专门存放二进制数据的缓存区。Buffer 与字符编码Buffer 实例一般用于表示编码字符的序列,比如 UTF-8 、 UCS2 、 Base64 、或十六进制编码的数据。 通过使用显式的字符编码,就可以在 Buffer 实例与普通的 JavaScript 字符

2020-08-06 12:50:08 214

原创 EventEmitter 类 Node.js

Node.js EventEmitterEventEmitter 类events 模块只提供了一个对象: events.EventEmitter。EventEmitter 的核心就是事件触发与事件监听器功能的封装。你可以通过require(“events”);来访问该模块。// 引入 events 模块var events = require('events');// 创建 eventEmitter 对象var eventEmitter = new events.EventEmitter();

2020-08-06 12:34:20 219

原创 MySQL 处理重复数据、删除重复数据和统计重复数据

MySQL 处理重复数据和统计重复数据INSERT IGNORE INTOINSERT IGNORE 会忽略数据库中已经存在的数据,如果数据库没有数据,就插入新的数据,如果有数据的话就跳过这条数据。这样就可以保留数据库中已经存在数据,达到在间隙中插入数据的目的。.INSERT IGNORE INTO 当插入数据时,在设置了记录的唯一性后,如果插入重复数据,将不返回错误,只以警告形式返回。REPLACE INTOREPLACE INTO 如果存在 primary 或 u

2020-08-03 21:35:01 363

原创 MySQL 复制表

MySQL 复制表如果我们需要完全的复制MySQL的数据表,包括表的结构,索引,默认值等。 如果仅仅使用CREATE TABLE … SELECT 命令,是无法实现的。来给大家区分下mysql复制表的两种方式。第一、只复制表结构到新表create table 新表 select * from 旧表 where 1=2或者create table 新表 like 旧表 第二、复制表结构及数据到新表create table新表 select * from 旧表 复制MySQL数据

2020-08-02 11:21:09 153

原创 MySQL 临时表

MySQL 临时表MySQL 临时表在我们需要保存一些临时数据时是非常有用的。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。 如果你使用了其他MySQL客户端程序连接MySQL数据库服务器来创建临时表,那么只有在关闭客户端程序时才会销毁临时表,当然你也可以手动销毁。 用查询直接创建临时表的方式:CREATE TEMPORARY TABLE 临时表名 AS( SELECT * FROM 旧的表名 [where]... [limit]).

2020-08-02 11:11:15 220

ourMusic (2).zip

java swt 窗口 音乐播放器 MP3模式 图片验证码 发送电子邮件验证码 不懂可以留言 谢谢交流

2020-04-02

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除