Java一二三。。。

继承避免代码的冗余,继承是多态的前提,多态让代码更加灵活,工厂模式。。

栈是先进后出的结构,栈全称方法栈,在方法被调用的时候创建,方法做出返回值的时候销毁,栈存放方法的形参、方法中定义的局部变量、方法中如果使用基本变量则存放它的值,如果是引用类型则存放它的引用部分(不是16进制的数字,hashCode是十进制的数,调用了Integer的静态方法转换成16进制数)。
堆是Java内存当中空间最大的一个存储单位,无人管理,被所有的线程、程序共享,存放引用类型的数据部分,占用的这片空间是连续的,它把该连续空间的起始位置放在了栈里,所以栈保存的是对象的引用部分,而堆保存对象的数据部分

进程之间无法进行资源共享,线程之间可以进行资源共享。
进程主要解决功能性的问题,做着不同的事情,而线程经常做的是相同的事情

多个线程之间,数据无法进行实时共享。多个线程无法在最短时间内保证数据统一性

ArrayList底层是一个被private修饰的Object数组,数组的名字叫element,初始容量为10(新版本为0)。在使用add方法之前会将当前长度传过去进行扩容,扩容的长度为原长度加上原长度的一半,然后再进行数组拷贝,所以ArrayList在添加方面比较慢,是因为有数组拷贝的过程。数组拷贝底层调的是System的ArrayCopy方法,是一个native方法(用C语言写的方法)。
LinkedList底层是一个双向链表,运行于所有条目的双向链表,里面是个内部类,

read()方法的参数是byte类型的数组,返回值是这次读取了多少个字节,-1代表文档读到了末尾,0代表读到了一个空行

HashSet实现原理的是Hash表,性能瓶颈是空间浪费

String和StringBuilder一样快,线程也都不安全。String底层是一个被final修饰的数组,而StringBuilder不是。String的修改对象,是一个新的对象,原对象被废弃。StringBuilder是在原来的基础上修改的。String在修改的性能上比较低,StringBuilder会高一些

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值