摘要: 阅读全文
posted @ 2022-05-13 21:22 努力的达子 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 单例模式分为 1.饿汉式 2.懒汉式 基本模式:构造器私有,提供对应的静态方法去获取! 1.饿汉式样例: public class Hungry { //重点1:构造器私有,外部将无法创建该对象 private Hungry(){ } //重点2:自己直接创建一个该对象,引用变量被final修饰之后 阅读全文
posted @ 2022-05-13 21:21 努力的达子 阅读(25) 评论(0) 推荐(0) 编辑
摘要: Volatile是java虚拟机提供的轻量级的同步机制,特点 1.保证可见性 2.不保证原子性 3.禁止指令重排 什么是JMM: JAVA内存模型,不存在的东西,概念!约定! JMM关于同步的规定 1.线程解锁前,必须把共享变量的值刷新会主内存 2.线程加锁前,必须读取主内存的最新值到自己的工作内存 阅读全文
posted @ 2022-05-13 21:20 努力的达子 阅读(54) 评论(0) 推荐(0) 编辑
摘要: 在jdk1.7后,并发执行任务!提高效率,大数据量! 思想:将大任务拆分成小任务! 特点: 工作窃取 工作窃取 这里维护的都是双端队列: 原理是:当B执行完毕后,可以从下面偷取A的去执行,以达到提高效率的目的! 阅读全文
posted @ 2022-05-13 21:15 努力的达子 阅读(25) 评论(0) 推荐(0) 编辑
摘要: /** * 链式编程的写法: * 如何用一行代码实现: * 1.ID必须是偶数 * 2.年龄必须大于23 * 3.用户名转为大写字母 * 4.用户名字母倒序 * 5.只输出一个用户 */ public class Test { public static void main(String[] arg 阅读全文
posted @ 2022-05-13 21:13 努力的达子 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 函数式接口:只有一个方法的接口 例如Runnable @FunctionalInterface public interface Runnable { void run(); } 简化编程模型,在新版本的框架底层大量使用 四大函数式接口: 1.Function接口:泛型设置方法参数类型和返回值类型 阅读全文
posted @ 2022-05-13 21:12 努力的达子 阅读(222) 评论(0) 推荐(0) 编辑
摘要: 线程池重点: 1.三大方法 2.7大参数 3.4种拒绝策略 池化技术: 程序的运行本质是:占用系统的资源!优化资源的使用==>池化技术 线程池、连接池、内存池、对象池等等 创建销毁十分浪费资源 池化技术:事先准备好一些资源,有人要用,就拿来用,用完归还 线程池的好处: 1.降低资源的消耗和浪费 2. 阅读全文
posted @ 2022-05-13 21:10 努力的达子 阅读(38) 评论(0) 推荐(0) 编辑
摘要: 发现队列Queue和List/Set平级! 阻塞队列的四组API: 方式 抛出异常 有返回值,不抛出异常 阻塞 等待 超时等待 添加 add offer() put() offer 移除 remove poll() take() poll 检测队首元素 element peek() 1.抛出异常ap 阅读全文
posted @ 2022-05-13 21:07 努力的达子 阅读(34) 评论(0) 推荐(0) 编辑
摘要: 读写锁:操作一个资源,写只能一个线程,读可以多个线程 具体代码如下: public class ReadWriteLock_Demo { public static void main(String[] args) { //创建了六个读线程和六个写线程去操作缓存! Mycache mycache=n 阅读全文
posted @ 2022-05-13 21:06 努力的达子 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 1.List集合在多线程下是不安全的 1.测试代码:创建30个线程同时操作一个资源list public class NotSafeDemo { public static void main(String[] args) { List<String> list=new ArrayList<>(); 阅读全文
posted @ 2022-05-13 20:38 努力的达子 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 1.lambda表达式的使用 1.lambda的使用: 只能用在函数式接口的地方,如Runable接口 //重点1:有FunctionalInterface的标签 @FunctionalInterface public interface Runnable { //重点2:接口中只有一个方法! pu 阅读全文
posted @ 2022-05-13 20:29 努力的达子 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 1.java默认有两个线程: 1.main线程 2.GC垃圾回收线程 2.java真的可以开启线程么? 答案是否定的,其实底层本地去调用是c++的方法,因为java是运行在虚拟机上的,无法操作硬件! 原理如下: public synchronized void start() { if (threa 阅读全文
posted @ 2022-05-13 20:28 努力的达子 阅读(72) 评论(0) 推荐(0) 编辑
摘要: 简介 1.什么是缓存 1.存在内存中的临时数据 2.将用户经常查询的数据放在缓存(内存)中,用户去查询数据就不用从磁盘上(关系型数据库数据文件)查询, 从缓存中查询,从而提高查询效率,解决高并发系统性能问题 2.为什么使用缓存 减少和数据库的交互次数,减少系统开销,提高系统效率 3.什么样的数据使用 阅读全文
posted @ 2022-05-13 20:04 努力的达子 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 动态sql:根据不同的条件生成不同的sql语句,其本质是在sql层面,加入一些逻辑代码 1.if标签的使用:(重点:会执行所有的fi标签,并进行条件判断,满足的部分进行sql拼接) 1.1接口中的定义: public interface UserMapper { List<User> getUser 阅读全文
posted @ 2022-05-13 20:01 努力的达子 阅读(616) 评论(0) 推荐(0) 编辑
摘要: 1.一对多处理 场景: 有两张表格宠物表pet和主人表person 宠物和人多对1的关系! 现需要查询出指定用户id的人和他下的所有宠物 1.person类的代码 //重点1:给宠物类起一个别名:wmd->用于更改类的别名 需要注意的是 该标签必须和下述配合使用(在mybatis的主配置文件中配置) 阅读全文
posted @ 2022-05-13 19:59 努力的达子 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 1.select 注解: 1.mybatis的主配置文件中的写法: <!--mybatis的数据库配置--> <configuration> <!--可以同时配置多个数据源,一个数据源等于一个environment--> <settings> <setting name="logImpl" valu 阅读全文
posted @ 2022-05-13 19:56 努力的达子 阅读(21) 评论(0) 推荐(0) 编辑
摘要: 1.limit做分页 1.接口中的写法 public interface PersonMapper { ... List<Person> getPersonByLimit(@Param("startIndex") int startIndex,@Param("pageSize") int pageS 阅读全文
posted @ 2022-05-13 19:55 努力的达子 阅读(29) 评论(0) 推荐(0) 编辑
摘要: logImpl 指定 MyBatis 所用日志的具体实现,未指定时将自动查找。 这是setting中日志的设置: key为:logImpl value: 1.SLF4J 2.LOG4J 3.LOG4J2 4.JDK_LOGGING 5.COMMONS_LOGGING 6.STDOUT_LOGGING 阅读全文
posted @ 2022-05-13 19:54 努力的达子 阅读(19) 评论(0) 推荐(0) 编辑
摘要: 问题描述:如果数据库查询出的字段名称和实体类的字段名称对应不上,会导致查询出的为空 解决办法 1.更改sql中的查询字段名称,起个别名如:(暴力直接,不推荐使用) select id,name as person_name,age,messeg from person 2.使用resultmap(推 阅读全文
posted @ 2022-05-13 19:45 努力的达子 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 理解我们之前讨论过的不同作用域和生命周期类别是至关重要的,因为错误的使用会导致非常严重的 并发问题 并发问题的产生:获取到连接不关闭 1.SqlSessionFactoryBuilder 1.1一旦创建了SqlSessionFactory,就不再需要它了 1.2局部变量 2.SqlSessionFa 阅读全文
posted @ 2022-05-13 19:44 努力的达子 阅读(27) 评论(0) 推荐(0) 编辑