个人
熊猫小白
我想了解我看到的所有知识
展开
-
常用的正则表达式
/** * 流水号验证正则 只能为数字字母 开头和结尾, 中间可以包含 - */private static final Pattern TXNOPATTERN = Pattern.compile("^[A-Za-z0-9][\\w\\-\\|]*[A-Za-z0-9]$");/** * 描述信息验证正则 不能包含~ ^ # * & ; $ % @ ' " < > + " ' / 这些特殊字符 */private static final Pattern DESCPA.原创 2020-12-07 19:15:05 · 342 阅读 · 0 评论 -
真正理解三元表达式
什么是java三元运算符呢?无疑其操作元有三个,第一个是条件表达式,剩余两个为值,条件表达式为真时运算取第一个值,为假时取第二个值。 其示例代码如下:boolean a = 20 < 45 ? true : false;三元运算符的优先级高于赋值运算符,故判断表达式值为真,去第一个true,a的值为true。 三元运算符用于判断,其等价的if-else语句如下所示: boolean a;//声明boolean变量 if(20<45)//将20<45作为判断条件 ..原创 2020-08-27 13:41:29 · 2901 阅读 · 0 评论 -
Spring事务代理类自调用 事务失效
使用AOP 代理后的方法调用执行流程,如图所示1.jpg也就是说我们首先调用的是AOP代理对象而不是目标对象,首先执行事务切面,事务切面内部通过TransactionInterceptor环绕增强进行事务的增强,即进入目标方法之前开启事务,退出目标方法时提交/回滚事务。2、测试代码准备public interface AService { public void a(); public void b(); } @Service() pu.原创 2020-07-28 16:15:09 · 2008 阅读 · 0 评论 -
Java.lang.ClassFromatError
工作的时候遇到的一个问题,一个老项目,是java工程,肯定有人问,都什么年代了,还用java工程;这个工程几十年了,很难改项目类型,虽然老,但是里头有很多值得学习的地方,多年前没有框架,一些现在根本不需要实现的底层功能,当初都是一个字一个字的敲出来的,那时候造的轮子虽然说时间上比较落后,但是非常稳定; 问题来了,修改了十几个文件,在往Linux上部署的时候,采用了c...原创 2019-06-03 17:54:59 · 1539 阅读 · 0 评论 -
G1和Parallel Scavenge & Parallel Old组合谁收集的更快一些
测试垃圾收集器的收集速度:G1收集器:-Xms256m-Xmx256m-XX:+UseG1GC-XX:+PrintGCTimeStamps-XX:+PrintGCDetails-verbose:gc-Xloggc:gc.logParallel Scavenge & Parallel Old-Xms256m-Xmx256m-XX:+UseG1GC...原创 2019-04-24 16:01:04 · 1844 阅读 · 0 评论 -
记一次Full GC
JDK1.8的项目在本地启动的时候,启动不久就会发生Full GC,垃圾收集器使用默认的Server端Parallel Scavenge & Parallel Old组合收集,以下是一部分GC的日志Full GC为JVM自身优化GC,其中年轻代和老年代虽有调整但并未沾满,1.8之后永久代被元数据区-Metaspace取代,每次Full GC 只有元数据区的大小没有发生变化,因为没有...原创 2019-04-24 14:33:50 · 298 阅读 · 0 评论 -
Java8之后的接口和抽象类
Java1.8新特性 接口增强 1.在接口中可以添加使用default关键字修饰的非抽象方法. 2.接口中可以声明静态方法,并且可以实现1.默认方法: 允许接口中有使用default修饰的非抽象方法的实现-虚拟扩展方法,默认方法或防护方法;实现接口的时候,默认子类可以直接使用,类似于抽象类中的非抽象方法;(接口和抽象类的差别在减小);默认方...原创 2019-04-28 14:26:58 · 1898 阅读 · 2 评论 -
分层编译和逃逸分析
分层编译和逃逸分析在1.8中是默认是开启的;即时编译(Just-in-time Compilation,JIT)是一种通过在运行时将字节码翻译为机器码,从而改善字节码编译语言性能的技术。在HotSpot实现中有多种选择:C1、C2和C1+C2,分别对应client、server和分层编译。1、C1编译速度快,优化方式比较保守;2、C2编译速度慢,优化方式比较激进;3、C1+C2在开始阶段采...原创 2019-07-11 18:18:35 · 240 阅读 · 0 评论 -
Java 平台调试体系 JPDA
Java 平台调试体系(Java Platform Debugger Architecture,JPDA)定义了一个完整独立的体系,它由三个相对独立的层次共同组成,而且规定了它们三者之间的交互方式,或者说定义了它们通信的接口。这三个层次由低到高分别是 Java 虚拟机工具接口(JVMTI),Java 调试线协议(JDWP)以及 Java 调试接口(JDI)。 JVMTI(Java Vir...原创 2019-07-11 18:20:36 · 384 阅读 · 0 评论 -
Http协议 1.0到2.0
Http 1.1:错误码;长连接;支持缓存;允许请求部分,优化带宽;浏览器阻塞(浏览器对于同一个域名建立的连接是有限制的,PC一半是6-8个,手机端一般是4-6个,超过之后会被阻塞而不是拒绝;) 三次挥手: 客户端向服务器发送SYN包,进入SYN_SENT状态;SYN:同步序列编号(Synchronize Sequence Numbers)。 服务器收到SY...原创 2019-07-25 09:49:10 · 581 阅读 · 0 评论 -
Oracle 的存储及查询排序问题
遇到的问题是:一个大表在导出的时候,偶尔出现数据的重复问题,不是经常出现,但是一旦出现就是一段时间(几小时)都是这样Oracle的存储结构: 物理结构:实际的数据存储单元,包括数据文件、控制文件,重做日志文件、归档日志文件、参数文件、警报文件、跟踪文件和备份文件等; 逻辑结构: 数据库由一个或者...原创 2019-08-05 16:54:55 · 747 阅读 · 0 评论 -
GC overhead limt exceed
同学在用Spring写一个医院的管理系统的时候遇到的问题,异常如下:2019-08-01 13:08:39,922 ERROR [org.springframework.transaction.interceptor.TransactionInterceptor] - <Application exception overridden by rollback exception>...原创 2019-08-02 11:36:05 · 610 阅读 · 0 评论 -
记一次OOM
一个服务器上布了好多相同的服务,在修改代码重新部署的时候,发现服务在启动之后马上会报OOM,因为配置了-XX:+HeapDumpOnOutOfMemoryError,所以报出OOM之后,dump了当前的内存情况,如下## There is insufficient memory for the Java Runtime Environment to continue.# Native m...原创 2019-08-09 15:08:31 · 926 阅读 · 0 评论 -
Eclipse---Java实现的IDE
Eclipse是一个用Java实现的IDE。它的上层逻辑都是用Java写的,GUI库底层用了SWT有一部分native组件。在Windows上跑Eclipse的话,那个eclipse.exe其实只是一个“启动程序”(launcher),通过JNI来启动Eclipse真正的Java本体。所以,当eclipse.ini通过JNI的API找到了合适的JVM,准备进入Eclipse的Java本体的时...原创 2019-04-23 16:07:56 · 722 阅读 · 0 评论 -
Java中的ExceptionInInitializerError异常及解决方法 真实实用
Java中的ExceptionInInitializerError异常及解决方法 当在静态初始化块中出现异常的时候,JVM会抛出java.lang.ExceptionInInitializerError异常;且任何异常都能引发这种情况,有时候在没有静态块的情况下也会抛出这种异常,因为java默认会将静态变量的初始化房子啊一个默认的静态初始化块中,然后按他们在源文件中的生命进行初始化;...原创 2019-04-17 19:59:28 · 159456 阅读 · 4 评论 -
账务的一点认知
账务:概念支付,支付工具,支付机构,网络支付,支付流程支付账户:支付机构为客户开据的具有记录客户资金信息的垫子账簿;结算:双方或多方对支付交易的清偿;清算:结算之前对支付指令进行发送,对账,确认处理对账:一个清算周期的交易信息的核对;轧差:指交易伙伴活参与方之间的各种月活债务的对冲;会计科目:对会计要素按照反映的经济内容和管理要求进行不同分类的项目;日切:业务...原创 2019-02-27 09:57:23 · 827 阅读 · 0 评论 -
SpringCloud和Dubbo
SpringCloud和Dubbo一、 Dubbo: 是阿里巴巴SOA服务化治理方案的核心框架,是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。1.特点:1) 透明化的远程方法调用 就像调用本地方法一样调用远程方法 只需简单配置,没有任何API侵入2) 软负载均衡及容错机制 可在内网替代nginx lvs等硬件负载均衡器3) 服务注册中心自动注...原创 2018-05-31 15:58:17 · 748 阅读 · 3 评论 -
Orcle序列简介
一 简介序列(SEQUENCE)是序列号生成器,可以为表中的行自动生成序列号,产生一组等间隔的数值(类型为数字)。不占用磁盘空间,占用内存。之前在使用Mybatis的时候有一个自增主键的配置,不过使用范围有限<insert id="insertRole" parameterType="role" useGeneratedKeys="true" keyProperty="id"> i...翻译 2018-07-04 10:35:49 · 398 阅读 · 0 评论 -
Java中的引用类型和OOM
Java的四种引用类型与OOM 在项目中遇到了一个打开页面初始化数据的问题,之前没有考虑到初始化的Map中数据量大会影响内存,因为初始化的Map是在进行其他操作之后才会销毁,后来经过考虑使用Redis进行存取,用用户的sessionID作为key去存储Map;根本没想到使用引用类型,后来看到引用类型,想起了之前遇到的问题,记录一下,还有内存优化,避免OOM的问题;Java的...原创 2018-07-30 12:02:18 · 247 阅读 · 0 评论 -
面试题知识点学习与总结第一章
一些面试中会问到的以及自己学习的知识点 1.什么时候使用视图? -视图是虚拟的,物理上是不存在的,只是存储了数据的集合,其中的数据是根据基表的变化而变化的,不可以删除视图 -简化数据操作,实现定制数据(主要是字段多少)2.MyBatis和Hibernate对比 -Mybatis容易上手,Hibernate比较难上手; -Mybatis需要手动编写sql,H...原创 2018-09-20 15:52:28 · 187 阅读 · 0 评论 -
面试题知识点学习与总结第二章
面试问题整理JS合并的优化:在引用JS和CSS文件的时候,一次引用多个文件(此处文件为压缩文件),使用逗号隔开,这叫静态资源打包,因为浏览器下载静态文件的时候是有线程数限制的,同一时间针对同一域名下的请求有一定数量的限制,超过限制的请求会被阻塞,为了提高性能,服务端会把 css/js文件合并成一个文件(因为都是文本文件,可以直接一次性向用户输出,使得页面更加快速的展现,用户的等待时间变少...原创 2018-11-01 18:24:23 · 209 阅读 · 0 评论 -
排序算法学习以及摘录
排序算法: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nLogn); 线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此成为线性时间非比较类排序;分类:复杂度:相关概念: 稳定:不会打乱符合规则的原有排序; ...原创 2018-11-28 15:46:34 · 123 阅读 · 0 评论 -
RMI
关于RMI1.简介 之前项目使用过RMI,借此机会学习一下 Java RMI(Java Remote Method Invocation):用于实现远程过程调用的应用程序编程接口;使客户机上运行的程序可以调用远程服务器上的对象,以便分布式操作,宗旨是尽可能简化远程接口对象的使用; Enterprise JavaBeans的支柱,是建立分布式Java应用程...原创 2018-12-13 15:03:26 · 138 阅读 · 0 评论 -
Linux命令
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS / DMI) hdparm -i /dev/hda 罗列一个磁盘的架构特性 hdparm -tT /dev/sda 在磁盘上执行测试性读取操作 cat /proc/cpuinfo 显示C...转载 2018-12-24 17:31:32 · 114 阅读 · 0 评论 -
Java零碎知识点
1.使用Collections的Copy方法的时候,在定义目的List的时候,并不是只要容纳能力和源list的大小相等就可以,而是需要包含同样多的元素; 2.创建对象的方式:class的newInstance方法、Constructor的newinstance、new、clone、反序列化; 3.Rest API Rest是面向资源的,这个概念非常重要,而资...原创 2019-01-21 09:49:34 · 278 阅读 · 0 评论 -
Spring启动过程的利用
Dubbo调用的工程启动的时候使用继承ContextLoaderListener的方式启动,因为在Dubbo服务调用需要用到一些通过bean查库加载的缓存信息,所以采取了以下方式启动通过读取xml的方式初始化AbstractApplicationContext以及Dubbo优雅停机调用refresh方法();刷新bean工厂的时候,会创建bean,会执行bean的init方法,如果...原创 2019-02-01 16:04:23 · 225 阅读 · 0 评论 -
分布式事务解决方案
当前工作只分表并未分库分布式事务解决方案: 两阶段提交:XA接口规范 1.表决阶段,将所有参与者的是否可提交状态都反馈给协调者 2.执行阶段,决定是否提交或者回滚; 锁定资源时间长,同步阻塞的,不能确定是准确的事务,有些会宕机 TCC方案:try,confirm,cancel 1.业务应用会向事务...原创 2019-02-11 17:51:07 · 222 阅读 · 0 评论 -
Dubbo服务注册和发现
Dubbo的服务发现:先到注册中心寻找服务的List,选中一个,然后和被调用方建立NIO连接,传输数据包,进行方法调用 利用心跳去检测注册的服务是否存活; 在Spring启动后会利用DubboNamespaceHandler解析配置文件中的Bean,生成ServiceBean和ReferenceBean, ServiceBean进行服务暴露(自己跟到了): ReferenceB...原创 2019-02-11 17:51:47 · 3201 阅读 · 1 评论 -
面试问题,持续更新...
1.<label></label>标签在IE下无法使用,只需要在显示的标签后加上disabled="disabled"就好了;2.被Native修饰的方法就是一个java调用非Java代码的接口.一个Native Method:该方法的实现由非java语言实现,并不会提供实现类;3.RestFul其实是一套架构约束和规则;一套标准,主要是通过url对资源的定位风格!比如...原创 2019-02-11 17:53:35 · 343 阅读 · 0 评论 -
RabbitMQ发送和消费消息过程
RabbitMQ详解: AMQP:Advanced Message Queuing Protocol,一个统一提供统一消息服务的应用层标准高级消息队列协议; RabbitMQ概念: 虚拟主机:一个虚拟主机持有一组交换机、队列和绑定,使用虚拟主机来进行权限控制; 交换机:Excha...原创 2019-02-13 09:12:12 · 9704 阅读 · 0 评论 -
临渊羡鱼,不如退而结网-致辞
临渊羡鱼,不如退而结网!原创 2018-05-18 09:48:33 · 326 阅读 · 0 评论