![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Java学习
文章平均质量分 91
养生编程大队长
养生编程,你值得拥有,妈妈再也不用担心我的头发
展开
-
maven打包顺序与jvm类加载顺序
maven打包顺序,jvm类加载顺序,jsr303原创 2023-02-20 16:21:38 · 1466 阅读 · 0 评论 -
spi机制和JDBC
DriverManager使用的是spi机制来加载驱动的,看一下mysql原创 2020-08-17 16:04:48 · 149 阅读 · 0 评论 -
记一次数据连接失败问题Caused by: java.io.EOFException: Can not read response from server. Expected to read 4 by
异常信息,The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at sun.reflect.NativeConstructorAccessorImpl.newInstance...原创 2020-06-01 13:35:44 · 5167 阅读 · 0 评论 -
java调用cmd,window平台,cmd可以调用,java调用不了
Runtime.getRuntime().exec(string),string内容是cmd里面的命令,例如 java -version。这个是常规的调用方式,我使用这个方式打包mvn的过程中,不起作用。在cmd页面可以调用mvn命令,在java代码中使用上述方式没用,所以我就把mvn打包的过程保存成bat文件,然后使用上述方式执行bat文件,是可以正确执行的,...原创 2019-10-26 18:20:36 · 450 阅读 · 0 评论 -
记一次Calendar引起的bug,导致数据库连接达到最大
再一次调接口的过程中,发现后台有大量的数据库异常,报的错误是被加入mysql 异常hosts,需要使用命令flush-hosts清空。我看了一下我的后台有大量的数据量连接异常信息。花了很大的例如追踪,发现是因为Calendar解析时间段引起的。示例代码如下,我通过requet拿到时间段的起始时间和终止时间,然后使用循环,把时间解析处理。例如begin_day="2019-10-17",end_...原创 2019-10-26 17:28:51 · 241 阅读 · 0 评论 -
response输出中文乱码
response输出中文乱码,中文乱码response.setCharacterEncoding("UTF-8");response.setContentType("text/html;charset=utf-8");PrintWriter out = response.getWriter();out.print("你好");out.close();...原创 2019-09-21 07:17:58 · 569 阅读 · 0 评论 -
java的四中引用
java的四中引用,4中引用,引用https://www.cnblogs.com/yw-ah/p/5830458.html强引用。虚引用每次垃圾回收是都会被清楚弱引用,第二次垃圾回收是被清楚软引用,内存不足的时候会被回收...原创 2019-09-21 07:18:34 · 101 阅读 · 0 评论 -
类加载器和反射
类加载器和反射获得一个类的类对象有哪些方式?答:- 方法1:类型.class,例如:String.class- 方法2:对象.getClass(),例如:”hello”.getClass()- 方法3:Class.forName(),例如:Class.forName(“java.lang.String”)如何通过反射创建对象?答:- 方法1:通过类对象调用newIn...原创 2019-09-22 07:29:58 · 79 阅读 · 0 评论 -
java基础总结:
java基础总结:1.面向对象的特性,(1)抽象(2)继承(3)封装(4)多态2.https://www.cnblogs.com/chen-kh/p/6696303.htmljava函数传递的都是值,只不过基本类型传递的是实际值,对象传递的是引用值,就是地址值,这个地址指向的对象和原来的地址是一样的,如果函数体内部改变了这个地址的指向对象,则不会改变原对象。如果这个地址改变了指向对象的...原创 2019-09-22 07:39:09 · 77 阅读 · 0 评论 -
内部类
内部类:https://www.cnblogs.com/chenssy/p/3388487.html1.成员内部类,内部类作为一个类的成员函数存在。根据修饰符的不同这个内部类的可见性也是不同的。常用的是默认的default,public。内部类的创建依赖于外部类,需要先new 一个外部类出来2.局部内部类,它是嵌套在方法和作用域内的。3.匿名内部类,它是在放方法中的。4...原创 2019-09-22 07:39:44 · 74 阅读 · 0 评论 -
操作符访问权限
原创 2019-09-22 07:40:46 · 59 阅读 · 0 评论 -
缓存的多种实现方式
1.谷歌的guava包下面的Cache,基于内存的缓存2.自定义缓存,例如使用静态Map实现3.分布式缓存redis,memcached4.EHcache原创 2019-09-21 07:17:10 · 822 阅读 · 0 评论 -
java拆箱和装箱
java拆箱和装箱https://blog.csdn.net/u013309870/article/details/70229983装箱就是自动将基本数据类型转换为包装器类型;拆箱就是 自动将包装器类型转换为基本数据类型。...原创 2019-09-21 07:15:51 · 92 阅读 · 0 评论 -
LinkedList
LinkedList,操作对象是双向链表。每次插入新的数据的时候,head的previous节点指向最新 的节点。双向链表时间复杂度:新增的时候是O(1),删除的时候需要遍历指定的元素O(N),获取第一个和最后一个元素是O(1);获取指定的元素是O(N)在链表中查找第n个数据以及查找指定的数据的时间复杂度是O(N),但是插入和删除数据的时间复杂度是O(1),因为只需要调整指针就...原创 2019-09-15 14:05:26 · 92 阅读 · 0 评论 -
ArrayList,arrayList
ArrayList,arrayList,原理数组,使用泛型数组的方式。默认初始容量是16,当前元素放满数组的时候就去扩容,每次扩容为原来长度的1.5倍+1。因为是数组的原因可以放置重复的元素。线程不安全,因为是对于类里面的私有变量的写操作。时间复杂度:对于特定的元素的读取时O(1),知道index的话。对于某一个元素读取下标位置的话,是O(N),需要遍历数组。插入数据时,不指定下标的话...原创 2019-09-15 14:22:41 · 246 阅读 · 0 评论 -
TreeSet
TreeSet,操作的对象是TreeMap,但是对于Map的value都是同一个对象,类似HashSet默认构造函数add方法实际上是TreeMap的put方法,只不过对于树的每个节点的value都是同一个对象,即是相等的。静态常量...原创 2019-09-15 14:23:25 · 126 阅读 · 0 评论 -
TreeMap
TreeMap,原理是红黑树,主要是用它来存储有序的数据,它的时间复杂度是O(lgn),效率非常之高。操作是是一个entry节点,hashMap操作的是entry数组。线程不安全put方法:插入之后会修正颜色和节点位置,通过左旋和右旋左旋和右旋...原创 2019-09-15 14:24:05 · 124 阅读 · 0 评论 -
HashSet
HashSet,原理类里面操作的是HashMap,同时Hash的key是HashMap的key,value是HashSet里面的私有常成员变量。意味着,hashset放置不同的元素实际上是把这个元素放置在了map的key位置,不同的key对应的value是一样的。线程不安全value是静态常成员变量,意味值所有的HashSet实例的value是同一个值add方法,实际上是对hashma...原创 2019-09-21 07:06:34 · 264 阅读 · 0 评论 -
threadlocal用法
ThreadLocal,实例用法,ThreadLocal创建一个当前线程控制的变量,实际上类似map的用法,只不过只能存放一个value,同时这个变量的key是他自己,this。value的类型是泛型。保存值用的方法是set(value),获取value方法是get();每个线程有一个ThreadLocalMap属性,他将会把ThreaLocal的指针this,当key,将ThreaLocal s...原创 2019-09-21 07:08:55 · 166 阅读 · 0 评论 -
阻塞队列
阻塞队列,LinkedBlockingQueuehttps://blog.csdn.net/javazejian/article/details/77410889?locationNum=1&fps=1实际上如果当前线程没有获取到队列的内容,则线程会阻塞,获取到了的话线程会继续进行。具体的使用案例:...原创 2019-09-21 07:10:42 · 75 阅读 · 0 评论 -
克隆,深克隆和浅克隆
克隆,深克隆和浅克隆。https://www.cnblogs.com/xuanxufeng/p/6558330.html1.实现克隆,继承Cloneable接口,实现clone();BeanUtils.cloneBean(origin);2.深克隆和浅克隆的区别,浅克隆指的是克隆的时候仅仅克隆对象本身(对象的基本变量),而不拷贝对象的引用变量。深克隆指的是克隆的时候不仅克隆对象...原创 2019-09-21 07:11:41 · 232 阅读 · 0 评论 -
初始化顺序
初始化,内存模型,成员变量,静态变量,局部变量,方法https://blog.csdn.net/yangyuankp/article/details/7651251初始化顺序,静态变量(按照类中定义的顺序,先父后子)-成员变量(按照类中定义的顺序)-构造函数-其他方法。创建对象时构造器的调用顺序是:先初始化静态成员(先父后子),初始化父类成员变量,然后调用父类构造器,再初始化自己成员变...原创 2019-09-21 07:13:49 · 149 阅读 · 0 评论 -
异常体系
java异常体系,https://www.cnblogs.com/itcui/p/6400499.html1.异常分类Java的异常(包括Exception和Error)分为受检异常(checked exceptions)和运行时异常(unchecked exceptions)。可查异常(编译器要求必须处置的异常):正确的程序在运行中,很容易出现的、情理可容的异常状况。可查异常虽然是异...原创 2019-09-21 07:14:48 · 257 阅读 · 0 评论 -
HashMap
HashMap学习:链表数组,初始长度16,扩容因子0.75,代表每次容量为0.75的时候,就扩容为当前长度的2倍。同时实现了equals方法和hashcode方法,可以规避相同的K值存储一个,否则会放置多个。key可以为null。线程不安全,某些情况下会造成死锁静态内部类:定义了一个entry类,用来保存键值对,同时next用来指向下一个entry,表示是一个链表...原创 2019-09-15 14:03:48 · 93 阅读 · 0 评论