随笔分类 - java基础
摘要:JVM的内存区域 1.堆:程序在运行时创建的对象基本上都是在堆中分配的内存,堆里的内存又分为年轻代和年老代,年轻代默认又分为80%的一块区域和两个10%的区域,用于内存回收,当然这个比例是可以通过参数来调整的。 2.栈:栈其实可以分为两种,一种是虚拟机栈,就是启动线程时为线程帧栈分配的内存;一种是本地方法栈,就是为Native方法分配的内存。 3.方法区:JVM加载类信息、常量、静态变量等使用的内...
阅读全文
摘要:IO与NIO IO与NIO最重要的区别是数据打包和传输的方式不同,IO以流的方式处理数据,而NIO以块的方式处理数据。 面向流的IO一次写入或读取一个字节的数据,可以链接多个过滤器来对字节流进行处理,操作和应用都比较简单,但是效率较低。 面向块的NIO一次写入或读取一个数据块,处理数据要快得多,但是没有IO简节,容易理解。NIO的BUFFERd Buffer有3个私有属性分别是: a) post...
阅读全文
摘要:ClassLoader作用 ClassLoader的作用是把编译好的Class文件加载到JVM中。ClassLoader使用的是双亲委托模型来加载类的,每个ClassLoader都有一个父类加载器,当ClassLoader需要加载某个类时,它先把这个任务委托给它的父类加载器试图加载,如果所有的父类加载器都没能加载到,才由自己加载。Java默认提供3个ClassLoader 1. 启动类加载器(Bo...
阅读全文
摘要:编写多线程程序是为了实现多任务的并发执行,从而能够更好地与用户交互。一般有三种方法,Thread,Runnable,Callable.Runnable和Callable的区别是: (1)Callable规定的方法是call(),Runnable规定的方法是run(). (2)Callable的任务执行后可返回值,而Runnable的任务是不能返回值的 (3)call方法可以...
阅读全文
摘要:ConcurrentHashMap尽可能减小锁粒度实现高并发的支持,在ConcurrentHashMap内部,默认将HashMap分成16段,原后根据Hash算法将数据存入不同的段,每次向HashMap中存入数据时只需要锁住其中的一段,理论上,如果不是存入同一段,可以支持16个线程同时存入数据。 但是ConcurrentHashMap如果执行size方法,则需要分别锁住所有的段进行统计...
阅读全文
摘要:并发List Vector和CopyOnWriteArrayList是两个线程安全的List,Vector读写操作都用了同步,相对来说更适用于写多读少的场合,CopyOnWriteArrayList在写的时候会复制一个副本,对副本写,写完用副本替换原值,读的时候不需要同步,适用于写少读多的场合。并发Set CopyOnWriteArraySet基于CopyOnWriteArrayLis...
阅读全文
摘要:内部锁: 内部锁就是synchronised,由jvm内部实现管理重入锁: 它可以中断、可定时 重入锁(ReentrantLock),提供公平和非公平两种锁,公平锁保证先进先出,但是有一定的性能省耗 它是一种互斥的实现,一次只能一个线程拿到锁; 如果一个线程试图获取一个已经由它自己持有的锁,那么这个请求会成功,“重入”意味着获取锁的粒度是线程,而不是调用者。...
阅读全文
摘要:java的内存模型分为线程工作区内存、线程执行引擎、主内存(共享内存)三部分; 线程执行引擎在执行时,对内存有使用和赋值操作 当线程使用(use)变量时,会触发线程工作区的加载(load)操作,线程工作区的加载(load)操作会触发主内存的读操作(read) 当线程对变量赋值(assgin)时,会触发线程工作区的存储(store)操作,线程工作区的存储(store)会触主内存的write操作。 主...
阅读全文
摘要:ArrayList和LinkedList的大致区别: 1.ArrayList是实现了基于动态数组的数据结构,LinkedList基于链表的数据结构。 2.对于随机访问get和set,ArrayList觉得优于LinkedList,因为LinkedList要移动指针。 3.对于新增和删除操作add和remove,LinedList比较占优势,因为ArrayList要移动...
阅读全文
摘要:在java中提供了4个级别的引用:强引用、软引用、弱引用、虚引用。其中强引用FinalReference是default个饰符来修饰,其它3个级别均为public修饰。强引用(FinalReference),在java中,有点像C++的指针,通过引用,可以对堆中的对象进行操作。强引用具备以下特点:强引用可以直接访问目标对象;强引用所指向的对象在任务时候都不会被系统回收;强引用可能导致内存泄露。软引...
阅读全文

浙公网安备 33010602011771号