java基础
lilyluck11
风起三天上,云游四海间
展开
-
产生内存溢出的情况
产生内存溢出的情况常见的几种情况:1、内存加载的数据量过大;2、集合中有死循环或者循环创建大量的对象;3、集合类中有对对象引用,使用完后未清除,使得JVM 不能回收;4、第三方的BUG ;5、启动参数内存值设定过小;解决方法:情况一:java.lang.OutOfMemoryError:Javaheapspacejava 堆内存不足。一种是内存太小,内存数据量太多(或者递归调用的...原创 2020-05-06 15:09:19 · 243 阅读 · 0 评论 -
JAVA注解
@Repeatable演示例1:@Target(ElementType.TYPE)@Retention(RetentionPolicy.RUNTIME)@Repeatable(ResourcePaths.class)public @interface ResourcePath { String value();}@Target(ElementType.TYPE)@...原创 2018-05-10 17:56:54 · 233 阅读 · 0 评论 -
Java反射
概念:反射是Java程序开发语言的特征之一,它允许运行中的Java程序获取自身的信息,并操作类或者对象里面的内部属性。通过反射,我们可以在运行时获取程序对象的类型,动态的创建对象并调用其属性。 Java反射主要提供的功能(主要是运行时): 1、在运行时判断任意一个对象所属的类; 2、在运行时构造任意一个类的对象; 3、在运行时判断任意一个类所具有的成员变量和方法,包括私有...原创 2018-05-18 14:33:48 · 173 阅读 · 0 评论 -
悲观锁和乐观锁
乐观锁和悲观锁介绍乐观锁:乐观锁是一种思想,每次取数据的时候都默认其他人不会去修改这个数据,不去上锁。但是在更新这个数据的时候会去判断此数据是否被修改,一般我们会使用类似版本号的机制去确认数据是否被修改。乐观锁一般适用于多读的应用场景以此来提高吞吐量,数据库提供的write_condition机制,其实就是提供的乐观锁。atomic包下面的原子类就是使用了乐观锁的一种实现方式CAS(Conmp...原创 2018-09-10 14:30:48 · 248 阅读 · 0 评论 -
HashMap 和 ConcurrentHashMap
HashMap 和 ConcurrentHashMapHashMap众所周知HashMap底层是基于数组和链表组成的。在JDK1.7和JDK1.8中具体实现稍有不同。1.7数据结构采用的是数组 + 链表默认容量为16,负载因子为0.75。Map在使用过程中不断的往里面存放数据,当数量size达到16 * 0.75 = 12的时候,就需要将当前的容器(16)进行扩容,扩容至之前的两倍(n...原创 2018-09-26 17:40:57 · 224 阅读 · 0 评论 -
线程池参数及底层实现
线程池线程池是一种多线程处理的形式,通过把处理的任务添加到队列中,然后再创建线程后自动执行这些任务。线程池可以同时执行多个任务,如果任务队列已经满了,则新来的任务会进行排队等待。优点线程池的重用减少了创建线程和销毁线程带来的性能开销。线程池对线程的数量可控,有效的降低了线程间的资源争夺情况。线程池的参数corePoolSize(核心线程数)在创建线程池后,线程池中没有任何线程,...原创 2018-10-09 11:51:14 · 823 阅读 · 0 评论