java基础总结---第一季
来源:互联网 发布:java.util.base64 编辑:程序博客网 时间:2024/05/21 06:25
1、string为什么是final,一是安全,而是效率,final的value是private的final数组,string中更多的是调用底层的方法,本地方法调用,如果设置非final类型,
那么你就可应改变string中的方法,底层直接交流,这是非常危险。
2、class.forName(className)内部实际调用,class.forName(className,true,classLoader()),true表示需要初始化,默认进行初始化。
classLoader.loadClass(className)内部实际调用,classLoader.loaderClass(className,false),不需要链接,也就进行初始化。
3、阻塞队列和非阻塞队列
4、java内存模型和gc算法 空间剩余40%时,逐渐增大的最大限制;空间剩余70以上时间,逐渐减小到最小限制。
5、多次start线程会报IllegalThreadStateException状态线程非法异常。
6、hashMap的工作原理 hashMap的非线程同步的 hashTable是线程同步的
HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,
让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,
对象将会储存在链表的下一个节点中。 HashMap在每个链表节点中储存键值对对象。
当两个不同的键对象的hashcode相同时会发生什么? 它们会储存在同一个bucket位置的链表中。键对象的equals()方法用来找到键值对。
默认的负载因子是0.75,当超过时,会进行扩容,bucket会增加到原来的两倍,会进行重新rehashing。
7、 ConcurrentHashMap和HashMap的区别
HashMap和ConcurrentHashMap有什么分别呢?它们都可以用于多线程的环境,但是当HashMap的大小增加到一定的时候,性能会急剧下降,
因为迭代时需要被锁定很长的时间。因为ConcurrentHashMap引入了分割(segmentation),不论它变得多么大,仅仅需要锁定map的某个部分,
而其它的线程不需要等到迭代完成才能访问map。简而言之,在迭代的过程中,ConcurrentHashMap仅仅锁定map的某个部分,而Hashtable则会锁定整个map。
8、start和run的区别
start真正意义是开启一个新的线程。start开启的线程处于就绪状态,当获得时间片时,线程就去调用run方法去执行,而run方法只是一个普通的方法而已。
那么你就可应改变string中的方法,底层直接交流,这是非常危险。
2、class.forName(className)内部实际调用,class.forName(className,true,classLoader()),true表示需要初始化,默认进行初始化。
classLoader.loadClass(className)内部实际调用,classLoader.loaderClass(className,false),不需要链接,也就进行初始化。
3、阻塞队列和非阻塞队列
4、java内存模型和gc算法 空间剩余40%时,逐渐增大的最大限制;空间剩余70以上时间,逐渐减小到最小限制。
5、多次start线程会报IllegalThreadStateException状态线程非法异常。
6、hashMap的工作原理 hashMap的非线程同步的 hashTable是线程同步的
HashMap基于hashing原理,我们通过put()和get()方法储存和获取对象。当我们将键值对传递给put()方法时,它调用键对象的hashCode()方法来计算hashcode,
让后找到bucket位置来储存值对象。当获取对象时,通过键对象的equals()方法找到正确的键值对,然后返回值对象。HashMap使用链表来解决碰撞问题,当发生碰撞了,
对象将会储存在链表的下一个节点中。 HashMap在每个链表节点中储存键值对对象。
当两个不同的键对象的hashcode相同时会发生什么? 它们会储存在同一个bucket位置的链表中。键对象的equals()方法用来找到键值对。
默认的负载因子是0.75,当超过时,会进行扩容,bucket会增加到原来的两倍,会进行重新rehashing。
7、 ConcurrentHashMap和HashMap的区别
HashMap和ConcurrentHashMap有什么分别呢?它们都可以用于多线程的环境,但是当HashMap的大小增加到一定的时候,性能会急剧下降,
因为迭代时需要被锁定很长的时间。因为ConcurrentHashMap引入了分割(segmentation),不论它变得多么大,仅仅需要锁定map的某个部分,
而其它的线程不需要等到迭代完成才能访问map。简而言之,在迭代的过程中,ConcurrentHashMap仅仅锁定map的某个部分,而Hashtable则会锁定整个map。
8、start和run的区别
start真正意义是开启一个新的线程。start开启的线程处于就绪状态,当获得时间片时,线程就去调用run方法去执行,而run方法只是一个普通的方法而已。
阅读全文
0 0
- java基础总结---第一季
- java基础部分总结第一部分
- java基础总结第一个程序
- java入门第一季java基础内容
- 【java基础】第八天总结---面向对象第一特点---->封装
- 慕课网 JAVA 第一季 语法基础
- java基础第一课
- java基础 第一讲
- Java基础第一讲
- Java基础第一课
- java基础第一讲
- java基础第一课
- 测试基础第一部分总结
- JAVA第一课总结
- java基础问题(第一部分)
- java零基础第一课
- Java基础部分-《第一部分》
- Java基础-练习第一弹
- Cmake编译opencv3.1出现project files may be invalid,编译后的opencv3.1的debug附加依赖项在最后
- 12年经验老程序员的5次转型
- Hdoj 1062 text reverse(水题)
- MySQL服务器CPU跑满100%的情况分析
- byte&oxff之格式转换原理解析
- java基础总结---第一季
- 事件循环机制-任务队列、webAPI、JS主线程的相互协同
- 揭秘阿里小蜜:基于检索模型和生成模型相结合的聊天引擎 | PaperDaily #25
- 谈谈单元测试之(四):测试工具 TestNG
- 翻译内核uvcvideo.txt
- vue 路由简单实例
- 数据库数据操作
- Curator典型使用场景之分布式Barrier。
- Tensorflow的反卷积(上采样)