MySQLSyntaxErrorException: Unknown error 1146和SQLSyntaxErrorException: Unknown error 1146
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown error 1146异常信息123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154### Cause: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExcept ...
java.util.zip.ZipException: invalid CEN header (encrypted entry)
异常信息1234567891011121314151617181920212223242526272829303132java.util.zip.ZipException: invalid CEN header (encrypted entry) at java.util.zip.ZipFile.open(Native Method) at java.util.zip.ZipFile.<init>(ZipFile.java:225) at java.util.zip.ZipFile.<init>(ZipFile.java:155) at java.util.zip.ZipFile.<init>(ZipFile.java:126) at com.gao5805123.demo.test.Examination.aaa(Examination.java:22) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessor ...
事务的隔离级别
事务与事务隔离级别的含义123451.事务即数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元)2.事务并发会引发脏读,不可重复读和幻读,事务隔离即是解决此类问题的方法3.低级的事务隔离级别支持更高的并发操作,系统代价也比较小4.慎重使用过于高级的事务隔离级别5.JDBC代码修改的事务隔离级别是只针对数据库层面的
脏读1指一个事物读取了另一个事物尚未提交的数据
**例如: **12小明的银行卡中有1000元,由于不够交学费,小明同家里联系让家人汇500元到小明的银行卡中.小明的爸爸就在手机上的转账到银行卡给小明汇了500元,并告诉小明钱已经汇过去了,当小明进入查看余额页面时,银行卡中的余额显示有1500元,但是汇款系统操作失败了,自动回滚了事务,系统将小明的爸爸给小明汇到银行卡的500元退回了小明爸爸的账户中,而此时小明又再次查看银行卡中的余额时,余额又变回了1000元,所以小明就跟他爸爸说刚汇过来的钱没了解决方法: 在一个事务提交前,任何其他事物都不可以读取其修改 ...
java.sql.SQLException:
异常信息123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147org.springframework.dao.DataIntegrityViolationException: ### Error updating database. Cause: java.sql.SQLException: #HY000### The error may exist in ...### The er ...
java.sql.SQLIntegrityConstraintViolationException:
异常信息123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132### Cause: java.sql.SQLIntegrityConstraintViolationException: #23000; #23000; nested exception is java.sql.SQLIntegrityConstraintViolationException: #23000] with root causejava.sql.SQLIntegrityConstraintViola ...
判断素数的四种方法
1.暴力破解实现描述12341.若传入的数字小于2,则不符合素数的定义,抛出相应的异常2.能够被除1与它本身以外的数整除的数,皆是非素数(即合数)3.除2以外的偶数,皆有多个因数,所以除2以外的偶数皆是非素数(即合数)4.数的最小因数必然不大于该数的平方根,通过计算平方根的结果进行循环可以避免不必要的计算流程
代码展示12345678910111213141516171819202122232425262728293031323334353637import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class PrimeNumberUtil { private static final Logger LOGGER = LoggerFactory.getLogger(PrimeNumberUtil.class); /** * 暴力求解<br> * 素数是大于1的自然数.除了1和它本身外,其他数都不是它的因子<br> * 2本身是素数,但除2以外的所有偶数都 ...
IDEA连接MySQL数据库报Server returns invalid timezone. Need to set 'serverTimezone' property.
异常信息
解决方法
在Advanced下找到serverTimezone,未找到可以下滑滚轮到最下面进行添加,然后将其Value设为Asia/ShangHai或UTC即可
定位和排查OOM流程
需要排查日志的情况1231.在GC过程中,会Stop the World,即不干其他活,比如一段早该运行好的程序,在某个时刻卡住,业务日志上没有异常2.通过CAT等监控工具,发现某段时间里内存用量居高不下3.稳定重现OOM问题,比如一天一次,或每天频繁出现OOM异常
通过GC日志确认问题
java -XX:+ PrintGC -XX:+ PrintGCApplicationStopedTime SyncupData.java
1231.能够看到GC发生时间和回收的内存量2.能结合卡住的时间点,确认时因为GC造成的Stop the World3.能定量观察到GC的频繁程度
RunTime类获取当前日志用量代码展示12345678910111213public class MemoryOptimizationTest { public static void main(String[] args) { Runtime runtime = Runtime.getRuntime(); System.out.println("Ja ...
Java内存优化
Java代码中的内存泄漏1231.内存泄漏的原因是对象上有强引用2.虽然Java程序运行完后,内存会回收,但应让对象尽早被回收3.出现内存泄漏后,会导致Stop The World和OOM异常
finalize方法1231.Object类中的方法,任何类都可以重写该方法2.当JVM通过根可达算法,判断某对象可以被回收后,会判断该类是否重写了finalize方法,如果没有,将直接回收;如果重写了finalize方法,会将该对象放入F-Queue队列中,有线程专门遍历并执行该类的finalize方法,执行后再判断该类是否可被回收,如是则将该对象回收3.可以在finalize方法中编写类回收前所需的动作,但是如果编写不当,会造成对象无法回收,从而引发内存泄漏问题,所以如果没有特殊理由,不建议重写finalize方法
代码展示1234567891011121314151617181920212223242526272829303132public class MemoryOptimizationTest { private static MemoryOptimizationTe ...
ConcurrentHashMap
与HashMap、SynchronizedMap的差别12341.HashMap线程不安全2.ConcurrentHashMap在JDK1.7中是以锁segment的方式保证并发,在JDK1.8中是以CAS和synchronized的方式保证并发3.SynchronizedMap的put和get封装了HashMap相关方法,并通过互斥锁保证线程安全4.ConcurrentHashMap做put时,用CAS+Synchronized保证线程安全,更轻量
JDK1.7的实现方式1231.segment数组 -> HashEntry数组 -> HashEntry列表2.读取时不加锁,写入时锁segment3.两次hash,一次定位到segment,一次定位到HashEntry头部
JDK1.8的实现方式1231.以node数组加列表或红黑树的方式实现2.冲突会产生链表,链表数大于8会以红黑树方式存储3.遍历链表的时间复杂度是O(n),遍历红黑树的时间复杂度是O(logN),利于冲突数大的场景
Node对象
121.val与next都会在扩容时发生变化,所以使用了volatile ...