摘要: substring_index(str,delim,count) str:要处理的字符串 delim:分隔符 count:计数 例子: str=www.wikibt.com substring_index(str,'.',1) 结果是: www substring_index(str,'.',2) 阅读全文
posted @ 2023-08-01 21:02 风筝上的猫 阅读(75) 评论(0) 推荐(0)
摘要: 1、group by 语句用来与聚合函数(COUNT、SUM、AVG、MIN、MAX)联合使用得到一个列或多个列 2、having 只能在group by之后(即使用having的前提条件是分组) 3、如果过使用where和having,那么where在前 4、当一个语句同时出现where、grou 阅读全文
posted @ 2023-08-01 20:57 风筝上的猫 阅读(176) 评论(0) 推荐(0)
摘要: 一、jdk动态代理的问题 使用jdk动态代理存在一个问题,jdk提供的动态代理只能为拥有接口的类进行动态代理,但是对于没有实现接口的类,则没有办法进行动态代理。 二、什么是cglib动态代理 cglib是是第三方的工具库。其原理是继承,cglib通过继承目标类,创建他的子类,在子类当中重写父类的相关 阅读全文
posted @ 2023-08-01 20:50 风筝上的猫 阅读(137) 评论(0) 推荐(0)
摘要: 异常体系图示 Thorwable是整个错误和异常的父类 程序无法处理的 由JVM产生或抛出的叫做错误Error 异常Exception 包括 运行时异常和非运行时异常 运行时异常(非受检) 是程序未检测出来的异常,这种错误一般是由我们的逻辑错误所引起的 逻辑错误造成的异常仅运行期间才能被检测 Ari 阅读全文
posted @ 2023-08-01 20:46 风筝上的猫 阅读(54) 评论(0) 推荐(0)
摘要: MySQL索引是一种用于提高数据库查询性能的数据结构。 在 MySQL 中,索引是在存储引擎层实现的,所以并没有统一的索引标准,即不同存储引擎的索引的工作方式并不一样。而即使多个存储引擎支持同一种类型的索引,其底层的实现也可能不同。由于 InnoDB 存储引擎在 MySQL 数据库中使用最为广泛,所 阅读全文
posted @ 2023-08-01 20:41 风筝上的猫 阅读(42) 评论(0) 推荐(0)
摘要: synchronized 是 Java 中用于实现线程同步的关键字,它可以应用于方法或代码块上。它的作用是确保在同一时间只有一个线程可以执行被 synchronized 修饰的代码,从而避免多线程并发访问共享资源导致的数据不一致或冲突问题。 理解 synchronized 的关键概念是"互斥访问"和 阅读全文
posted @ 2023-08-01 20:20 风筝上的猫 阅读(114) 评论(0) 推荐(0)
摘要: 在 Java 中,使用线程池可以更有效地管理和控制线程的创建和回收,提高系统的性能和资源利用率。 使用原则:线程池尽量不要使用的时候创建,不要在方法中创建线程池,这样会频繁创建线程时。应该在项目启动时就把线程池创建好。 一、创建线程池: 1、使用 ExecutorService 接口的实现类的工厂方 阅读全文
posted @ 2023-08-01 20:13 风筝上的猫 阅读(1230) 评论(0) 推荐(0)
摘要: 偏向锁 --> 轻量级锁 --> 重量级锁,是synchronized的三种形态转换。 锁可以升级但不能降级,意味着偏向锁升级成轻量级锁后不能降级成偏向锁。这种锁升级却不能降级的策略,目的是为了提高获得锁和释放锁的效率。 线程的状态: 就绪队列可能随时被CPU选中执行;阻塞队列需要等其他线程释放锁后 阅读全文
posted @ 2023-08-01 16:36 风筝上的猫 阅读(63) 评论(0) 推荐(0)
摘要: 一、什么是线程池 在java中,我们可以利用线程做很多事情,创建多个线程来高效完成任务。 线程池可以看作是线程的集合,是一种基于池化思想管理线程的工具。 举个例子: for(int i=0;i<线程数量;i++){ Thread thread=new Thread(任务); thread.start 阅读全文
posted @ 2023-08-01 16:31 风筝上的猫 阅读(61) 评论(0) 推荐(0)