jvm 内存模型 堆:-Xms最小 -Xmx最大 方法区:永久代-Xx:PermSize -Xx:MaxPermSize 虚拟机加载的类信息、常量、静态变量、各个线程共享 虚拟机栈:调用栈,局部变量 本地方法栈:控制参数 -Xms设置堆的最小空间大小。 -Xmx设置堆的最大空间大小。 -XX:NewSize设置新生代最小空间大小。 -XX:MaxNewSize设置新生代最大空...
HashMap原理 数据结构:数组+链表+红黑树 Entry<K,V>是Map中的一个接口,Map.Entry<K,V>接口主要用于获取、比较 key和value. Map.entrySet() 这个方法返回的是一个Set<Map.Entry<K,V>>,Map.Entry 是Map中的一个接口,他的用途是表示一个映射项(里面有Key和Value),而Set<...
bat面试题汇总 java基础 为什么wait,notify,notifyAll定义在Object中? final static 反射 IO 集合 多线程 线程的状态转换 线程池的原理 JVM 回收算法 各回收器的特点和用处范围,优缺点 相关参数及tomcat参数 类加载机制 调优,性能优化 Spring @Autowired与@Re...
为什么wait,notify,notifyAll定义在Object中? 这是个设计相关的问题,它考察的是面试者对现有系统和一些普遍存在但看起来不合理的事物的看法。回答这些问题的时候,你要说明为什么把这些方法放在Object类里是有意义的,还有不把它放在Thread类里的原因。一个很明显的原因是JAVA提供的锁是对象级的而不是线程级的,每个对象都有锁,通过线程获得。如果线程需要等待某些锁那么调用对象中的wait()方法就有意义了。如果wait()方法定义在Thread类...
nio ByteBuffer flip() FileChannel positon() Selector ServerSocketChannel SocketChannel 旧io中有3个类被修改了,用以产生FileChannel:FileInputStream、FileOutputStream、RandomAccessFile
文章目录 java基础 反射注解代理泛型异常IONIOObject类 JVM 内存模型类加载机制调优Tomcat调优 java并发 JMMvolatilesynchronizedlockAQSCondition线程池原理 java集合 java集合架构概况HashMapArrayListLinkedListHashSetTreeSetHashTable 设计模
HashMap原理解析 final V putVal(int hash, K key, V value, boolean onlyIfAbsent, boolean evict) { Node[] tab; Node p; int n, i; if ((tab = table) == null || (n = tab.length) == 0) n = (tab = resize()).length; if ((p =
要完成的文章 java基础 反射注解代理泛型异常IONIOObject类 JVM 内存模型类加载机制调优Tomcat调优 java并发 JMMvolatilesynchronizedlockAQSCondition线程池原理 java集合 java集合架构概况HashMapArrayListLinkedListHashSetTreeSetHashTable 设计模
多线程 happens-before 在程序运行过程中,所有的变更会先在寄存器或本地cache中完成,然后才会被拷贝到主存以跨越内存栅栏,此种跨越序列或顺序称为happens-before。注:happens-before本质是顺序,重点是跨越内存栅栏 通常情况下,写操作必须要happens-before读操作,即写线程需要在所有读线程跨越内存栅栏之前完成自己的跨越动作,其所做的变更才能对其他线程可见...
maven Maven is a software project management and comprehension tool. Based on the concept of a Project Object Model (POM), Maven can manage a project's build, reporting and documentation from a central pi