自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(125)
  • 收藏
  • 关注

原创 mybatis汇总

<sql id="Base_Column_List"> id, user_id, comp_name, years, title </sql> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer"> select <include refid="Base_Column_List" /> from t_job_

2023-09-23 09:57:17 136

原创 通过ip信息获取电脑mac地址: 插网线时的mac 蓝牙的mac 无线网卡mac 各种虚拟机的mac

public class MACAddress {public static String callCmd(String[] cmd) { String result = ""; String line = ""; try { Process proc = Runtime.getRuntime().exec(cmd); InputStreamReader is = new InputStreamReader(proc.getInputStream()

2023-09-23 09:56:13 251

原创 利用表驱动优化条件判断嵌套

简单的代码实例(原有代码只需要根据,代码实例可以改造,添加业务逻辑处理)

2023-09-14 13:23:45 104

原创 总结mysql

什么是MVCC?多版本并发控制:读取数据是通过一种类似于快照的方式将数据保存下来,这样读锁和写锁就不冲突了,不同的事物session会看到自己特定的版本数据,,版本链MVCC只在READCOMMITTED和Repeatable read两个隔离级别下工作,其它两个隔离级别和mvcc不兼容,因为读未提交总是读取最新的数据行,而不是符合当前事物版本的行数据,而SERIALIZABLE则会对所有的读取的行都加锁聚簇索引记录中有两个必要的隐藏列:trx_id:用来存储每次对某条聚簇索引记录进行修改时候的事物

2022-05-17 10:00:28 139

原创 2021-11-03

一次上下文切换CPU通过时间片分配算法来循环执行任务,当前任务执行一个时间片后会切换到下一个任务。但是,在切换前会保存上一个任务的状态,以便下次切换回这个任务时,可以再加载这个任务的状态。所以任务从保存到再加载的过程就是一次上下文切换。这就像我们同时读两本书,当我们在读一本英文的技术书时,发现某个单词不认识,于是便打开中英文字典,但是在放下英文技术书之前,大脑必须先记住这本书读到了多少页的第多少行,等查完单词之后,能够继续读这本书。这样的切换是会影响读书效率的,同样上下文切换也会影响多线程的执行速度。

2022-03-06 11:10:15 88

原创 线上环境总结

问题一①:由于项目采用分布式架构②:本人负责的服务与其它服务有交互③:其他人服务则微服务调用自己负责的服务(feigin调用)由以上的环境产生:上生产换季时候的时候,别人服务调不通,我负责的服务(作为一位开发,先是,确定,他调用我的接口,接口是否存在,因自己服务迅速定位,在哪个页面,证明问题不在自己服务这边,开始让另一个服务找自己的问题,经过一段时间调试,竟然是那边服务在path中拼接的是大写的服务名)。如下正常写法:错误的写法:问题二场景:①:配置中心统一由apollo管理②:因一

2021-12-10 10:21:10 562

原创 mysql总结(二)

性能相关的服务请求:是否达到性能最佳;为什么执行不快;用户描述的卡顿、堆积、卡死,间歇性的;性能相关的问题:每秒查询次数;CPU利用率;可扩展性;不同的场景理解不同正确来讲:性能即响应时间,非常重要的原则;数据库服务器目的:执行SQL语句(SELECT,UPDATE,DELTET等)CPU利用率不是性能优化可度量的目标(myIsam升级成InnoDB,会导致cpu利用率提高,响应时间短了)性能优化不能看成是提升每秒查询量(吞吐量的优化,这是性能优化的副产品)吞吐量的定义:单位时间的查询数量,对性

2021-09-30 10:16:39 84

原创 mysql总结(一)

mysql数据库引擎1. Archive引擎只支持Insert和select操作,5.1之前不支持索引,缓存所有的写并利用zlib对插入的进行压缩,myIsam表磁盘I/O更少。查全表扫描;适合日志和数据采集应用,做数据分析进行全表扫描。或者更快的Insert场景下使用。支持行级锁和专用的缓冲区,可实现高并发插入。在一个查询开始到结束之间,Archive引擎回阻止其他select执行,一致性读。批量插入之前对读的操作时不可见的。这种机制模仿了事务和MVCC特性。不是一个事务性引擎,是一个针对高速插入和

2021-05-15 11:11:20 92

原创 架构演进

大型网站系统特点:①:高并发,大流量②:高可用③:海量数据④:用户分布广⑤:安全环境恶劣⑥:需求快速变更,发布频繁⑦:渐进式发展网站初步:一台服务器解决所有(用户量小)随着网站业务发展,一台服务器不能满足需求:用户多导致性能越来越差,数据存储空间不足,应用和数据分开:数据库压力太大的时候:(网站架构优化)网站访问的特点和现实世界的财富分配一样遵循二八定律:80%的业务访问集中在20%的数据上。既然大部分业务访问集中在一小部分数据上,就把这小部分数据缓存在内存中,减少数据库的压力,提高整个万丈

2021-04-29 15:02:31 190 3

原创 分布式插件一(根据书籍总结)

等待顺序造成死锁阿姆达尔定律:P:程序中可并行部分的程序在单核上执行的时间占比N:标识处理器的个数(总核心数)S(N):程序在N个处理器(总核心数)相对在单个处理器(单核)中的速度提升比。这个公式告诉我们:可并行代码的比例决定你增加处理器(总核心数)速度上提升的上线。组成计算机的五要素:摩尔定律图:分布式结构示意图:为什么要有分布式系统:...

2020-11-27 17:25:49 144

原创 微信oauth2的认证

注意 @RequestMapping("/wxLoginInit") public void loginInit(HttpServletRequest request,HttpServletResponse response) throws IOException { /** *这儿一定要注意!!首尾不能有多的空格(因为直接复制往往会多出空格),其次就是参数的顺序不能变动 **/ //CommonUtil.APPID微信公众号的a

2020-11-27 17:23:16 655

原创 2020-11-13

这工位能干活吗?

2020-11-13 18:04:35 69

原创 js 获取地址栏参数

```javascript//英文获取地址栏的参数 function getQueryVariable(variable) { var query = window.location.search.substring(1); var vars = query.split("&"); for (var i=0;i<vars.length;i++) { var pair = vars[i].split("="); .

2020-05-27 14:55:12 300

原创 分布式插件二

使用硬件负载均衡:请求发起方和请求处理方中间有一个硬件负载均衡设备,所有请求必须经过这个设备。这种方式的特点:代价低,而且可控性较强。上面这种方式称为透明代理。此种方式存在两种不足:增加网络的开销(一方面指流量,一方面指延迟),如果使用了lvs的tun或者dr模式,那么从处理请求服务器上的返回结果会直接到请求服务的机器,不会再通过中间的代理,只有请求的数据包在过程中多了一次代理的转发...

2020-04-16 11:50:31 295 1

原创 虚拟机的回收算法英文标识

2020-04-16 11:48:18 134

原创 大型网站系统与中间件总结(一)

为什么要有分布式系统:升级单机处理能力的性价越来越低单机处理能力存在瓶颈出于稳定性和可用性的考虑单机处理能力:处理器Cpu,内存,磁盘和网路。我们都知道摩尔定律:当价格不变时,每隔18个月,集成电路上可容纳的晶体管数目会增加一倍性能也将会提升一倍,单颗处理器有自己的性能瓶颈,即使你花更多的钱,去 买计算能力也买不到的。强调分布系统的稳定性,可用性的提升:如果采用单...

2020-04-16 11:40:35 331

原创 下载图片返回信息乱码

图片下载①:不能使用ajax用来获取图片②:宜采用:window.location.href 或者 window.open() (直接拼接参数)当调用下载接口生效:出现:当然查看返回信息是返回一对乱码。出现错误信息的主要原因是:传递的有非法参数,如/ \ …等等。。。解决思路:①:替换你的tomcat版本越低越好(不推荐使用,毕竟不是自己个人项目)②:更改server....

2020-03-31 17:35:04 828

原创 springboot打成jar包读取外部配置文件

场景:做邮件发送(指定发给A,B,C),接受者实现可配置。实现:把A,B,C分别放置properties文件中,自己通过流读取:代码如下:程序测试可以读取到配置文件的内如(打成jar时候无法读取,查看路径没问题)//此时配置文件和项目同级目录。FileInputStream inputStream1 = new FileInputStream(new File(System.getPr...

2020-03-22 17:37:14 2436

原创 spring注解拦截Caused by: java.lang.NoClassDefFoundError: org/springframework/objenesis/SpringObjenesis

碰见此问题:①:看自己的代码是否有问题②:代码没有问题pom文件版本的问题改成一致。

2020-02-17 17:44:59 2590

原创 java虚拟机的基本机构

不同的java虚拟机,执行引擎是非常不同的:①:最简单的执行引擎是一次执行字节码。②:更快的引擎,更消耗内存,叫做叫即时编译器。③:自适应优化器④:由硬件芯片构成,它用本地方法执行字java节码,这种执行引擎实际上是内嵌在芯片里的。2:第一次执行的字节码会被编译成本地机器码,且被缓存,当方法被调用时可以重用。3.虚拟机开始的时候开始解释字节码,程序运行时记录其使用频繁的代码段,并且编译...

2020-01-29 17:40:54 200

原创 自己实现 超过指定时间返回null的数据库连接池

需求:自己实现一个数据库连接池,超过指定时间返回null。解决方案:以下自己总结的get线程池的思路放入线程池思路没写,就是先判断当前连接是否为connection=null,是null,把线程池放入集合中就行,集合自己声明,然后唤醒pool.notifyall代码思路:1.自己声明一个类实现Connection接口,并且通过无参构造创建一个连接(相当于new 自己声明类的实例),也...

2020-01-15 11:30:38 214

原创 java 拆两个字符串进行相加

实现以下代码的思路://先进行截取,把两个数截成3部分(相当于3个数)//让截取的相同部分的每一位进行相加//最后在把相同部分相加的结果与截取的第三部分相加,//其中会涉及相同部分最大项相加结果大于一的情况,会对此处做处理,//方法为截取的部分最小位直接加一,//加完一后还会涉及最小为是否大于10public static String getSum(String s1,String...

2020-01-14 15:26:56 718

原创 spring容器加载相关类图

根据spring的源码构造出此图:这是beans源码包下的xmlBeanFactory继承DefaultListableBeanFactory。AliasRegistry:定义对alias的简单增删改等操作SimpleAliasRegistry:主要使用map作为alias的缓存,并对接口AliasRegistry接口进行实现。SingletonBeanRegistry:定义对单例的注册...

2019-12-19 14:30:04 254

原创 三表联查

1.用户表(一对多 --------->中间表)2.请假类型表(一对一 ---------------->中间表)3.中间表中间表 mid------>用户表id中间表 type------>请假类型表(的)id一对多用collection一对一用assocation重点oftype 在此标签中有 collectionjavaType 在此...

2019-12-19 00:51:33 2803

原创 动态sql $和#的使用

servicImpl层: SqlSession sqlSession = sqlSessionFactory.openSession(); // 3.获取对应mapper TUserMapper mapper = sqlSession.getMapper(TUserMapper.class); String inCol = "id, user_name, real_name,...

2019-10-13 22:27:41 223

原创 ngix的配置

#设置用户#user nobody;#工作进程数worker_processes 1;#设置错误文件存放路径#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#设置pid存放路径(pid是控制系统中重要文件)#pid log...

2019-10-13 22:26:14 280

原创 汉字转拼音Demo

import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;import net.sourceforge.pinyin4...

2019-10-13 22:20:20 137

原创 数据库两列数据相互替换

工作中碰见一个问题就是把name列的值全部替换成project的值,开始思路UPDATE student SET NAME=project,project=NAME WHERE id IN(1,2,3,4,5)然而并没有成功出现了如图,只是把name列换成了project。第一张是原始数据,第二张是我执行完我开始思路的数据。SELECT * FROM student最后在网上查了一下...

2019-09-21 12:51:47 765

原创 pathVariable注解

spring3.0新加的功能,带占位符的URL@PathVariable 可以来映射URL 中的占位符到目标方法的参数中。通过@PathVariable可以将URL中占位符参数绑定到控制器处理方法的入参中@RequestMapping(“/testPahtVariable/{id}”)testPahtVariable(@PathVariable(“id”) Integer id)test...

2019-07-28 11:13:43 204

原创 mybatis添加成功后返回生成的id

只需要加入userGeneratedKeys=“true” keyProperty=“id” 相当于主键必须自动生成(这里指的是,mysql设置的自动递增),而不是java程序生成的(指传入的),假设非想要你直接取不就完了吗,没有必要用mybatis的啊。 <insert id="insert1" parameterType="TUser" useGeneratedKeys="true"...

2019-07-13 11:52:14 4238

原创 mybatis 中各种传参

1.map传参数:相当于serviceImpl层 Map<String, Object> params = new HashMap<String, Object>(); params.put("email", email); params.put("sex", sex); List<TUser> list1 = mapper.sele...

2019-07-13 11:29:50 235

原创 获取项目当前路径,上一级,下一级

public static void main(String[] args){Test2 test = new Test2();try {test.showURL();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public void showURL() thro...

2019-06-05 23:13:24 8000

原创 server2008 无法勾选中ftp服务

server2008 安装ftp时候无法安装上 。(正确流程和百度一样)当点击不了FTP服务的时候应该(此图是网上的截图,网上的截图让点击添加角色,其实不是,而是点击添加角色服务,会重新出现,还有自己 想选的FTP勾选)本人解决方案,不知你们所遇和我一样不一样。...

2019-03-11 21:50:12 221

原创 基于状态机乐观锁的实现

发货系统和订单系统基于Spring-Boot项目,其中springboot整合了mybatis,log4j2等 ,项目中使用到了generator代码生成工具,生成dao/domain/mapper.xml文件发货系统模拟(target-service)Controller层实现/** * @description: 模拟仓库发货类 * @author: fan * @create: ...

2019-02-26 10:17:14 331

原创 限时订单

限时订单实现方案(DelayQueue、ActiveMq)一、在各种电商网站下订单后会保留一个时间段,时间段内未支付则自动将订单状态设置为已过期。二、解决方案1、轮询数据库:实现一个定时器,每隔一段时间去检查一遍数据库里的所有订单,查看其状态是否是未支付并且已经到期。并修改这些数据的状态为已过期。 优点:方法简单,容易实现 缺点:订单状态处理不及时,轮询数据库的次数中可能很多都...

2019-02-26 10:16:23 419

原创 提升模糊查询效率方案

1、多字段like模糊查询优化:最常见的写法:where a like ‘%xx%’ or b like ‘%xx%’ or c like ‘%xx%’; 这种写法查询效率低,经过调查,下面的方法可以替代,并且效率高:1、如果like的关键字相同:where instr(nvl(a, ‘’)||nvl(b,’’)||nvl(c,’’), ‘xx’) &amp;gt; 0把要模糊查询的字段先...

2019-01-22 17:28:12 1602 1

原创 自定义HashSet

public class SxtHashSet { HashMap map; private static final Object PRESENT = new Object(); public SxtHashSet(){ map = new HashMap(); } public int size(){ return map.size(); } public ...

2018-12-16 16:44:19 102

原创 TestLock

package com.fan.juc;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * 一:用于解决多线程安全问题的方式: * * synchronized:隐试锁 * * 1 同步代码块 * * 2 同步方法 * * j...

2018-12-08 15:40:29 169

原创 TestForkJoinPool

package com.fan.juc;import java.util.concurrent.ForkJoinPool;import java.util.concurrent.ForkJoinTask;import java.util.concurrent.RecursiveTask;import javax.sound.midi.Instrument;import org.ju...

2018-12-08 15:36:20 121

原创 Spring配置

2018-12-05 13:52:49 115 1

空空如也

空空如也

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

TA关注的人

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