随笔分类 -  【技巧】-java实用技巧

java实用技巧
摘要:结论如下: 1、尽可能减少Join语句中的NewtedLoop的循环次数,“永远用小结果集驱动大的结果集”; 2、优先优化NestedLoop的内层循环; 3、保证Join语句中被驱动表上Join条件字段已经被索引; 4、当无法保证被驱动表的Join条件字段被索引且内存资源充足的前提下,不要太吝惜J 阅读全文
posted @ 2021-01-17 16:09 小小吸血鬼 阅读(102) 评论(0) 推荐(0)
摘要:要想弄清楚这个问题,那就得先搞清楚COUNT()函数,COUNT()函数可以有如下几种用法: 1、SELECT COUNT(字段名) FROM 表名; 解释:统计该字段名不为null的数据总数。 2、SELECT COUNT(*) FROM 表名; 解释:统计该数据表中数据总数。 3、SELECT 阅读全文
posted @ 2020-11-17 10:06 小小吸血鬼 阅读(2788) 评论(0) 推荐(0)
摘要:1、泛型类可能有多个参数,此时应将多个参数一起放到尖括号内,比如:<E1,E2,E3> 2、泛型类的构造器如下: public GenericClass(){} *错误示例:public GenericClass<E>(){} 3、实例化后,操作原来泛型位置的结构必须与指定的泛型类型一致。 4、泛型 阅读全文
posted @ 2020-11-14 12:10 小小吸血鬼 阅读(324) 评论(0) 推荐(0)
摘要:什么是Steam? 是数据渠道,用于操作数据源(集合、数组等)所生成的元素序列。 *集合讲的是数据,Stream讲的是计算! 注意: ①Stream不会存储元素; ②Stream不会改变源对象,相反,他们会返回一个持有结果的新的Stream; ③Stream操作是延迟执行的,这意味着他们会等到需要结 阅读全文
posted @ 2020-11-14 11:50 小小吸血鬼 阅读(144) 评论(0) 推荐(0)
摘要:ASCII:美国标准信息交换码,用一个字节的7为可以表示(仅限于英文)。 ISO8859-1:拉丁码表(欧洲码表),用一个字节的8为表示。 GB2312:中国的中文编码表,最多两个字节编码所有字符。 GBK:中国的中文编码表升级,融合了更多的中文文字符号,最多两个字节编码。 Unicode:国际标准 阅读全文
posted @ 2020-11-05 17:30 小小吸血鬼 阅读(268) 评论(0) 推荐(0)
摘要:对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而允许把这种二进制流持久地保存在磁盘上,或通过网络将这种二进制流传输到另一个网络节点。当其他程序获取了这种二进制流,就可以恢复成原来的Java对象。 序列化的好处在于可将任何实现了Serializable接口的对象转化为字节数据,使 阅读全文
posted @ 2020-11-05 15:09 小小吸血鬼 阅读(116) 评论(0) 推荐(0)
摘要:可重复注解: 在需要重复的注解上声明@Repeatable,设置其成员值为包含其的注解(如:XXX.class); 设置需要重复的注解的Target和Retention等元注解与包含其的注解相同 类型注解: ElementType.TYPE_PARAMETER 表示该注解能写在类型变量的声明语句中( 阅读全文
posted @ 2020-10-30 09:45 小小吸血鬼 阅读(309) 评论(0) 推荐(0)
摘要:需要将ajax设置为同步提交 async : false 原因是: 上传时的正常流程是:form提交,action得到上传文件流,然后保存到服务器。 成功后才能刷新上传页面,提前刷新或者关闭上传页面都会导致上传数据中断,导致上传失败! 实际上我使用AJAX时,当我请求servlet处理上传事件之时, 阅读全文
posted @ 2020-09-25 09:59 小小吸血鬼 阅读(484) 评论(0) 推荐(0)
摘要:场景说明: 之前有个业务需要在java中创建数据库用户,最终采用了执行拼接shell命令的方式解决; 解决方式: String sb = "mysql -u*** -p*** -e "创建用户的sql" "; Process process = Runtime.getRuntime().exec ( 阅读全文
posted @ 2020-07-23 09:37 小小吸血鬼 阅读(391) 评论(0) 推荐(0)
摘要:循环依赖的发生: 循环依赖发生类似于java中的线程死锁,A实例化需要依赖B,B实例化需要依赖A,如此陷入依赖循环,就出现了循环依赖。 解决思路: A实例化的时候由于需要依赖B,A此时处于无法实例化状态(B此时没有实例化,无法依赖),所以可以将半实例化的A做一个伪实例化声明(Spring中的第三级缓 阅读全文
posted @ 2020-07-09 13:59 小小吸血鬼 阅读(334) 评论(0) 推荐(0)
摘要:1.函数式接口:只要是函数式接口,就可以是lambda public static void main(String[] args) { Function function1 = new Function<String,String>() { @Override public String appl 阅读全文
posted @ 2020-05-22 16:21 小小吸血鬼 阅读(170) 评论(0) 推荐(0)
摘要:java.util.concurrent.Semaphore是用来控制线程数量,可以用来做限流Deom如下: public class SemaphoreDemo { public static void main(String[] args) { //线程数量,可以用来控制限流 Semaphore 阅读全文
posted @ 2020-05-21 15:56 小小吸血鬼 阅读(168) 评论(0) 推荐(0)
摘要:Timer 这个是java自带的java.util.Timer类,这个类允许调度一个java.util.TimerTask任务。使用这种方式可以让你的程序按照某一个频度执行,但不能在指定的时间允许,一般用的比较少。 public static void main(String[] args) { T 阅读全文
posted @ 2020-05-12 10:28 小小吸血鬼 阅读(358) 评论(0) 推荐(0)
摘要:设计模式七大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两 阅读全文
posted @ 2020-03-16 16:00 小小吸血鬼 阅读(324) 评论(0) 推荐(0)
摘要:1.一个类中若没有任何构造器,则编译的时候回默认生成一个无参构造器; 2.若父类中已经有有参构造方法,那么子类中也必须存在有参构造方法,且必须通过super关键字调用父类有参构造器; 3.若父类中同时存在有参和无参构造器,那么子类中的有参构造器会默认执行父类无参构造方法,参考代码如下: public 阅读全文
posted @ 2020-03-01 15:43 小小吸血鬼 阅读(129) 评论(0) 推荐(0)
摘要:相同点: StringBuffer和StringBuilder在功能上是完全相等的,他们都继承自AbstractStringBuilder,使用方法也都一样; 可以对StringBuffer和StringBuild对象进行改变,每次改变还是在原来的对象上发生的,不会重新new出新的StringBuf 阅读全文
posted @ 2020-03-01 11:11 小小吸血鬼 阅读(278) 评论(0) 推荐(0)
摘要:1.实用内部类实现多继承限制 实例如下: public class MutiExtendsDemo { public static void main(String []args){ //实现了类C同时可以调用类A中showA方法和类B中showB方法 C c = new C(); c.showA( 阅读全文
posted @ 2020-02-27 11:33 小小吸血鬼 阅读(230) 评论(0) 推荐(0)
摘要:23种设计模式(1)-单例模式 定义: 单例模式,是一种常用的软件设计模式。在它的核心结构中只包含一个被称为单例的特殊类。通过单例模式可以保证系统中一个类只有一个实例。即一个类只有一个对象实例。 特点: 1、单例类只能有一个实例。 2、单例类必须自己自己创建自己的唯一实例。 3、单例类必须给所有其他 阅读全文
posted @ 2019-12-16 17:21 小小吸血鬼 阅读(230) 评论(0) 推荐(0)