摘要: 在编写动态sql时 trim的属性写错了,如下图: 错误示范: (接口的xml配置文件中:) 报错日志: 正确的示范: 接口的xml配置文件中: 打印出来的sql语句: 总结:(网上找的图,感觉说的很清晰!) prefix:字首 eg:set prefixOverrides:字首的替换 eg: , 阅读全文
posted @ 2019-07-25 23:38 德鲁大叔817 阅读(14304) 评论(0) 推荐(0) 编辑
摘要: 1. Java7中的HashMap(key,value均可以为空): 大方向上HashMap是一个数组,每个数组元素是一个单向链表。 上图中每个绿色的实体是嵌套类Entry的实例,Entry包含4个属性:key,value,hash,和单链表的next。 capacity:数组的容量,始终保持在2^ 阅读全文
posted @ 2019-06-28 00:09 德鲁大叔817 阅读(1473) 评论(0) 推荐(0) 编辑
摘要: 1.首先做一个测试:i++。输出结果为10,因为在底层实现的时候会引入一个临时变量具体为: 所以i++就是一个非原子性操作,采用多线程再次测试:测试结果中会因为i++的非原子性操作带来读写不一致问题。比如:1,3,2,2,4,5,6,7,8,9序列的出现。两个2的出现就说明了,两个线程在同时从主存中 阅读全文
posted @ 2019-06-17 16:38 德鲁大叔817 阅读(693) 评论(0) 推荐(0) 编辑
摘要: 1.Callable<V> :接口,多线程的一种实现方式,实现类重写方法,重写的call()方法有返回值或者抛出异常,需要配合着FutureTask类(实现了Runnable接口)使用: 2.Semaphore类:信号量,直接new对象,semaphore.acquire():获取信号量,如果获取失 阅读全文
posted @ 2019-06-04 17:59 德鲁大叔817 阅读(651) 评论(0) 推荐(0) 编辑
摘要: Collections的sort方法可以对List类型的集合进行排序,具体如下: 阅读全文
posted @ 2019-09-16 17:42 德鲁大叔817 阅读(2735) 评论(0) 推荐(0) 编辑
摘要: 1.一个多线程实例: 描述:某个火车售票系统,有多个窗口,但是票只在同一个系统中存有: 设计思路: 只存在一个系统: 设计细节: 使用单例设计模式确保多窗口公用一个对象, 使用Vector集合框架保证线程的并发的安全性; 多个窗口卖票,使用多线程模拟多个窗口,在run方法中采用组合的方式调用Syst 阅读全文
posted @ 2019-09-11 01:10 德鲁大叔817 阅读(260) 评论(0) 推荐(0) 编辑
摘要: 创建型设计模式: 创建型设计模式关注的是将对象的创建和使用相分离,让用户感受不到创建对象的细节问题,从而实现系统的解耦。 通常创建型设计模式包含5中(注意简单工厂模式 不包含于23种设计模式)。所谓5+1即: 简单工厂模式: 简单工厂模式不属于23中设计模式。 其基本思想: 比如:有一个农场,顾客只 阅读全文
posted @ 2019-09-06 01:56 德鲁大叔817 阅读(188) 评论(0) 推荐(0) 编辑
摘要: 单例模式保证了一个类的实例的全局唯一性。 饿汉模式的单例模式: 由于饿汉模式是不管程序是否需要该实例对象,都会进行创建,比较浪费资源。由此提出了懒汉模式。即就是:当程序中需要使用该实例对象时,才进行创建该实例对象。但此过程会涉及到多线程并发问题。 懒汉模式的单例模式: lk 阅读全文
posted @ 2019-09-03 00:28 德鲁大叔817 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1.TCP和UDP的区别: 1.是否面向连接? TCP通过三次握手,建立连接。 UDP是不用建立连接。 2.是否可靠? TCP传输的是可靠并有序的数据 UDP只是尽最大努力交付,不一定可靠 3.UDP具有较好的实时性 适用场景:短消息,多客户端,对信息可靠性要求不高,对效率要求高。 4.每一条TCP 阅读全文
posted @ 2019-09-01 14:21 德鲁大叔817 阅读(1334) 评论(0) 推荐(0) 编辑
摘要: TCP协议通信时,有建立连接(三次握手),数据交互,释放连接(四次挥手)。 三握:形象描述一个打电话的场景 四挥: 形象描述 推荐博文! 阅读全文
posted @ 2019-09-01 08:55 德鲁大叔817 阅读(269) 评论(0) 推荐(0) 编辑
摘要: 1.先来先服务算法(FCFS): 不可剥夺算法,实现简单,效率低下。 2.短作业优先算法(SJF): 在同时到达的进程中优先执行最短的进程。 3.优先级调度算法: 采用优先级来表示作业的紧急程度。又可分为: 可剥夺优先级调度算法 不可剥夺优先级调度算法 根据优先级随后是否可变可分为: 静态优先级调度 阅读全文
posted @ 2019-09-01 08:30 德鲁大叔817 阅读(2178) 评论(0) 推荐(0) 编辑
摘要: 通过之前的学习,我们知道:类加载就是根据一个类的全限定名,将其字节码文件 加载到JVM内部,并创建java.lang.Class对象实例。其实,一个类的加载过程应包括:加载,连接(验证,准备,解析),初始化。 加载: 通过类加载器,根据一个类的全限定名,将该类的字节码文件加载到JVM中(存储在方法区 阅读全文
posted @ 2019-08-29 11:37 德鲁大叔817 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 在程序中实现一个自定的类加载器:继承ClassLoader抽象类,重写findClass()。 如下位一个实例代码: 输出结果: 总结: 1.为什么要自定义类的加载器??? 通过自定义的类加载器,我们可以进行一些额外的操作,比如可以对字节码文件进行加密,解密。这就保护了原始字节码的安全性问题。 2. 阅读全文
posted @ 2019-08-26 15:12 德鲁大叔817 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 通过之前的学习我们了解到了常见的三种类加载器:BootstrapClassLoader,ExtClassLoader,APPClassLoader,以及用户也可通过继承ClassLoader抽象类重新写findClass()来自定义类加载器。那么在类的加载中,怎么保证类的全局唯一性???在JVM中我 阅读全文
posted @ 2019-08-26 14:12 德鲁大叔817 阅读(231) 评论(0) 推荐(0) 编辑