- 博客(28)
- 收藏
- 关注
原创 jvm 以及端口被占用问题
发生oom时自动dump文件配置:-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=heap.hprof配置堆的大小:-Xms10M -Xmx20M系统启动时,打印所有的jvm参数配置:-XX:+PrintFlagsFinal
2021-01-02 17:45:13 431
原创 AQS源码分析
ReentrantLock lock = new ReentrantLock(); lock.lock(); lock.unlock();lock();如果获取成功,则设置独占线程。获取结束。final void lock() { //通过cas获取锁成功 if (compareAndSetState(0, 1)) setExclusiveOwnerThread(Th...
2020-11-05 13:44:06 149
原创 ConcurrentHashMap的源码分析
putfinal V putVal(K key, V value, boolean onlyIfAbsent) {//key和value都不能为空 if (key == null || value == null) throw new NullPointerException(); //确保key的hash在整数最大范围之内。 int hash = spread(key.hashCode()); int binCount = 0;...
2020-11-02 11:33:38 157
原创 volatile :保证共享变量的可见性
如何保证可见性: 加入该关键字,编译时多了一个lock的汇编指令可见性到底是什么?线程a修改了共享变量i,线程b不能及时拿到最新的值,导致数据不一致。原因: 硬件层面:cpu,内存,i/o 的处理速度差别是很大的,所以会使用一些其他技术。 1.cpu增加高速缓存:L1,L2,L3。L1,L2是cpu私有的缓存。L1又分为指令缓存和数据缓存,cpu还有寄存器。L3是多个核心共享的缓存。 2.引入线程、进程概念利用cpu过剩资源 3.指令优化(重排序)。...
2020-10-25 12:35:19 301
原创 Synchronized锁的优化及实现原理
在jdk1.6之前,Synchronized是基于重量级锁实现的,就是说,当多个线程竞争同一把锁的时候,如果获取不到锁,线程就会阻塞,等待锁的释放,直到获取锁。Synchronized是jvm层面的锁。无锁->偏向锁->轻量级锁->重量级锁的升级是jvm实现的。偏向锁,轻量级锁 是无锁化实现的。轻量级锁是采用自旋(为什么用自旋,而不用挂起?因为大部分情况下,某个线程获取锁以后会很快释放锁,这个时候如果让线程挂起会消耗性能,所以使用自旋的方式获取锁性能更好。但是自旋后浪费cpu
2020-10-24 20:47:47 200
原创 2020-08-08
修改表空间大小alter tablespace system add datafile 'D:\Oracle\app\oracle\oradata\XE\system02.dbf' size 1000M
2020-08-08 22:21:19 88
原创 synchronized到底做了啥?
每一个线程都有自己的执行流,有自己的栈,有自己的缓存区域。当使用多线程编程时,经常回出现的问题就是并发访问,并发访问则会带来两个问题:竞态条件,内存可见性竞态条件,就是多个线程同时访问同一个资源的时候,最终的执行结果与执行的时序有关,有可能正确,也可能不正确。解决静态条件的几种方法:使用synchronized关键字,使用显示锁,使用原子变量内存可见性,就是当一个线程对一个资源修改后,其他线程不无法知道该资源被更改了。因为线程从主内存中获取到资源进行操作后并不会及时的同步到主内存,这样当其他
2020-07-23 17:16:00 246
原创 MySQL事务与锁
什么是数据库的事务?原子性Atomicity:通过事务日志实现回滚,undo log一致性Consistent:隔离性Isolation:持久性Durable:崩溃恢复,redo log查看是否开启SHOW VARIABLES LIKE 'autoc%'手动开启事务:两种方式begin;START TRANSACTION;结束事务:两种方式ROLLBACK;COMMIT;关闭事务set autocommit = off事务并发会带来什么问题脏读:读
2020-07-11 21:04:26 106
原创 索引创建和使用原理
索引到底是什么?alter table user add index idx_name (name); 在字段上创建索引数据库索引是数据库管理系统中一个排序的数据结构,以协助快速查询,更新数据表中的数据。数据是以文件的形式存放在磁盘上的。索引类型:Normal普通索引:unique唯一索引:比普通索引多一种约束:唯一主键索引:比唯一索引多一种约束,不能用空值Full Text全文索引:使用 where name like %北京%;匹配用不到索引,此时使用全文索引。索引.
2020-07-11 17:44:24 494
原创 MySQL执行流程与框架
1. 一条查询语句是怎么执行的?客户端与sql服务端的通信类型:同步,异步同步:请求发出之后一直等待,在获取结果之前不能做其他操作。使用连接池。异步:发出请求,会立马返回响应结果,数据会在执行完成后返回。异步会带来数据的混乱,并维护大量连接,所以一般会选择同步。客户端与sql服务端的连接方式:长连接,短连接长连接:可以在服务端持续的保持连接,减少创建和释放连接导致的消耗。使用连接池保存长连接。但是大量的长连接也会消耗性能,所以对不活跃的长连接要及时销毁,即设置超时时间。非交互式的..
2020-07-10 22:24:48 259
转载 MyBatis中如何通过继承SqlSessionDaoSupport来编写DAO(一)
转载:https://blog.csdn.net/renyaoyao_1215/article/details/70616082
2020-01-07 10:36:01 205
转载 控制配置类的加载顺序@AutoConfigureAfter
本文引用地址:https://www.jianshu.com/p/59e28ad9e738当您的项目处在以下情况的时候,我觉得这篇文章对您有一些帮助使用Springboot 1.5.4 及以上 (本人没有用过更低版本) 自动装配不能满足您的需求,需要自己简单的控制配置类加载顺序@AutoConfigureAfter 是 spring-boot-autoconfigure包下的注解其作...
2020-01-06 15:59:22 1994
转载 idea自动补全
1、选择setting设置-->Editor--->Live Templates2、点击右边的 + 号,如下图3、选择Template Group,填写Java4、点击右边+号,选择Live Template5、输入mainpublic static void main(String[] args){ $start$} start确定光标输入位置,也可以不填写。6、设置应用位置7、最后,点击 apply,点击ok,就生效了。这样我们写代码的时候,只要输入mai
2019-12-26 11:33:52 824
原创 WebMvcConfigurerAdapter、WebMvcConfigurer、WebMvcConfigurationSupport
WebMvcConfigurerAdapter是spring内部的一种配置方式,采用javabean的形式来代替传统的xml配置文件形式,进行针对框架个性化定制。常用方法:addInterceptors:添加拦截器addCorsMappings:解决跨域访问addViewControllers:跳转指定页面resourceViewResolver:视图解析器addResourc...
2019-12-24 15:38:52 211
转载 @PostConstruct
被@PostConstruct修饰得方法会在服务器加载Servlet得时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之后执行,init()方法之前执行。执行顺序:spring中Constructor 、@autowired 、@PostConstruct如:在对象A中,需要依赖注入B对象,则必须要A实例化完成之后,所以构造器A执行早于依赖注入Autowired ,...
2019-12-12 15:04:27 165
转载 好东西,转载自https://www.cnblogs.com/ndos/p/8299464.html
CSS选择器之伪类选择器(元素) :first-child 选择某个元素的第一个子元素(IE6不支持) :last-child 选择某个元素的最后一个子元素 :first-of-type [CSS3]选择一个上级元素下的第一个同类子元素 :last-of-type...
2019-12-10 15:46:21 464
原创 springboot配置数据源错误得几种原因分析及解决方式
Description:Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured.Reason: Failed to determine a suitable driver classAction:Consid...
2019-11-22 17:10:22 1875
原创 Caused by: org.xml.sax.SAXParseException: 文档根元素 "configuration" 必须匹配 DOCTYPE 根 "null"
Caused by: org.xml.sax.SAXParseException: 文档根元素 "configuration" 必须匹配 DOCTYPE 根 "null"。 at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrap...
2019-11-22 16:54:21 420
原创 导出到excle(三)(导出excel在项目中的应用)
package com.bjsxt.servlet;import java.io.IOException;import java.util.List;import java.util.Map;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.s...
2018-12-11 19:17:54 190
原创 导出到excel(二)多行多列
package excelDemo;import java.io.File;import java.io.FileOutputStream;import java.io.IOException;import java.io.OutputStream;import java.util.ArrayList;import java.util.List;import org.apach...
2018-12-11 17:02:36 661
原创 导出到excel(一)
从java中将数据导出到excle的步骤:1.创建Workbook对象:Wookbook wb = new XSSFWorkbook(); package excelDemo;import java.io.File;import java.io.FileOutputStream;import java.io.OutputStream;import or...
2018-12-11 16:32:03 175
原创 oracle数据库的一些操作
1.启动oracle服务,使服务器处于启动状态。dos命令下启动这一个就可以了。 dos命令下输入sqlplus ,如果提示输入账号、密码,说明安装成功 --如果忘记密码:使用免密登陆 1.1 dos窗口输入:conn/as sysdba 1.2 创建用户:create user 用户名 identified by 密码; --给用户授权:grant 权力/角色 to...
2018-12-06 18:37:38 285
原创 文件下载
package uploadDemo;import java.io.File;import java.io.IOException;import java.io.OutputStream;import javax.servlet.ServletException;import javax.servlet.annotation.WebServlet;import javax.ser...
2018-12-06 16:22:01 106
原创 jsp九大内置对象
Jsp的九大内置对象:pageContext:jsp的页面上下文对象,封存了另外其他8个对象,即封存了servlet运行的运行信息。一个jsp有一个pageContext对象。 request对象:封存当前请求数据的 session对象: application对象:就是servletContext对象。一个项目只有一个,存储用户共享的数据,作用域是整个项目内部。 response对象...
2018-12-06 16:09:06 125
原创 文件上传
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html><html><head><meta charset="UTF-8">&
2018-12-06 13:00:40 137
原创 EL表达式
EL表达式的作用:EL表达式主要用于获取servlet作用域中的值。在没有EL表达式之前,我们通常是通过<% %> 来获取作用域中的值,这样不利于于都和维护。语法:${EL表达式}运算符:+ - * / ...
2018-11-24 18:36:45 113
原创 jQuery学习
1.什么是jQuery? jQuery全称javaScript Query ,是js的一个框架,本质上依然是js.2.jQuery的封装原理?js的弊端:js是我们在编写前端所需要使用的一门脚本语言,但是js的全部代码区只有一个(即使我们使用外部引入或内部引入),编译器在编译的时候,依然会把外部引入和内部引入当成一个文件处理,这样编译后,当有两个同名变量时,后面的会把前面的覆盖掉。...
2018-11-24 18:25:14 122
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人