Java基础技术-Java其他主题[面试] Java基础技术IO与队列 Java BIO.NIO.AIO Java 中 BIO.NIO.AIO 的区别是什么? 含义不同: BIO(Blocking IO)是同步并阻塞的 IO,线程发起 IO 请求后,不论内核是否准备好 IO 操作,都会一直阻塞直到操作完成 NIO(Non-blocking IO)是同步非阻塞的 IO,线程发起 IO 请求后立即返回:内核在做好 IO 操作的准备之后,通过调用注册的回调函数通知线程做 IO 操作,线程开始阻塞,直到…
Java基础技术多线程与并发 什么是线程死锁? ​死锁是指两个或两个以上的进程(线程)在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去,我们就可以称此时的系统处于死锁状态,即系统产生了死锁 死锁产生的条件是什么? 死锁产生的条件可以分成四个,且这四个都必须同时存在才能形成死锁 ​(1) 互斥条件:该资源任意一个时刻只由一个线程占用 (2) 请求与保持条件:一个线程以及进程因请求资源而阻塞时,对已获得的资源保持不放 (3) 不剥夺条件:线程以及进…
Java基础技术基础面试[笔记] String.StringBuilder以及StringBuffer三者之间的区别? 三者的区别可以从可变性,线程安全性,性能这三个部分进行说明 可变性 从可变性来说,String不可变,StringBuilder与StringBuffer可变 因为在String类中,是使用只读字符数组保存字符串的,所以String是不可变的 而StringBuilder与StringBuffer,两者都继承自AbstractStringBuilder类,而在AbstractS…
Java基础技术JVM面试[笔记] JVM JVM 对 java 类的使用总体上可以分为两部分:一是把静态的 class 文件加载到 JVM 内存,二是在 JVM 内存中进行 Java 类的生命周期管理 JVM 内存结构是什么样的? JVM 内存的主要分为五个区: 方法区(Method Area) 虚拟机栈(VM Stack) 本地方法栈(Native method stack) 堆(Heap) 程序计数器(Program Counter Register) 堆(Heap) 堆会在虚拟机启动时进…
java基础技术集合面试[笔记] Hashmap: 基于哈希表的 Map 接口的实现,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键(除了不同步和允许使用 null 之外,HashMap 类与 Hashtable 大致相同.)此类不保证映射的顺序,特别是它不保证该顺序恒久不变 另外,HashMap是非线程安全的,也就是说在多线程的环境下,可能会存在问题,而Hashtable是线程安全的 HashMap 内部的数据结构? 各个版本的实现略有不同 JDK1.7 及以前的 Ha…
在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大特性之一---继承. 继承 在讲解之前我们先看一个例子,该例子是前篇博文(java基础(一)-----java的三大特性之封装)的. 从这里我们可以看出,Wife.Husband两个类除了…
黑马程序员:Java基础总结 java注解   ASP.Net+Android+IO开发 . .Net培训 .期待与您交流! java注解 lang包中的基本注解 @SuppressWarnings 通过System.runFinalizersOnExit(true);的编译警告引出@SuppressWarnings("deprecation")  @Deprecated 直接在刚才的类中增加一个方法,并加上@Deprecated标注,在另外一个类中调用这个方法. @Override…
在Java基础:java虚拟机(JVM)中,我们提到了Java的四种引用.包括:强引用,软引用,弱引用,虚引用.这篇博客将详细的讲解一下这四种引用. 1. 强引用 2. 软引用 3. 弱引用 4. 虚引用 5. 参考文章 1. 强引用 默认的Object object=new Object()的形式中,object即是对象new Object()的强引用,只有在object这个引用被释放后,对象才会被释放掉.这也是我们最常用的编码方式.如果一个引用是强引用,即使内存不足,GC也绝对不会回收它,而…
JAVA基础 Util包介绍 学Java基础的工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.本章介绍Java的实用工具类库java.util包.在这个包中,Java提供了一些实用的方法和数据结构.例如,Java提供日期(Data)类.日历(Calendar)类来产生和获取日期及时间,提供随机数(Random)类产生各种类型的随机数,还提供了堆栈(Stack).向量(Vector) .位集合(Bitset)以及哈希表(Hashtable)等类来表示相应的数据结构…
Java基础-使用JAVA代码剖析MD5算法实现过程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.…