摘要:
报错相关信息: 原因:maven父子聚合工程,pom父项目中如果添加了数据库驱动依赖的话,boot项目的autoconfig回去读取加载DataSource相关的配置,读取不到即报错。在一些新项目初始或者不需要db的项目(比如eureka)中,可配置boot的启动类: 排除DataSource的自动 阅读全文
摘要:
一、简介 java反射,在运行状态时,对于任意一个类,都能知道这个类的属性和方法。对于任意一个对象,都能够调用方法和属性。 反射是针对加载到JVM中的.class文件进行操作的,.class文件中包含了java类的所有信息。 对于java日常工作开发来说,反射可能平时接触的很少,听上去有点陌生却又似 阅读全文
摘要:
一、基本用法 mysql分页基本语法:SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset 可以接收一个或者两个参数,参数必须为整数。 1、给定一个参数:表示的是返回记录数的最大行数 2、给定两个参数:第一个参数表示返回记录行的偏 阅读全文
摘要:
事务,在日常开发或者面试中都必定会涉及到。开发工作中,结合数据库开发理解就是:一组dml要么全部成功执行提交,要么因为某一个操作异常,撤销之前所做的成功的操作,整体执行失败。再简单点的一句话:生死与共。 由此,可以看出,事务的必要性:在开发工作中,保证操作数据的安全性。事务的控制也就是保证数据的访问 阅读全文
摘要:
一、定义 职责链模式,就是将能够处理某类请求事件的一些处理类,类似链条的串联起来。请求在链条上处理的时候,并不知道具体是哪个处理类进行处理的。一定程度上实现了请求和处理的解耦。 实际生活中的经典例子就是公司的报销流程,一般主管、经理、总经理都是不同的报销额度,当职员进行报销申请的时候,如果主管权限不 阅读全文
摘要:
一、垃圾回收器分类 1、次收集器(scavengeGC或者minorGC) 针对新生代young的收集器,触发的频率非常频繁,回收的效率上也相对较高。一般当Eden区域内存空间分配不足的时候,会触发minorGC。 程序运行过程中,当new新对象并且需要在Eden区申请分配内存失败时,会触发一次mi 阅读全文
摘要:
1、尽量避免大量使用静态变量 如上,当类中某个静态变量引用某个对象的时候,当GC执行的时候,如果Test2不回收,那么test1就不会被清除,直到程序终止。也就是说,此时的test1与类Test2生命周期一致。 2、尽量使用局部变量 调用方法时传递的参数以及在调用方法中的创建的临时变量都是存放在栈中 阅读全文
摘要:
一、jvm简单结构图 1、jvm内存对象分配整体流程: 1、类加载子系统和方法区 类加载子系统负责从文件系统或者网络中加载Class信息,加载的类信息存放于一块称为方法区的内存空间。除了类的信息外, 方法区中可能还会存放运行时常量池信息,包括字符串字面量和数字常量(这部分常量信息是Class文件中常 阅读全文
摘要:
一、什么是内存泄漏 开发中,都能遇到或者听过两种关于java内存的异常情况:内存溢出(out of memory)和内存泄漏(memory leak)。 内存溢出指的是程序需要申请新的内存时,没有足够大小的内存空间供其使用。常见类型: 1、java.lang.OutOfMemoryError: Ja 阅读全文
摘要:
1、类中的静态语句块只能访问到在块之前定义的变量,定义在块之后的变量,可以在块中进行赋值,但是不能访问。如下示例: 上述第9行报错“非法向前引用”,可以注释掉②所在行,放开①行。 2、调用静态字段,只有直接定义这个字段的类才会被初始化,所以通过子类调用父类的静态字段,只会触发父类的初始化而不初始化子 阅读全文