- 博客(140)
- 收藏
- 关注
原创 Java知识体系最强总结(2020版)
本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同进步,结交更多志同道合的朋友。特此分享给大家,本人见识有限,写的博客难免有错误或者疏忽的地方,还望各位大佬指点,在此表示感激不尽。整理的Java知识体系主要包括基础知识,工具,并发编程,数据...
2020-03-07 08:35:51 10307
原创 MyBatis 插件之拦截器(Interceptor),拦截查询语句
一.背景在很多业务场景下我们需要去拦截sql,达到不入侵原有代码业务处理一些东西,比如:分页操作,数据权限过滤操作,SQL执行时间性能监控等等,这里我们就可以用到Mybatis的拦截器Interceptor二.Mybatis核心对象介绍从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个:Configuration 初始化基础配置,比如MyBatis的别名等,一些重要的类型对象,如,插件,映射器,ObjectFactory和typeHandler对象,MyBatis所有的配置
2021-12-09 11:02:31 4930
原创 一款基于DDD(领域模型驱动开发利器)开发模式的工程框架及代码生成器 快速使用教程
现如今,作为开发人员,其实无形中需要做大量的重复工作,即无数的开发人员面临着一个问题---重复造轮子。是否有一种方式可以替软件开发人员省去这些繁杂对的工作,提高开发效率呢?答案是肯定的,今天,小三就为大家介绍一看超级实用又简单的代码生成器。不仅可以生成可即时运行的代码框架,还能够一键生成全套的增删改查的代码。书归正传,话不多上,直接上实用教程。一 、下载代码:https://gitee.com/amjt/ddd-generator?_from=gitee_search如图点击下载,下载代码到本地...
2021-12-01 15:09:43 1867
原创 Vue开发环境和服务器部署的跨域问题解决方案
开发环境中,由于域名ip端口的不同会遇到跨域的问题,此时我们需要配置代理服务,在根目录新增 vue.config.js 文件。module.exports = { devServer: { proxy: { '/api': { target: 'http://107.10.128.59:8082/', //接口域名 changeOrigin: true, //是否跨域
2021-10-29 16:46:22 3438
原创 element UI el-table 表格的 slot-scope=“scope“插槽不生效
element UI el-table 表格的 slot-scope="scope"插槽不生效https://segmentfault.com/q/1010000018712853// 不生效的插槽是这样的<el-table-column align="center" prop="position" width="270" label="位置"> <template slot-scope="scope"> <div cl
2021-10-24 21:21:32 20454 7
原创 springboot项目中pom依赖已经删除了但是maven上还是报红线_在IntelliJ IDEA中导入Maven的依赖项...
IntelliJ IDEA 导入依赖的问题需要从subversion导入一个项目 - 这是一个maven项目。但是我在处理maven库依赖时遇到了问题,这导致不能自动地包含所有的maven依赖项 - 当我打开该类时,IDEA显示依赖错误。问题如下图所示:想让所有的依赖关系被自动添加 - 这是否可行?还是说必须要通过所有的类文件来识别和添加maven依赖?经过一些尝试,做了一些修改之后,发现了解决上述问题的一种可行方式,如下图所示:但是,它不会提前引入和检查新的依赖关系吗?!…在intelliJ
2021-10-10 10:52:53 1663
原创 阿里云 服务器 部署项目 连接 同一台服务器 mysql 数据库失败 Communications link failure
现象描述:阿里云 服务器安装了mysql 数据库,在同一台服务器发布项目。本地电脑idea 启动项目 和cmd 启动项目都能正常启动,可以连接到数据库,本地电脑 navicat 也能访问阿里云数据库。连接信息配置如下spring: datasource: type: com.alibaba.druid.pool.DruidDataSource druid: driver-class-name: com.mysql.cj.jdbc.Driver url: j
2021-10-03 11:26:29 606
原创 linux创建数据库以及数据库用户密码
一、登录数据库用户名密码 使用root账号登录mysql -uroot -p输入密码:xxx二、创建用户create user 's_root'@'%' identified by '123456'; (%表示 可以远程登录该数据库)如果提示 :ERROR 1819 (HY000): Your password does not satisfy the current policy requirements这是由于密码太简单导致的,有两种解决方式,1、修改数据库密码配置规则,但是不
2021-10-03 11:09:56 1941
原创 亚信离职后,彻底卸载亚信安全助手
1.确定电脑已经安装了这个垃圾查看这个流氓进程的运行文件目录:打开任务管理器,UniAccessAgent进程存在,查看进程位置指向 C:\Windows\LVUAAgentInstBaseRoot (看不到任何文件,好家伙,这程序直接把自己隐藏了,内行直呼 流氓)2.禁用服务禁用自动启动Uni开头的服务如果不禁用的话,等下还是会启动的,即便是进入安全模式,也会自动启动打开任务管理把UniAccessAgent,UniAccessAaentDaemon启动类型改为禁用:3.以管理员身
2021-10-02 10:33:31 21049 18
原创 SpringBoot+WebSocket基于Redis订阅发布实现集群化
https://www.cnblogs.com/cnsyear/p/12638121.html
2021-08-19 15:08:05 381
原创 一篇文章彻底讲解清楚 Spring依赖注入,控制反转
要了解控制反转( Inversion of Control ), 我觉得有必要先了解软件设计的一个重要思想:依赖倒置原则(Dependency Inversion Principle )。什么是依赖倒置原则?假设我们设计一辆汽车:先设计轮子,然后根据轮子大小设计底盘,接着根据底盘设计车身,最后根据车身设计好整个汽车。这里就出现了一个“依赖”关系:汽车依赖车身,车身依赖底盘,底盘依赖轮子。这样的设计看起来没问题,但是可维护性却很低。假设设计完工之后,上司却突然说根据市场需求的变动,要我们把车子的轮子
2021-05-07 10:49:06 159
原创 阿里P8大佬总结:Java线程池详解,看了你就懂
本篇文章主要介绍了线程池作用、如何创建线程池、自定义线程工厂和拒绝策略以及深入分析不推荐直接使用Executors静态工厂直接创建线程池的缘由,让大家可以对线程池有个更深刻的认识,而不是只停留在盲目去用的层面。线程池的必要性及作用线程能够充分合理地协调利用CPU、内存、I/O等系统资源,但是线程的创建需要开辟虚拟机栈、本地方法栈、程序计数器等线程私有空间,在线程销毁时需要回收这些系统资源。频繁地创建和销毁线程会大大浪费系统资源,这时候就需要线程池来管理线程,提高线程的复用(当然线程的作用并不仅于此)。
2021-04-29 09:47:43 289
原创 Apache集合处理工具类的使用
Commons Collections增强了Java Collections Framework。 它提供了几个功能,使收集处理变得容易。 它提供了许多新的接口,实现和实用程序。 Commons Collections的主要功能如下Bag - Bag界面简化了每个对象具有多个副本的集合。BidiMap - BidiMap接口提供双向映射,可用于使用值使用键或键查找值。MapIterator - MapIterator接口提供简单而容易的迭代迭代。Transforming Decorators - 转
2021-02-03 10:28:21 850
原创 JVM内存结构 VS Java内存模型 VS Java对象模型
Java作为一种面向对象的,跨平台语言,其对象、内存等一直是比较难的知识点。而且很多概念的名称看起来又那么相似,很多人会傻傻分不清楚。比如本文我们要讨论的JVM内存结构、Java内存模型和Java对象模型,这就是三个截然不同的概念,但是很多人容易弄混。可以这样说,很多高级开发甚至都搞不不清楚JVM内存结构、Java内存模型和Java对象模型这三者的概念及其间的区别。甚至我见过有些面试官自己也搞的不是太清楚。不信的话,你去网上搜索Java内存模型,还会有很多文章的内容其实介绍的是JVM内存结构。首先,这三
2021-01-25 17:28:25 159
原创 再有人问你Java内存模型是什么,就把这篇文章发给他
前几天,发了一篇文章,介绍了一下JVM内存结构、Java内存模型以及Java对象模型之间的区别。有很多小伙伴反馈希望可以深入的讲解下每个知识点。Java内存模型,是这三个知识点当中最晦涩难懂的一个,而且涉及到很多背景知识和相关知识。网上有很多关于Java内存模型的文章,在《深入理解Java虚拟机》和《Java并发编程的艺术》等书中也都有关于这个知识点的介绍。但是,很多人读完之后还是搞不清楚,甚至有的人说自己更懵了。本文,就来整体的介绍一下Java内存模型,目的很简单,让你读完本文以后,就知道到底Java内
2021-01-25 17:05:15 204
原创 Java源代码编译过程
编译其本质是将一种语言规范转换成另一种语言规范,即将Java语言规范转换为JVM虚拟机语言规范。结果就是.java文件到.class文件。对于C/C++编译直接将高级语言转换为机器语言,Java语言不是采用这种策略,而是将高级语言编译成一种中间态的语言–与平台无关,其执行过程是依靠对应平台的JVM在执行时刻逐条的将字节码指令转换为对应的机器语言,为了提高转换速度存在JIT技术。二、javac编译的具体过程源码–>Token流–>语法树–>注释语法树–>字节码文件词法分析:扫
2021-01-13 16:30:29 337
原创 JVM---汇编指令集
《JVM指令助记符》变量到操作数栈:iload,iload_,lload,lload_,fload,fload_,dload,dload_,aload,aload_操作数栈到变量:istore,istore_,lstore,lstore_,fstore,fstore_,dstore,dstor_,astore,astore_常数到操作数栈:bipush,sipush,ldc,ldc_w,ldc2_w,aconst_null,iconst_ml,iconst_,lconst_,fconst_,dcons
2021-01-13 15:58:54 1106
原创 位运算(按位与、按位或、异或)
按位与运算符(&)参加运算的两个数,按二进制位进行“与”运算。运算规则:只有两个数的二进制同时为1,结果才为1,否则为0。(负数按补码形式参加按位与运算)即 0 & 0= 0 ,0 & 1= 0,1 & 0= 0, 1 & 1= 1。例:3 &5 即 00000011 & 00000101 = 00000001 ,所以 3 & 5的值为1。按位或运算符(|)参加运算的两个数,按二进制位进行“或”运算。运算规则:参加运算的两个数只
2021-01-13 15:49:54 550
原创 JVM参数配置大全
前阵子遇到几个面试题都是关于对Java内存控制的,因此从网上找到这篇文章,希望自己对Java的内存分配有重新的认识/usr/local/jdk/bin/java -Dresin.home=/usr/local/resin -server -Xms1800M -Xmx1800M -Xmn300M -Xss512K -XX:PermSize=300M -XX:MaxPermSize=300M -XX:SurvivorRatio=8 -XX:MaxTenuringThreshold=5 -XX:GCTimeRa
2020-12-08 21:43:17 388
原创 BeyondCompare4 过期解决方法
修改C:\Program Files\Beyond Compare 4\BCUnrar.dll,这个文件重命名或者直接删除,则会新增30天试用期,再次打开提示还有28天试用期一劳永逸,修改注册表1)在搜索栏中输入 regedit ,打开注册表删除项目:计算机\HKEY_CURRENT_USER\Software\ScooterSoftware\Beyond Compare 4\CacheId...
2020-11-23 14:54:56 2018
原创 Navicat Premium 查询sql文件保存位置在哪里?
如果数据库远程连接连不上,急需保存的sql查询怎么办!没关系,看下面教程?1、右键编辑数据库连接,打开高级,里面有个设置位置,这个位置就是和保存下的查询位置有关系。2、将上面的连接复制到电脑文件中,找到自己想要查找的数据库,我的就是ACCTDB数据库,点击ACCTDB进去,就会发现里面有保存下来的查询语句了。...
2020-07-28 14:53:09 5692
原创 如何找到主机上发布的服务
通过端口找进程,通过进程找查询通过服务 在zk上找到服务的湍口:lsof -i:portnetstat -nap| grep portps -ef |grep 进程
2020-07-01 09:03:28 299
原创 【Windows CMD】设置编码格式 (UTF-8)
windows 命令行CMD 默认的编码格式是gbk编码格式(codepage编码表编号:cp936)。但对于某些情况下gbk解码会产生乱码,希望将CMD的编码格式修改成英文或者utf-8格式。CMD自带的chcp命令就可以实现。1.chcpchcp命令是Changes the active console code page的缩写,可以修改当前终端CMD的编码页。首先来看一下它的使用方法chcp /?显示或设置活动代码页编号。CHCP [nnn]nnn 指定代码页编号。不带.
2020-06-17 10:52:28 5039
原创 Java工程师成神之路
一、基础篇1.1 JVM1.1.1. Java内存模型,Java内存管理,Java堆和栈,垃圾回收http://www.jcp.org/en/jsr/detail?id=133http://ifeve.com/jmm-faq/1.1.2. 了解JVM各种参数及调优1.1.3. 学习使用Java工具jps, jstack, jmap, jconsole, jinfo, jhat, javap, …http://kenai.com/projects/btracehttp://www.crash
2020-06-06 16:28:30 451
原创 1000 道 互联网 大厂 Java 工程师面试题
互联网 Java 工程师面试题内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈MyBatis 面试题1、什么是 Mybatis?1、Mybatis 是一个半 ORM(对象关系映射)框架,它内部封装了 JDBC,开发时只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建st
2020-06-05 10:33:04 1470
原创 mybatis 实现某个字段不为某个特定值时再更新,否则保持原来值不变
数据如下:当该条数据的 state=2 时,状态值不更新;否则,state 更新为传入的值:sql 如下:<update id="updateState" parameterType="java.util.Map" flushCache="true"> UPDATE bf_yzf_subsidy_sync_t t1 INNER JOIN (SELECT CASE WHEN state='2' THEN '2' ELSE #{state} END AS newstate
2020-05-25 19:29:42 5091
原创 spring事务传播机制和隔离级别
一、spring事务的7种传播机制1、PROPAGATION_REQUIRED若当前存在事务,则加入该事务,若不存在事务,则新建一个事务。class C1(){ @Transactional(propagation = Propagation.REQUIRED) function A(){ C2.B(); }} class C2(){ @Transactional(propagation = Propagation.REQUIRED) fu
2020-05-15 10:00:47 3459
原创 事务 PlatformTransactionManager
1.事务三大接口PlatformTransactionManager 事务管理器TransactionDefinition 事务的一些基础信息,如超时时间、隔离级别、传播属性等TransactionStatus 事务的一些状态信息,如是否一个新的事务、是否已被标记为回滚2.PlatformTransactionManagerpublic interface PlatformTransactionManager { //根据事务定义TransactionDefinition,获取事务
2020-05-13 17:10:56 5964
原创 BIO、NIO和AIO的区别、三种IO的原理与用法
IO什么是IO? 它是指计算机与外部世界或者一个程序与计算机的其余部分的之间的接口。它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的。单独的程序一般是让系统为它们完成大部分的工作。在 Java 编程中,直到最近一直使用 流 的方式完成 I/O。所有 I/O 都被视为单个的字节的移动,通过一个称为 Stream 的对象一次移动一个字节。流 I/O 用于与外部世界...
2020-05-07 13:39:02 5461
原创 接口为什么不能有构造函数
下面比较一下两者的语法区别:1.抽象类可以有构造方法,接口中不能有构造方法。2.抽象类中可以有普通成员变量,接口中没有普通成员变量3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。抽象类中的抽象方法的访问类型可以是public,protected和(默认类型,虽然eclipse下不报错,但应该也不行),但接口中的抽象方法只能是public类...
2020-05-06 15:18:05 6412
原创 最有效的 Beyond Compare4 过期解决方法
修改注册表1、在搜索栏中输入 regedit ,打开注册表2、删除项目CacheId :HKEY_CURRENT_USER\Software\Scooter Software\Beyond Compare 4\CacheId
2020-04-29 10:15:47 716
原创 spring boot的默认配置文件在哪里?
例如mybatis,在yml中添加配置信息,就可以使用mybatis了。问题是yml中配置是如何来的?可以通过以下方式找到:我们都知道springboot的开发者,把一些我们常用的开发环境进行了默认的配置,拿这些配置文件在哪里呢, 我们在开发springboot的项目时是依赖maven进行开发的。导入的依赖包都在 Maven Dependenceis 中 在我们导入的依赖都是jar包,默...
2020-04-27 08:11:21 7283
原创 System.exit(0)和System.exit(1)区别
查看java.lang.System的源代码,我们可以找到System.exit(status)这个方法的说明,代码如下: /** * Terminates the currently running Java Virtual Machine. The * argument serves as a status code; by convention, a nonzero s...
2020-04-26 09:45:10 190
原创 优秀高效能人士建立生活秩序的7个好习惯
比如:时间管理的技巧,整理归纳的建议编者按:高效能人士通过建立生活的秩序,以掌握更多的时间并提高利时间的利用率。“Order,Order,Order!”,那么生活中的秩序从何而来?作者谈到了时间管理的技巧,整理归纳的建议,从细微之处帮助我们与时间赛跑。文章译自Medium,作者Thomas Oppong,原标题7 Habits of Super Organised People。现如今,在这...
2020-04-19 14:54:39 382
原创 SQL中EXTRACT() 函数
EXTRACT()("提取"的意思) 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。就是返回出来具体的年,月,日2008-12-29 16:25:46.6351 SELECT EXTRACT(YEAR FROM OrderDate) AS OrderYear,2 EXTRACT(MONTH FROM OrderDate) AS OrderMonth,3 EXTRACT...
2020-04-11 10:24:50 9699
原创 linux常用命令之 解压war包文件
linux命令之 解压war包[root@izwz91h49n3mj8r232gqwez webapps]# unzip dubbo-admin-2.5.7.war -d dubbo-admin备注:dubbo-admin-2.5.7.war 为需要解压的文件-d 解压到文件夹
2020-04-10 20:11:40 6352
原创 mybatis使用中的坑 test字符串匹配不上数字字符串
做查询遇到一个坑,想用字符串去判断是否等于一个数字字符串"1",没报错但匹配不上,写法如下 and task_id like CONCAT(CONCAT('TASK', #{taskIdType}), '%')正确写法如下 and task_id like CONCAT(CONCAT('TASK', #{taskIdType}), '%')或 and ta...
2020-03-31 14:22:40 5603
原创 字节跳动2面、美团2面Java面试真题总结
面试真题来源自网络……前言宅在家里快两个月的在家办公模式基本告一段落。企业复工,大家的工作生活终于可以回归正轨,相信不少朋友已经走出家门,迎战跳槽季了。一些动作快的朋友可能已经拿到一两个 Offer 了。那么,对于Java开发岗来说,到底该如何准备技术面呢?其实,除了表达能力和面试技巧外,无非就从这几个方面进行准备:源码阅读、JVM、高并发,分布式、集群、中间件,微服务架构等。下面是最...
2020-03-31 09:15:26 5919 1
原创 CountDownLatch 使用说明
CountDownLatch是一种java.util.concurrent包下一个同步工具类,它允许一个或多个线程等待直到在其他线程中一组操作执行完成。CountDownLatch的用法非常简单,下面的例子也是我在网上看到的,十分贴切,这里就贴出来:public class Test { public static void main(String[] args) { ...
2020-03-24 10:19:24 5279
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人