- 博客(46)
- 资源 (1)
- 收藏
- 关注
原创 Long类型数据吐给前端时精度丢失
现象:联调时碰见一个问题,后端吐给前端的对象信息如下:/** * 订单信息 */public class orderInfoVO { @ApiModelProperty(value = "项目订单id") private Long projectOrderId; @ApiModelProperty(value = "创建时间", dataType = "Date") private Date ctime; @ApiModelProperty(va
2021-04-13 14:48:52
395
转载 spring 自定义注解和@Transactional注解失效问题
https://blog.youkuaiyun.com/qq_35688140/article/details/102466373https://blog.youkuaiyun.com/canot/article/details/80855439?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.control&depth_1-utm_source=distribute.pc_relevant.none-
2021-01-28 20:36:49
458
转载 java.lang.OutOfMemoryError: Metaspace
转载 https://blog.youkuaiyun.com/baidu_37313657/article/details/105120506
2020-12-11 11:08:56
302
转载 github中的watch、star、fork的作用
三个按钮功能,分别是1. watch:关注(带邮件提示其变动)2. 点赞+收藏3. fork:分支(也可以理解为git分支同意),也就是相当于这个版本的另外一个走向,由我自己来进行控制详细的看https://www.cnblogs.com/bibi-feiniaoyuan/p/9519467.html...
2019-12-02 15:17:37
278
原创 java中String、StringBuffer、StringBuilder
jdk1.8 源码,三个类的类图如下说明: 是否可变对象 equals() 和hashcode() 是否线程安全 String 不可变对象 重写 StringBuffer 可变对象 未重写 线程安全(synchronized修饰方法) StringBuilder 线程不安全 首先明确什么不可变对象。一个对...
2019-11-27 14:27:43
163
转载 为什么需要Java反射
为何需要反射,java为何能够跨平台,就是因为JVM(Java虚拟机)下图是Java内存模型,假如你写了一段代码:public class Main { public static void main(String[] args) { Object o=new Object(); }}运行起来,代码编译为->.class文件 类加...
2019-09-26 18:13:33
842
1
转载 虚拟存储器与虚拟内存
1.为什么需要虚拟存储器?程序在os中能够执行,需要经过,编译-链接-装入在没有虚拟存储器之前,源程序在gcc –o 后生成的文件是可执行目标程序a.out,每条指令都有一个逻辑地址 32位。它存在硬盘上。要执行时,只需找到该文件,将其装入内存。装入的方式可以有多种,比如分页,分段等等。但是,必须将该程序完全装入内存。分页:将一个进程的逻辑地址空间(32位)分成若干大小相等的页。分...
2019-09-25 16:39:51
3007
原创 hashMap 和hashTable实现的类和接口
根据jdk1.8的源码,系统出了一个类图,这里考虑几个Map实现的类 HashTable、HashMap、TreeMap、ConcurrentHashMap、LinkedHashMap有图有真相,我们看图可以看出各个类实现的接口有 Serializable Cloneable AbctractMap HashTable √ √ Hash...
2019-09-21 22:07:21
6416
原创 Java中关于进制问题-八进制、16进制
java中数据以0开头的是八进制的。 0x 开头的数据表示的是16进制(注意:0x中的0是数字0,而不是字母O) ,x也可以大写,用0X表示十六进制。 可以使用八进制、十六进制的类型:long, int, short, byte如 012表示的就是10进制的10,2+1*8=10 0x12 表示的是10进制的18,2+16*1=18public class Test { ...
2019-09-17 22:12:28
1126
原创 java 程序编译和运行过程详解
Java程序从源文件创建到程序运行要经过两大步骤:源文件由编译器编译成字节码(ByteCode); 字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言("semi-interpreted" language)1. 编译创建完源文件之后,程序先要被JVM中的java编译器进行编译为.class文件。java编译一个...
2019-09-16 13:01:54
2031
原创 数据库primary key和unique的区别与联系
简单的说,primary key = unique + not nullunique 就是唯一,当你需要限定你的某个表字段每个值都唯一,没有重复值时使用。比如说,如果你有一个student 表,并且表中有个表示身份的字段id,那么你就可以指定该字段为unique。从技术的角度来看,Primary Key和Unique Key有很多相似之处。但还是有以下区别:一、作为Primary ...
2019-09-10 22:39:01
2389
原创 数据库的事务管理
事务是数据库管理系统执行过程中的一个逻辑单位,由一个有限的数据库操作序列构成。当事务被提交给了DBMS(数据库管理系统),则DBMS(数据库管理系统)需要确保该事务中的所有操作都成功完成且其结果被永久保存在数据库中,如果事务中有的操作没有成功完成,则事务中的所有操作都需要被回滚,回到事务执行前的状态;同时,该事务对数据库或者其他事务的执行无影响,所有的事务都好像在独立的运行。事务的思维图:...
2019-09-07 12:42:15
4536
原创 通过MVCC实现数据库的可重复读
整理知识点,有四种隔离级别,也要知道每种的实现原理。。emmm一、MVCCMulti-Version Concurrency Control 多版本并发控制,MVCC 是一种并发控制的方法,一般在数据库管理系统中,实现对数据库的并发访问;在编程语言中实现事务内存。它使得大部分支持行锁的事务引擎,不再单纯的使用行锁来进行数据库的并发控制,取而代之的是把数据库的行锁与行的多个版本结合起来,...
2019-09-07 12:19:29
2127
转载 nosql
nosqlNoSQL是非关系型数据库,NoSQL = Not Only SQL。我们常用的都是关系型数据库。就像我们常用的mysql,sqlserver一样,这些数据库一般用来存储重要信息,应对普通的业务是没有问题的。但是,随着互联网的高速发展,传统的关系型数据库在应付超大规模,超大流量以及高并发的时候力不从心。而就在这个时候,Nosql得到了高速发展。关系型数据库采用的结构化的数据,No...
2019-09-07 00:26:30
206
转载 动态链接和静态链接
知识还是记下来比较好,不然忘了都不知道啥忘了。。静态编译就是在编译的时候把你所有的模块都编译进exe里去,当你启动这个exe的时候所有模块都加载进来了。你写小程序没问题,但程序一大,加载的过程(就是当你运行程序时初始化的过程)就比较费力动态编译就不一样,你编译的时候那些模块都没有编译进去,一般情况下你可以把那些模块都编译成dll,这样你启动程序(初始化)的时候这些模块不会被加载,而是在运行的...
2019-09-06 21:46:41
122
原创 java集合之 concurrentHashMap
为何会出现concurrentHashMap背景1. 线程不安全的HashMap因为多线程环境下,使用Hashmap进行put操作会引起死循环,导致CPU利用率接近100%,所以在并发情况下不能使用HashMap。2. 效率低下的HashTable容器HashTable容器使用synchronized来保证线程安全,但在线程竞争激烈的情况下HashTable...
2019-09-06 21:40:32
182
原创 mybatis执行过程
mybatis动态代理、一级缓存和二级缓存之前看到:1. mapper接口里的方法,是不能重载的,因为使用全限定+方法名的寻找和保存策略,mapper接口的原理是jdk动态代理,为mapper接口生成动态代理对象,代理对象会拦截接口方法,转而执行mapperStatement代理的sql,然后将执行结果返回,接口原理是jdk动态代理,这次终于源码是怎样的流程了,为啥是动态代理。技术越学理解...
2019-09-06 21:21:11
272
原创 Java集合之TreeMap
一. treeMap结构(和红黑树类似)TreeMap中的元素默认按照keys的自然排序排列。对Integer来说,其自然排序就是数字的升序;对String来说,其自然排序就是按照字母表排序。如果是我们自定义的类型,如自定义了一个User类,就需要实现Comparabl接口,或者在构造函数中传入一个比较器。优先按照构造函数传入的比较器排序,只有在treeMap构造函数传入的比较器为空...
2019-09-05 16:50:10
240
原创 携程笔试题目,子序列的最大值的最小值问题
问题描述:有m个节点,k个任务,每个任务都有执行时长,将这k个任务在m个节点上执行,每个节点执行的任务序列,必须是连续的,如1、2、3,不可以是1、3,求最短执行时间。输入:3 51 5 3 4 2输出:6说明:3个节点,5个任务,每个任务的执行时长是1、5、3、4、2分成三个序列,{1、5} {3} {4、2},最长时长是6解决方案:二分法,初始化时,最短执行时间在[ Ma...
2019-09-04 22:28:21
1049
原创 IDEA中如何输出gc日志信息
idea查看gc信息我们想看一下代码执行过程中,gc的信息public class ReferenceCountingGC { public Object instance = null; private static final int _1MB = 1024 * 1024; private byte[] bigSize = new byte[2 * _1M...
2019-09-02 16:18:12
1689
转载 Java的反射
十分详细https://blog.youkuaiyun.com/lililuni/article/details/83449088
2019-07-31 20:26:16
103
原创 java的runnable和callable
1. Runnable接口,只声明了一个 run() 方法,且无返回值2.Callabble,泛型接口,只声明了一个call() 方法,返回类型是传递进来的 V 类型,且会抛出异常public interface Runnable { public abstract void run();}public interface Callable<V> { ...
2019-07-31 12:49:54
801
转载 idea的图标
学习过程中,看类图或者类的结构https://blog.youkuaiyun.com/qq_35246620/article/details/64157559
2019-07-30 22:20:13
143
原创 Comparator 和 Comparable接口
1. Comparator 和 Comparable作用Comparator 和 Comparable作用:都是java的接口, 并且是用来对自定义的class比较大小的。当我们自己定义了一个对象Student:public class Student { int score; int age;}有这么一个studentList,里面包含了student1,...
2019-07-26 16:11:44
204
1
原创 数据库MySql索引
一、 二叉树 - 平衡二叉树 - B树(B-树)- B+树 - 红黑树1. 二叉树(Binary Search Tree / 二叉查找树 / 二叉排序树 / 二叉搜索树)一颗m阶二叉查找树应具备如下特征:1. 若左子树不为空,那么左子树的关键字应比根节点小2. 若右子树不为空,那么右子树的关键字应比根节点大3. 左子树和右子树都为二叉查找树二叉树的性能:在最好的情...
2019-07-25 15:57:22
239
原创 Java的垃圾回收
一. 垃圾收集包括:标记算法(如何判断对象已死)和回收算法二. 标记算法引用计数器法和可达性分析(GC roots)引用计数法: 两个对象互相引用 A和B 可达性分析,可作为GCroots的对象:java虚拟机栈中引用的对象、本地方法栈中引用的对象、方法区中静态成员或常量引用的对象。三. 回收算法1、标记-清除算法 mark-sweep分为两个阶段,标记和清除。首先标...
2019-07-25 09:31:29
99
原创 MySql的单列索引和组合索引
单列索引: 只有一个字段的索引组合索引(复合索引): 两个或两个以上字段组成的索引. 组合索引遵循左侧原则, 也就是一个查询可以只使用组合索引最左侧的一部分.例子:创建 Index(a, b, c) 组合索引 ,相当于创建了(a)单列索引、(a, b)联合索引以及(a, b, c)联合索引。当where中的顺序只有是这三个顺序时, 才能使用索引。1. 组合索引查询查询( ...
2019-07-24 14:16:50
499
原创 写算法题目时,java的单目运算符 ++,-- 学习
今日写一个算法题目:二维数组中的查找(剑指Offer题目)题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。如: 找数据10,返回为true,且位于第三行第三列考虑从右上角开始,用递归的方法找:代码如下:public class Test { ...
2019-07-22 20:08:07
312
原创 git如何去除rebaseing状态
如果想要放弃当前rebase操作,用 git rebase --abort如果冲突已经解决,先add冲突文件,即 git add filename 之后,git rebase --continue
2019-07-21 16:29:01
3181
原创 java中map里的key按我们插入进去的顺序输出
TreeMap的顺序是自然顺序(如整数从小到大),也可以指定比较函数。但不是插入的顺序。LinkedHashMap,内部有一个链表,保持插入的顺序。迭代的时候,也是按照插入顺序迭代。HashMap并不能保证按插入的顺序...
2019-07-20 12:54:57
1022
转载 IDEA中修改Git账号和密码
https://blog.youkuaiyun.com/dalinsi/article/details/77989840
2019-05-22 15:49:49
29093
原创 MySql 中查询存储引擎以及隔离级别的sql命令
MySql 支持多种存储引擎。常见的存储引擎有:MyISAM, Aria, InnoDB, MRG_MYISAM, CSV, BLACKHOLE, MEMORY, PERFORMANCE_SCHEMA, ARCHIVE, FEDERATED。MySql 默认查询是不区分大小写的一. 查看MySql支持的存储引擎命令show engines;执行结果:字段含义:Engin...
2019-05-16 11:02:04
647
原创 java位运算符、移位运算符与加减乘除运算符之间的关系
一、位运算符主要针对二进制。包括‘与 & ’、‘或 | ’、‘非 ~’、‘异或 ^ ’。1 . 与 运算符与运算符用符号“&”表示,其使用规律如下:两个操作数中,位都为1,结果才为1,否则结果为0。与运算符是二元运算符。需要了解的知识点:基本数据类型 java语言中,对应基本数据类型 在内存中所占内存空间大小 (B:byte,字节...
2019-05-13 18:58:38
3785
原创 Java中的异常
一. 异常原因异常是程序中的一些错误,但并不是所有的错误都是异常,并且错误有时候是可以避免的。异常发生的原因有很多,一般包括以下几类:用户输入非法数据 要打开的文件不存在 网络通信时连接中断或者JVM内存溢出这些异常有的是程序错误引起的,有的是用户错误引起的吗,还有其他一些物理错误引起的。二. 异常类型类关系图如下:Exception和Error类均是Throwa...
2019-05-13 17:30:37
335
原创 Java泛型
Java 泛型(generics)是 JDK 5 中引入的一个新特性, 泛型提供了编译时类型安全检测机制,该机制允许程序员在编译时检测到非法的类型。一. 为什么需要泛型?如下代码所示,我们创建一个list,并向其中加入两个字符串类型的值,随后加入Integer值。此时编译器不会报错,因为此时List默认的类型是Object,随后我们忘记之前加入了Integer数据,之后我们取出元素转为S......
2019-05-13 16:45:09
197
1
原创 java中的线程状态流转
java中的线程状态。在Thread类中有一个State的枚举类,表示当前线程所处的状态。线程状态一共有6种:新建状态 (New)线程对象被创建后,就进入了新建状态。例如,Thread thread = new Thread()。 就绪状态 (Runnable): 也被称为“可执行状态”。线程对象被创建后,其它线程调用了该对象的start()方法,从而来启动该线程。例如,threa...
2019-05-07 17:41:55
466
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人