自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java枚举释意

// public enum Animal = public final class Animal extends java.lang.Enumpublic enum Animal { CAT, // CAT = public static final Animal = new Animal("CAT",1); DOG, // DOG = public static final Animal = new Animal("DOG",1);}

2021-07-05 19:19:12 145

转载 常用特殊符号的HTML代码(HTML字符实体)

简单记录一下:https://cloud.tencent.com/developer/article/1473321

2020-09-25 11:01:59 271

转载 springboot+mybatis+sharding-jdbc单库分表

缘由由于在做考勤系统考虑到后期考勤数据量会非常大,到时候单表的数据量可能会很大,导致数据库的查询效率会很低,数据库的负载坚持不住,所以就开始考虑分库分表的事情了,一开始是看的比较主流的当初阿里图队的mycat,但是整合到后面发现mycat实现不了单库分表,只能多库分表。后面就开始往sharding-jdbc方向研究,sharding-jdbc又分为两个版本,dangdang(当当)和shardingsphere,也不知道这两者是什么关系应该都是同个社区的开发者开发的吧,当当的目前最新是1.5.3吧sha

2020-09-17 21:00:40 438

转载 PO BO VO DTO POJO DAO DO这些Java中的概念分别指什么

https://www.zhihu.com/question/39651928

2020-09-15 10:50:10 150 1

转载 google-chrome – 如何在Google Chrome中复制Cookie?

Ctrl-A,按住shift并右键单击并复制

2020-09-11 11:30:07 3440

转载 Linux Top命令之load average详解

前言因为笔者面试中被问到了这个问题,感觉自己不是很清楚,所以还是整理一下,博客中也有不少讲到top命令的,但是几乎没看到有把load average这个讲清楚的,所以还是有必要来篇水文。进入正题由于这里只是分析load average,具体怎么使用top,大家应该都有所了解,我这里就不再赘述,重点分析一下load average.我们都知道load average分别代表最近一分钟、最近5分钟、最近15分钟的负载。但是有的负载值才0.01,有的负载值可以到1,有的甚至可以到5.这到底是什么意思

2020-09-10 20:03:52 11352 2

转载 Maven中-DskipTests和-Dmaven.test.skip=true的区别

在使用mvn package进行编译、打包时,Maven会执行src/test/java中的JUnit测试用例,有时为了跳过测试,会使用参数-DskipTests和-Dmaven.test.skip=true,这两个参数的主要区别是:-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。...

2020-09-07 17:21:19 240

原创 mysql杂项

Int类型时间日期类型char是定长,varchar是变长text和blob可以建立前缀索引text not null字段,不能设置默认值

2020-09-06 14:53:58 101

转载 PM,RD,FE,UE,UI,QA,OP,DBA,BRD,MRD, PRD,FSD等缩写的全称解析

PM项目经理(ProjectManager)从职业角度,是指企业建立以项目经理责任制为核心,对项目实行质量、安全、进度、成本管理的责任保证体系和全面提高项目管理水平设立的重要管理岗位。项目经理是为项目的成功策划和执行负总责的人。项目经理是项目团队的领导者,项目经理首要职责是在预算范围内按时优质地领导项目小组完成全部项目工作内容,并使客户满意。为此项目经理必须在一系列的项目计划、组织和控制活动中做好领导工作,从而实现项目目标。当然在互联网公司这个有着项目经理or产...

2020-09-06 14:05:02 946

转载 DROP TABLE、TRUNCATE TABLE和DELETE的区别

相同点TRUNCATETABLE和DELETE都可以删除整个数据库表的记录不同点 DELETE DML语言 可以回退 可以有条件的删除DELETE FROM 表名 WHERE 条件 TRUNCATE TABLE DDL语言 无法回退 默认所有的表内容都删除 删除速度比delete快TRUNCATE TABLE 表名 DROP TABLE 用于删除表(表的结构、属性以及索引也会被删除);DROP TABLE 表名 原理DDL(Data Definit.

2020-09-06 14:01:47 179

转载 Git生成SSH key

Windows: 1.创建SSH Key。在windows下查看[c盘->用户->用户名->.ssh]下是否有id_rsa、id_rsa.pub文件,如果没有需要手动生成。打开git bash,在控制台中输入以下命令: $ ssh-keygen -t rsa -C"[email protected]"。 密钥类型可以用-t选项指定。如果没有指定则默认生成用于SSH-2的RSA密钥。这里使用的是rsa。 同时在密钥中有一个注释字段,用-C来指定所指定...

2020-09-01 16:11:34 175

原创 mysql索引设计的原则

1,索引不易过多,3,4个为好2,针对SQL语句里的where条件,order by条件,group by条件去设计索引,如果是联合索引要匹配最左侧开始的部分字段3,建立索引,尽量选用基数比较大的字段,就是值比较多的字段,这样才能发挥出B+数二分查找的优势4,尽量针对字段类型比较小的列来设计索引,如果针对大字段的前部分字符建立索引,where查询可以用,但是order by和group by就用不上了5,不要让索引的字段做函数计算6,建议逐渐一定是自增的,别用UUID之类的,因为主键自增

2020-08-20 09:24:14 112

转载 HTTP几种请求方式的含义及应用场景

HTTP几种请求方式的含义及应用场景整理自https://stackoverflow.com/questions/27030649/explain-and-example-about-get-delete-post-put-options-patch-h及https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.htmlGETGET请求是向服务端请求获取某个或某些资源(resource),比如查询数据库单个或list数据,服务端成功的话,一般状态码返回2

2020-08-19 23:24:38 648

转载 java中 0.6552的数据类型是什么

默认为double类型,float类型需要自己定义:0.6332fdouble是基本数据类型,Double是原始数据类型double没有方法,Double有自己的属性和方法double只创建引用,Double创建对象集合类不能存放double,只能存放Doubledouble存放在栈中,Double存放在堆中栈的存取速度要高于堆,另外栈中的数据可以共享如:doublea=0;doubleb=0;不会创建对象,只会建立两个引用,同时指向变量“0”(栈数据共享)而Doubl...

2020-08-19 23:09:15 3813

原创 问题

public class Example { private String str = new String("good"); private char[] ch = {'a', 'b', 'c'}; public static void main(String[] args) { Example example = new Example(); example.change(example.str, example.ch); .

2020-08-19 23:04:13 211

转载 java中((NULL)null).say()能运行吗?

先上代码,下面代码能运行吗?public class NULL { public static void say() { System.out.println("null say: haha"); } public static void main(String[] args) { // TODO Auto-generated method stub ((NULL)null).say(); }}作者看到这个时,没经过思考就觉得不能,而且还觉得这个问题很扯蛋!答案是:能运行

2020-08-19 22:34:57 214

转载 JVM运行原理及优化

我们写好的代码,是要通过JVM才能运行的 JVM 想要执行一个类,首先要加载类,在加载类之前,需要先编译成字节码class 文件 然后就执行类的加载过程,JVM 加载类的话,需要类加载器 类加载器是分层级的,遵循双亲委派机制, 最上层是Bootstrap ClassLoder,加载java的核心类库,加载java安装目录下的lib目录的class文件 第二层是Ext ClassLoder,加载一些java的其他类库,加载java安装目录下的lib/ext目录下的class 第三层是Appli

2020-08-18 22:29:23 318

转载 Java中的String为什么是不可变的?

什么是不可变对象?众所周知, 在Java中, String类是不可变的。那么到底什么是不可变的对象呢? 可以这样认为:如果一个对象,在它创建完成之后,不能再改变它的状态,那么这个对象就是不可变的。不能改变状态的意思是,不能改变对象内的成员变量,包括基本数据类型的值不能改变,引用类型的变量不能指向其他的对象,引用类型指向的对象的状态也不能改变。区分对象和对象的引用对于Java初学者, 对于String是不可变对象总是存有疑惑。看下面代码: String s = "ABCabc";.

2020-08-12 22:29:10 93

转载 RabbitMQ 如何保证消息不丢失?

RabbitMQ一般情况很少丢失,但是不能排除意外,为了保证我们自己系统高可用,我们必须作出更好完善措施,保证系统的稳定性。下面来介绍下,如何保证消息的绝对不丢失的问题,下面分享的绝对干货,都是在知名互联网产品的产线中使用。1.消息持久化2.ACK确认机制3.设置集群镜像模式4.消息补偿机制第一种:消息持久化RabbitMQ 的消息默认存放在内存上面,如果不特别声明设置,消息不会持久化保存到硬盘上面的,如果节点重启或者意外crash掉,消息就会丢失。所以就要对消息进行持.

2020-08-11 14:34:16 205

转载 前序遍历 中序遍历 后序遍历

2020-08-10 21:10:33 228

转载 Java中的checked异常和unchecked异常

(一)Java的异常层次结构  要想明白Java中checked Exception和unchecked Exception的区别,我们首先来看一下Java的异常层次结构。这是一个简化的Java异常层次结构示意图,需要注意的是所有的类都是从Throwable继承而来,下一层则分为两个结构,Error和Exception。其中Error类层次描述了Java运行时系统的内部错误和资源耗尽错误,这种错误除了简单的报告给用户,并尽力阻止程序安全终止之外,一般也米有别的解决办法了。最常用的五种Run..

2020-08-10 20:56:08 217

转载 JVM之逃逸分析

什么是逃逸分析在编译程序优化理论中,逃逸分析是一种确定指针动态范围的方法——分析在程序的哪些地方可以访问到指针。它涉及到指针分析和形状分析。当一个变量(或对象)在子程序中被分配时,一个指向变量的指针可能逃逸到其它执行线程中,或是返回到调用者子程序。如果使用尾递归优化(通常在函数编程语言中是需要的),对象也可以看作逃逸到被调用的子程序中。如果一种语言支持第一类型的延续性在Scheme和Standard ML of New Jersey中同样如此),部分调用栈也可能发生逃逸。如果一个子程序分配一个对

2020-08-10 00:37:37 128

转载 jvm之标量替换

简单地说,就是用标量替换聚合量。这样做的好处是如果创建的对象并未用到其中的全部变量,则可以节省一定的内存。对于代码执行而言,无需去找对象的引用,也会更快一些 标量是指不可分割的量,如java中基本数据类型和reference类型,相对的一个数据可以继续分解,称为聚合量; 如果把一个对象拆散,将其成员变量恢复到基本类型来访问就叫做标量替换; 如果逃逸分析发现一个对象不会被外部访问,并且该对象可以被拆散,那么经过优化之后,并不直接生成该对象,而是在栈上创建若干个成员变量; 通过-X

2020-08-10 00:23:55 3009 2

转载 jvm之方法内联优化

前言在日常中工作中,我们时不时会代码进行一些优化,比如用新的算法,简化计算逻辑,减少计算量等。对于java程序来说,除了开发者本身对代码优化之外,还有一个"人"也在背后默默的优化我们的代码,这个"人"就是jvm。jvm会帮我们分析出热点代码,优化代码逻辑。其中jvm最常做的优化之一就是:方法内联优化。方法内联什么是方法内联?又可以叫做函数内联,java中方法可等同于其它语言中的函数。关于方法内联维基百科上面解释是:在计算机科学中,内联函数(有时称作在线函数或编译时期展开函数)是一种编程语言结

2020-08-10 00:11:41 336

转载 栈之括号匹配问题(java实现)

假设表达式中只允许两种括号:()、{};正确表达顺序为:()或{}或({})或{({}{})}的形势;如{(}或(})或({)}的表达形势均不对。算法的设计思想:  出现左括弧则进栈;  出现右括弧则首先检测栈是否为空,    若栈空则表明此右括弧多余,表达式不匹配。    否则和栈顶数据比较,若匹配则栈顶出栈。    否则表明表达式不匹配;  最后若栈空,则表明匹配成功;否则表明不匹配。代码:package linklist;import java.util.Sta

2020-08-06 23:22:52 228

转载 CAP理论来分析ZooKeeper

CAP理论告诉我们,一个分布式系统不可能同时满足以下三种一致性(C:Consistency) 可用性(A:Available) 分区容错性(P:Partition Tolerance)这三个基本需求,最多只能同时满足其中的两项,因为P是必须的,因此往往选择就在CP或者AP中。在此ZooKeeper保证的是CP分析:可用性(A:Available)不能保证每次服务请求的可用性。任何时刻对ZooKeeper的访问请求能得到一致的数据结果,同时系统对网络分割具备容错性;但是它不能保证每次服务

2020-08-04 22:55:59 289

转载 zookeeper之leader选举过程

关于leader选举会分为两个过程:1.启动时leader的选举2.leader崩溃时的选举一在每个节点刚启动的时候,状态都是Locking状态,然后就会开始选举的流程,因为leader选举至少需要两台服务器,所以一般会选举三台组成服务器集群。当第一台服务器刚启动的时候,它自己是无法进行和完成leader选举的,等待第二台服务器启动的时候,两台机器才可以相互通信。每台机器都试图找到leader,就进入leader的选举过程。1.每一个服务器都会发起一个投票,由于刚开始第一轮启动,所以都会

2020-08-04 18:41:52 340

转载 MySQL学习笔记:count(1)、count(*)、count(字段)的区别

关于数据库中行数统计,无论是MySQL还是Oracle,都有一个函数可以使用,那就是COUNT。但是,就是这个常用的COUNT函数,却暗藏着很多玄机,尤其是在面试的时候,一不小心就会被虐。不信的话请尝试回答下以下问题:> 1、COUNT有几种用法?> 2、COUNT(字段名)和COUNT(*)的查询结果有什么不同?> 3、COUNT(1)和COUNT(*)之间有什么不同?> 4、COUNT(1)和COUNT(*)之间的效率哪个更高?> 5、为什么《阿里巴巴Ja

2020-08-01 16:39:36 359

转载 如何避免死锁

阻止死锁的途径就是避免满足死锁条件的情况发生,为此我们在开发的过程中需要遵循如下原则:1.尽量避免并发的执行涉及到修改数据的语句。2.要求每一个事务一次就将所有要使用到的数据全部加锁,否则就不允许执行。3.预先规定一个加锁顺序,所有的事务都必须按照这个顺序对数据执行封锁。如不同的过程在事务内部对对象的更新执行顺序应尽量保证一致。4.每个事务的执行时间不可太长,对程序段的事务可考虑将其分割为几个事务。在事务中不要求输入,应该在事务之前得到输入,然后快速执行事务。5.使用尽可能低的隔离级别。

2020-07-30 23:01:20 299

原创 redis过期策略

过期策略 volatile-lru:从已设置过期时间的数据集中挑选最少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰 volatile-random:从已设置过期时间的数据集中任意选择数据淘汰 allkeys-lru:从数据集中挑选最近最少使用的数据淘汰 allkeys-random:从数据集中任意选择数据淘汰 no-enviction:禁止驱逐数据,报错 ...

2020-07-30 22:12:53 80

转载 线程池拒绝策略-RejectedExecutionHandler

当线程池中的线程数目达到maximumPoolSize,且任务缓存队列已满时,如果还有任务到来就会采取任务拒绝策略,通常有以下四种策略:ThreadPoolExecutor.AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。ThreadPoolExecutor.DiscardPolicy:也是丢弃任务,但是不抛出异常。ThreadPoolExecutor.DiscardOldestPolicy:丢弃队列最前面的任务,然后重新尝试执行任务(重复此过程)

2020-07-29 12:32:39 951

原创 现有一个二进制数,如何快速判断某位是0还是1?

现有一个二进制数,如何快速判断某位是0还是1? 比如:2345678,我要判断从右到左第3位是0 或 1,怎么快速判断?S:待判断的二进制数W:待判断的位(右往左)结果:((S>>(W-1)) & 1

2020-07-25 18:50:32 2011

转载 mysql page大小

mysql> show global variables like '%page%';+--------------------------------------+-----------+| Variable_name | Value |+--------------------------------------+-----------+| innodb_log_compressed_pages | ON .

2020-07-23 12:08:32 538

转载 线程安全的时间处理类-DateTimeFormatter

Java 8 提供了新的日期时间 API,其中包括用于日期时间格式化的 DateTimeFormatter,它与 SimpleDateFormat 最大的区别在于:DateTimeFormatter 是线程安全的,而 SimpleDateFormat 并不是线程安全。DateTimeFormatter 如何使用:解析日期String dateStr= "2018年06月20日";DateTimeFormatter formatter = DateTimeFormatter.ofPattern

2020-07-23 12:01:38 1525 1

原创 JVM常用配置参数

-XX:CMSInitiatingOccupancyFaction=92这个参数是指在使用CMS收集器的情况下,老年代使用了指定阈值的内存时,出发FullGC.。如:-XX:CMSInitiatingOccupancyFraction=80,CMS垃圾收集器,当老年代达到80%时,触发CMS垃圾回收。-XX:+UseCMSCompactAtFullCollection打开对年老代的压缩。可能会影响性能,但是可以消除碎片-XX:CMSFullGCsBeforeCompaction=0.

2020-07-11 23:54:50 194

原创 JVM配置OOM自动导出内存快照参数

JVM的启动参数中加入如下的一些参数:-XX:+HeapDumpOnOutOfMemoryError-XX:HeapDumpPath=/usr/local/oom第一个参数意思是在OOM的时候自动dump内存快照出来,第二个参数是说把内存快照存放在哪里

2020-07-11 23:37:36 1741

转载 SLEEP,WAIT,YIELD,JOIN的区别

1.sleep()方法在指定时间内让当前正在执行的线程暂停执行,但不放锁!!!!sleep()使当前线程进入阻塞状态,在指定时间内不会执行。sleep的时间到了之后,虽然不用抢锁了,但还要和其他线程抢CPU时间片,也就是说,下面的代码,每隔一秒打印一次当前时间,两次打印的间隔有可能超过1秒,即打印的时间不连续。import java.text.SimpleDateFormat;import java.util.Date;import java.util.Scanner;//线程1:每

2020-07-07 19:58:50 252

转载 ES索引写入性能优化

1、用bulk批量写入你如果要往es里面灌入数据的话,那么根据你的业务场景来,如果你的业务场景可以支持让你将一批数据聚合起来,一次性写入es,那么就尽量采用bulk的方式,每次批量写个几百条这样子。bulk批量写入的性能比你一条一条写入大量的document的性能要好很多。但是如果要知道一个bulk请求最佳的大小,需要对单个es node的单个shard做压测。先bulk写入100个document,然后200个,400个,以此类推,每次都将bulk size加倍一次。如果bulk写入性能开始变平缓的

2020-07-06 23:37:39 557

转载 Java的Object的hashcode()和equals()

0.背景hashCode()和equals()定义在Object类中,这个类是所有java类的基类,所以所有的java类都继承这两个方法。1. 使用hashCode()方法被用来获取给定对象的唯一整数。这个整数被用来确定对象被存储在HashTable类似的结构中的位置。默认的,Object类的hashCode()方法返回这个对象存储的内存地址的编号。2.JDK的Javadoc中所说,如果重写equals()方法必须要重写hashCode()方法尽量保证使用对象的同一个属性...

2020-07-04 11:52:51 153

转载 java中数组的最大长度以及List的最大容量

Java中数组的最大长度是多少呢?看一下它的length属性就可以了。length属性是32位的有符号整数,它的最大值是2的31次幂,就是2G。为何有这个限制呢?为什么length的属性不是long型呢?我们假设一下,如果它是long型的,那么它的最大长度是2的63次幂。内存永远也不会有那么大吧。即使是字节数组长度是int的,最大长都达到2GB.由此想到了String,这个家伙底层也是基于数组的,是一个字符数组。字符是16位的基本类型,一个String的最大长度是多少呢?就是字符数组的最大长度也是2G,占

2020-07-04 10:53:35 1433

jmesa所需完整jar包

jmesa 所需要的 完整jar包,非常的全

2013-07-26

jasperreport完整的jar包

jasperreport需要的jar包,比较新的

2013-07-26

空空如也

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

TA关注的人

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