
Java
文章平均质量分 76
传葱
Talk is cheap, show me the code.
展开
-
Java Exception要点
什么是Java异常?什么是异常处理?异常处理有什么优势? 一种不正常的状态,打断程序的流程,在运行时抛出的一种不正常状态。 异常处理就是一种处理运行时错误的机制。 异常处理核心优势:可以保证程序流的正常执行。 checked Exception和unchecked Exception的不同之处? 如上图所示,checked Exception就是在编译时会检查的,包原创 2017-03-12 11:24:22 · 378 阅读 · 0 评论 -
ThreadLocal的解析
ThreadLocal的使用 是线程私有的,那么必然是线程安全的,使用ThreadLocal实现线程本地存储的功能,也就是说我有个变量需要被一个线程独享,并且可以随时取用,那么ThreadLocal是一个很好的选择,比如在web开发中使用ThreadLocal存储User信息,方便随时调用,线程内部随时可以调用,相当于车子后面的后备箱。 看看ThreadLocal的源码: ...原创 2018-03-28 17:32:07 · 216 阅读 · 0 评论 -
java多线程安全性
原子性,可见性,有序性 java多线程安全性的核心就在于,站在单个线程的角度,如何保证自己的数据不会被其他线程破坏。在在多线程的角度,每个线程对共享数据的操作都是有效的,不会被覆盖,修改。实现起来就是这三个特性,Atomic,concurrency包等java多有的多线程操作都是在这个三个原则上面展开的,核心思想。 原子性 原子性:顾名思义,不可分割,A线程在处理a变量的时候不会...原创 2018-03-28 12:13:31 · 1128 阅读 · 0 评论 -
java泛型
定义泛型类 泛型程序的设计是一个非常复杂的事情,尤其是一个运行良好的程序 //在类上已经声明的<T>,在方法上面可以不再声明,重复声明会出异常 public class Pair<T> { private T first; private T second; public Pair() { this.first = nul...原创 2018-04-03 09:51:21 · 276 阅读 · 0 评论 -
KMP算法
什么是KMP算法?解决字符串匹配的效率问题。 https://www.youtube.com/watch?v=GTJr8OvyEVQpublic class SubstringSearch { //重点在这个方法这里,每次pattern匹配到第j个字符的时候发现无法匹配,不会直接跳转到index = 0的字符,而是和它有相同前缀的字符那边,具体可以看上面视频,这个讲的不错。思考一下传统的字原创 2017-12-15 13:07:52 · 273 阅读 · 1 评论 -
final关键字的一些思考
final关键字在面试时是一个非常频繁的问题,对它的理解一定程度上可以反应出面试者的基础和对技术的钻研能力,下面从基础使用到底层虚拟机来看一下final的相关内容。 1.final修饰的class(类)不能被继承; 2.final修饰的方法不能被重写,String就是被final修饰的; 3.被final修饰的变量不可以被改变(重点) 此处变量需要根据引用分类: 形如final ...原创 2017-11-27 11:51:55 · 192 阅读 · 0 评论 -
201个核心Java面试汇总
84.Java的String不变是什么意思?不变就是一旦String被创建,它的值无法被修改。85.为什么Java的String不可改变? 因为Java使用了字符串的概念。假设有5个reference variable指向“asdf”,那么一旦其中一个reference variable改变了String的值,那么其它的reference variable都会受到影响。 86.几种方翻译 2017-03-13 20:21:54 · 299 阅读 · 0 评论 -
201个核心Java面试问题汇总(2)
final关键字47.什么是final variable(变量)? 就是用final修饰的变量,你无法改变final变量的值。 48.什么是final方法? 就是不能够被重写的方法。 49.什么是final class? 就是不能被继承的class。 50.什么是空白final变量(blank final variable)? 一个final翻译 2017-03-13 11:13:32 · 231 阅读 · 0 评论 -
Java容器浅谈
简单谈谈Java容器1.首先,我们经常谈论Java容器,那么什么是容器呢?它有什么作用呢?在Java的一系列特性中它处于什么地位呢?结合《Java编程思想》这本书上的知识和google的一些汇总简单的讨论一下这些内容。 我们都知道,Java是一切皆是对象的一门语言,它的所有数据都可以看作是对象,Java中所有的基础数据类型都进行了封装(wrapped),具体可参见Java基础,后面有机会会原创 2017-03-12 00:24:34 · 433 阅读 · 0 评论 -
201个核心Java面试问题汇总(1)
基础部分: 1.JVM,JDK,JRE之间的区别? JVM是Java虚拟机的首字母缩写,它是一种提供了Java字节码运行时环境的规范。JVM,JRE和JDK都是平台相关的,这是因为它们在不同平台(OS)上的配置是不一样的,但是Java是平台(OS)无关的。JVM对很多的软件和硬件平台都适用(比如语言无关性的创建,只关注字节码的操作),JVM的主要任务:加载,验证,运行,提供运行时环原创 2017-03-12 16:15:06 · 1193 阅读 · 0 评论 -
Map中的hash()分析
https://juejin.im/post/5ab99afff265da23a2291dee转载 2018-03-28 17:43:14 · 236 阅读 · 0 评论