
Java
文章平均质量分 58
皮蛋瘦肉
不忘初心,方得始终!
展开
-
解决Class.forName 加载驱动时出现ClassNotFoundException
在jdbc应用中需要使用Class.forName加载jdbc驱动try{ Class.forName("com.mysql.jdbc.Driver");}catch(ClassNotFoundException e) { System.out.println(e);}如果出现ClassNotFoundException,说明工程中没有导入jdbc 的jar包.原创 2018-01-11 18:41:05 · 12962 阅读 · 0 评论 -
JDK9.0 HashSet源码阅读记录
继承体系私有属性构造器添加元素移除元素其他方法获取元素数量检测是否为空检测是否包含对象清空所有元素迭代器实例相关文章HashMap的key是不允许重复的,HashSet就是依赖这个特性实现其元素值不重复的功能,HashSet是基于HashMap来实现的,其对数据的操作调用的是HashMap的相关方法.具体HashMap的实现原理可以查看Java9.0 H...原创 2018-06-08 12:00:57 · 210 阅读 · 0 评论 -
HashSet、LinkedHashSet、TreeSet使用区别
HashSet:哈希表是通过使用称为散列法的机制来存储信息的,元素并没有以某种特定顺序来存放;TreeSet:提供一个使用树结构存储Set接口的实现,对象以升序顺序存储,访问和遍历的时间很快。LinkedHashSet:以元素插入的顺序来维护集合的链接表,允许以插入的顺序在集合中迭代; //HashSetHashSet<String> strHashSet = new...原创 2018-06-08 16:18:16 · 916 阅读 · 1 评论 -
从字节码看try catch finally 执行流程
创建一个简单的例子public class TryCatch { public static void main(String[] args) { int num = 0; try { num = 11; return; } catch (Exception e) { ...原创 2018-06-26 17:14:03 · 307 阅读 · 0 评论 -
properties文件加密处理
前言常规处理-不加密使用druid的配置进行加密使用Java编码进行加密处理.前言 开发中会把一些属性配置放在properties,以方便进行管理,但是如果相关数据未进行加密,便可能导致一些私密数据暴露,比如数据库的用户名和密码.本文章主要讲解两种方式对数据库配置文件进行加密. 一种是使用druid自带的配置,该方式使用简便,但是通用性不强,只适用于数据...原创 2018-06-19 23:54:05 · 5596 阅读 · 0 评论 -
spring boot application.properties 官方文档
spring boot application.properties 官方文档 进去后搜索:Appendices [toc]使能调试debug=false # Enable debug logs.trace=false # Enable trace logs.LOGGINGlogging.config= # Location of the logging con...原创 2018-06-28 01:51:12 · 1415 阅读 · 0 评论 -
在foreach循环集合时需要注意的问题
这里以ArrayList为例源代码public class ArrayListDemo { public static void main(String[] args) { //list List<Integer> list = new ArrayList<Integer>(); list.add(234)...原创 2018-07-11 15:05:36 · 1547 阅读 · 0 评论 -
使用holdLock()方法检测当前线程是否持有锁
Thread提供了holdLock()方法检测当前线程是否持有锁,注意,是当前线程.package com.util.concurrent.thread;/** * @program: javabase * @description: 检测线程是否持有锁 * @author: Mr.lgj * @version: * @See: * @create: 2018-07-17 16...原创 2018-07-17 17:18:50 · 4091 阅读 · 1 评论 -
IDEA中配置输出gc日志
1.配置 2.程序中调用 System.gc();后,会输出gc日志原创 2018-07-11 22:40:24 · 1524 阅读 · 0 评论 -
IDEA中使用Maven实现Mybatis代码自动生成
创建需要生成的数据表创建Mybatis代码自动生成配置文件配置Maven插件配置运行创建需要生成的数据表数据表结构CREATE TABLE `scheduler` ( `scheduler_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '任务ID', `name` varchar(30) DEFAULT NUL...原创 2018-07-05 15:09:43 · 1259 阅读 · 0 评论 -
Java 9.0 各个集合的基本原理总结
Hashtable继承体系私有变量保存结构实现原理index值计算rehash处理是否线程安全是否接受null值Hashtable继承体系跳转目录extends Dictionary&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;K,V&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;gt; implem原创 2018-07-12 11:32:03 · 205 阅读 · 0 评论 -
Vector并非是绝对的线程安全类
众所周知,Vector是一个线程安全的类,其在add()等操作上添加了synchronized关键字实现同步,但是并非是绝对的线程安全类. 当进行迭代遍历时,如果在另一个线程执行add(),remove()操作,仍然会有机率抛出异常ConcurrentModificationException.Java版本:9.0.1package com.util;import java.util...原创 2018-07-18 17:36:58 · 2815 阅读 · 0 评论 -
简述override和overload的区别
1.重写时方法的参数类型必须一样2.方法访问权限子类必须比父类的大,并且父类方法不能使用private3.子类返回值类型必须是父类方法的子类或者相同类4.子类方法抛出的异常必须和父类抛出的异常相同或者为其子类...原创 2018-08-07 18:07:59 · 749 阅读 · 0 评论 -
shiro 异常类总结
继承体系Throwable---Exception------RuntimeException----------ShiroException//Environment实例相关的异常---------------EnvironmentException//尝试获取一个对象,但是变量和对象的类型不一致(同一个类,实现,扩展)--------------------Require...原创 2018-09-02 16:45:22 · 788 阅读 · 0 评论 -
线程池原理--总索引
文章目录线程池原理--总索引线程池原理–总索引原创 2018-10-14 11:02:30 · 407 阅读 · 1 评论 -
Java9.0 HashMap源码阅读记录
相关文章JDK9.0 ArrayList源码阅读记录 这里写链接内容原创 2018-06-07 10:12:53 · 509 阅读 · 1 评论 -
JDK9.0 Hashtable源码阅读记录
HashTable继承体系Class Hashtable&amp;amp;amp;amp;amp;lt;K,V&amp;amp;amp;amp;amp;gt;java.lang.Object java.util.Dictionary&amp;amp;amp;amp;amp;lt;K,V&amp;amp;amp;amp;amp;gt; java.util.Hashtable&amp;amp;amp;amp;原创 2018-06-07 00:38:53 · 216 阅读 · 0 评论 -
ArrayList和LinkedList性能比较
ArrayList的本质上是一个数组,可以通过索引直接访问元素. LinkedList的本质上是一个链表,链表是无法通过索引直接访问的,LinkedList通过索引访问属于间接访问,也就是通过遍历来获取索引处的值,因此其效率相对较低,下面通过代码进行测试.添加,查找,删除测试添加//添加元素比较//ArrayListArrayList&amp;amp;amp;amp;amp;lt;Integer&amp;amp;amp;amp;amp;gt; arrayLi原创 2018-05-24 18:58:20 · 1787 阅读 · 0 评论 -
JVM进程终止的情况
1.程序运行到最后,执行完所有的指令,便会结束. 2.程序运行到显示使用System.exit()或Runtime,getRuntime().exit.退出当前进程. 3.程序执行过程中遇到未捕获的异常或者错误而结束. 4.程序所在的平台强制结束JVM的运行.原创 2018-01-22 10:18:49 · 1966 阅读 · 0 评论 -
Java的三个访问控制符
Java 提供了三个访问控制符,用来控制类属性和类u方法的访问权限。三个访问控制符为:private,protect,public.1.private(类内访问权限):如果类属性和方法使用该访问控制符,则只有该类能够使用该属性和方法。一般使用该控制符将类的属性隐藏在类的内部。2.protect(包内或者子类访问权限):同一个包内的类能够对其进行访问;或者是不同包中的子类也可对其进行访问原创 2018-01-05 21:59:32 · 1008 阅读 · 0 评论 -
面向对象的基本特征
面向对象的基本特征面向对象有三个基本特征: 1.封装 encapsulation 2.继承 inheritance 3.多态 polymorphism封装: 软件将对象的实现细节给隐藏起来,然后通过一些公用的方法提供该对象的功能实现。继承 继承是面向对象实现软件复用的一种手段,当子类继承父类之后,将直接获得父类的属性和方法。多态 子类对象可以直接赋给父类变量,但运行时依原创 2018-01-05 15:37:44 · 256 阅读 · 0 评论 -
抽象类和抽象方法总结
在某些情况下,某些父类只知道其子类应该包含怎样的方法,但不知道如何实现该方法。这些父类便可以定义为抽象类,子类继承抽象父类后,再实现父类的方法。也就是说,我们可以构造出一个固定的一组行为的抽象描述,但是这组行为却可以有很多种具体的实现方式,这个抽象描述就是抽象类。几个特性: 1.抽象类和抽象方法需使用abstract修饰符来修饰。并且抽象方法不能有方法体。public abstrac原创 2018-01-06 15:47:44 · 346 阅读 · 0 评论 -
java重载和重写区别
1.什么是重载? 在一个类的内部,如果存在多个方法,且方法的有相同的名字,不同的参数,便会产生重载。 它通过检测实参和形参的类型和数量是否匹配进行查找适配的方法,进而调用,如果找不到合适的方法。就会出现编译错误。 比如以下两个函数就是重载,方法名相同,形参类型不同,但是方法的返回值类型可以不同。class test{ void printDat() { }原创 2018-01-07 11:42:43 · 359 阅读 · 0 评论 -
Type Date cannot be resolved to a type 解决
今天在写mybatis测试代码,其中用到日期变量。 编写如下代码后便报错:Type Date cannot be resolved to a type。private Date datetime;后来查看到Date 在两个包中都用定义。 java.uti.Date 和 java.sql.Date。 因此,如果出现两个包中都有定义的情况下,编译器便会报如上错误。 在使用时...原创 2018-03-03 11:10:13 · 8135 阅读 · 0 评论 -
[蓝莓商城]使用Spring的mail API发送邮件
蓝莓商城今天使用Spring的mail API发送邮件。 下面说一下流程。Maven依赖<dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</v...原创 2018-04-25 22:10:31 · 775 阅读 · 0 评论 -
Java利用递归实现查找树的节点的所有子节点和所有的终结节点
这是商品管理页面. 商品分类是:大类-->一级分类-->二级分类-->品牌-->产品. 有一个需求是,当我只选择了大类(手机/数码/配件)和一级分类(手机通讯),我希望商品展示页面能够展示手机通讯下面所有的产品. 也就是说需要寻找分类表里手机通讯下的品牌分类节点. 分类表是树形结构. 本来想用MySQL的函数或者存储过程实现.但是感觉操作数据比较麻烦,不好写,当然原因是我不太精通...原创 2018-05-14 18:21:16 · 38621 阅读 · 5 评论 -
JDK9.0 ArrayList源码阅读记录
可被序列化implements java.io.Serializableprivate static final long serialVersionUID = 8683452581122892189L;ArrayList实现了Serializable接口,并指定了serialVersionUID.说明其可以被序列化.构造函数ArrayList有三种构造函数 public ...原创 2018-05-14 21:01:26 · 358 阅读 · 1 评论 -
Java中Class的getDeclaredMethods和getMethods的区别
在实际中经常需要使用反射机制获取类的属性和方法等信息. Class中有两个方法可以获取类的方法:getDeclaredMethods和getMethods 下面实例说明这两个的区别创建person类class person{ private float height; private float weight; void getPersonName() {...原创 2018-05-21 11:50:48 · 3445 阅读 · 0 评论 -
JDK9.0 Vector源码阅读记录
前言Vector和ArrayList一样,本质上就是一个动态数组,当容量不够时便会进行扩容最大的长度不超过Integer的最大值(0x7fffffff).Vector是线程安全的.Vector的继承体系java.lang.Object java.util.AbstractCollection&amp;lt;E&amp;gt; java.util.AbstractList&amp;lt;E&amp;gt;...原创 2018-05-25 12:11:59 · 236 阅读 · 0 评论 -
Java对象序列化总结
含义目标需实现接口SerializableExternalizable序列化实例含义对象序列化(Serialize)指将一个Java对象写入IO流中,反序列化(Deserialize)是从IO流中恢复该对象.目标目标是将对象保存在磁盘中,或允许在网络中传输对象,对象序列化机制允许把内存中的Java对象转换成平台无关的二进制流,从而实现对象的保...原创 2018-06-11 12:33:02 · 193 阅读 · 0 评论 -
实例说明Java中的浅拷贝和深拷贝
看到集合中的类都继承了Cloneable接口,便学习了Java中的浅拷贝和深拷贝.简单变量复制int num1 = 5;int num2 = 0;num1 = num2;System.out.println(&amp;quot;num1 = &amp;quot; + num1 + &amp;quot; num2 = &amp;quot; + num2);num2 = 112;System.out.p原创 2018-05-24 16:07:29 · 451 阅读 · 0 评论 -
JDK9.0 LinkedList源码阅读记录
概述LinkedList继承体系java.lang.Object java.util.AbstractCollection&amp;amp;amp;amp;amp;amp;lt;E&amp;amp;amp;amp;amp;amp;gt; java.util.AbstractList&amp;amp;amp;amp;amp;amp;lt;E&amp;amp;amp;amp;amp;amp;gt;原创 2018-05-24 17:32:13 · 210 阅读 · 0 评论 -
JDK各个队列基本特性比较
类名性质继承结构构造器线程安全及实现技术PriorityQueue优先级队列,插入后会对对象进行排序,插入的对象要么实现 接口Comparable,要么初始化时传入Comparator对象。poll()获取到的是排好序的对象,但是使用迭代器获得的是随机的对象。...原创 2018-12-08 01:30:14 · 1719 阅读 · 0 评论