
java重点基础知识
文章平均质量分 91
1.介绍java技术的基础知识
2.分析一些java中的重要的类的源代码
3.介绍java虚拟机的重要知识
topEngineerr
个人邮箱drstime@163.com。欢迎交流。
展开
-
java中的语法糖
Table of Contents概述语法糖:泛型与类型擦出泛型和重载自动装箱,自动拆箱,与遍历循环条件编译概述在博客java重要基础知识汇总中,我们提到了内部类是一种java的语法糖。事实上java除了内部类还提供了另外一些语法糖,用于方便程序员的代码开发。但是值得注意的是,语法糖对代码不会带来任何实质性的功能上的变化。他仅仅是编译器做的一些'把戏'.语法糖在各种编程...原创 2019-03-22 11:55:08 · 1779 阅读 · 0 评论 -
[java] System类深度解析
概述大部分写的第一个java功能,应该都是如下这行代码:System.out.println("hello world");这里即用到了System类,本篇文章就将分析System类的实现原理。在java里面System类是一个final修饰的类,意味着它的方法和属性都不能被修改。System 类包含了多个有用的字段和方法,它不能被实例化。在system类提供的功能当中,有标准...原创 2018-08-30 23:08:45 · 640 阅读 · 0 评论 -
[Java] Object 类深度解析
Table of Contents(1) registerNatives(2) getClass(3) hashCodehash 的定义Java 中 hash 值的含义(4) equals(5) clone(6) toString(7) notify(8) notifyAll(9) wait(long timeout)(10) wait(long t...原创 2017-12-27 11:28:33 · 682 阅读 · 0 评论 -
[java] Runtime类解析
概述每一个java application都有一个Runtime类的单例,这个实例允许应用程序访问一些程序所运行的环境的接口。此类不能被应用程序实例化。getRuntime方法程序当前的runtime实例可以通过getRuntime方法得到,代码如下: private static Runtime currentRuntime = new Runtime(); /**...原创 2018-09-01 13:30:17 · 470 阅读 · 0 评论 -
[java] Integer类解析
本篇文章基于jdk1.8概述Integer类定义如下:public final class Integer extends Number implements Comparable<Integer> {}它是一个final修饰的类,意味着它不可被继承,也提供了相对比较完善的功能。Integer类是原始类型int的包装类,一个Integer类的对象包含有一个单独...原创 2018-08-31 17:32:56 · 348 阅读 · 0 评论 -
[Java] Class类是一个怎样的存在
类与对象的概念在Java的体现当中有一个非常特殊的类,即Class类。我们知道java是一门面向对象的编程语言,java中的类是程序员用来表达一个具体问题的抽象的,那么Class类其实就可以简单理解为表达java中的类的共同特点的一个抽象。在深入这个问题之前不妨先再次明确一下类与对象分别的概念是什么。在面向对象的概念当中,类:是指的具有相同属性性质的一类事物的一个抽象。例如:车,人,...原创 2018-07-16 16:08:15 · 1289 阅读 · 3 评论 -
[java] synchronized关键字用法及实现原理详解
目录synchronized修饰方法synchronized代码块static静态synchronized方法与synchronized(class)代码块对比synchronized底层实现原理同步代码块实现原理同步方法实现原理线程私有的变量锁重入是什么?如何实现的?Synchronized优化自旋锁锁消除锁粗化偏向锁轻量级锁Synch...原创 2018-06-07 18:15:49 · 6736 阅读 · 0 评论 -
[java] Thread类详解
Table of Contents概述Thread类中的重要成员变量Thread类中的方法分析构造方法start方法run方法问题:Thread直接调用run()和start()方法的区别?sleep方法yield方法interrupt方法join方法getState方法holdsLock方法判断线程是否持有锁对象获取当前线程设置线...原创 2018-08-29 23:30:11 · 849 阅读 · 0 评论 -
[Java] String类深度解析
Table of Contents概述String类成员变量重要方法解析equals方法其他String的用法intern()方法和字符串比较hashcode方法字符串拼接方法其他方法length方法isEmpty方法charAt方法startWith方法String 对象内存分配问题正则表达式本文基于jdk1.8概述Stri...原创 2018-07-21 12:05:51 · 1954 阅读 · 1 评论 -
[java] ThreadLocal类解析
概述该类的作用是提供线程局部(thread-local)的变量, 这些变量与正常变量的不同之处在于(通过其get或set方法)访问一个线程的每个线程都有自己的独立初始化的变量副本。ThreadLocal实例通常是希望存储状态与线程(例如,用户ID或事务ID)关联的私有静态字段。例如,下面的类生成每个线程本地的唯一标识符。第一次调用ThreadId.get方法时,分配一个线程的ID,在后续调...原创 2018-08-31 19:50:25 · 292 阅读 · 0 评论 -
[java] 关于main方法的一切
Table of Contents概述为什么main方法必须是static的?为什么main方法必须是void的?为什么main方法必须是public的?其他概述Java中的main方法,是一个java应用程序的入口,无论一个java的应用多么复杂庞大,或是多么的小,只要他是一个可以运行的java程序那么必然就要有一个main方法。main方法的定义格式通常固定如下:...原创 2018-11-12 15:18:09 · 6060 阅读 · 4 评论 -
java异常机制详解
java的基本概念是:结构不佳的代码不能运行。发现错误的理想时机是在编译阶段,也就是在试图运行程序之前。然而编译器并不能找出所有的错误,余下的问题必须在运行期间解决。异常情形是指阻止当前方法或者作用域继续执行的问题。在这里一定要明确一点:异常代码某种程度的错误,尽管Java有异常处理机制,但是我们不能以“正常”的眼光来看待异常,异常处理机制的原因就是告诉你:这里可能会或者已经产生了错误,您的程序出现了不正常的情况,可能会导致程序失败!原创 2018-09-01 18:52:01 · 940 阅读 · 0 评论 -
java I/O和NI/O 详解
目录I/O概述字符流字节流理解I/O超类结构FileInputStream详解 FileOutputStream详解File类新I/OJava NIO: Channels and BuffersChannels NIO FileChannelSocketChannelServerSocketChannelBuffersJava NIO: ...原创 2018-09-04 23:08:35 · 2818 阅读 · 0 评论 -
[java] ArrayList和LinkedList实现原理及比较
Table of ContentsArrayListAdd 方法Get方法remove方法VectorArrayList在循环过程中删除,会不会出问题,为什么?LinkedListLinkedList的get方法实现原理LinkedList的size方法实现原理LinkedList的add方法实现原理LinkedList的remove方法实现原理问题...原创 2018-07-21 12:03:20 · 2183 阅读 · 0 评论 -
[java] HashMap底层实现原理分析
Table of Contents基本知识jdk1.8中HashMap的整体结构数据元素节点类HashMap的get方法实现原理HashMap的put方法HashMap是如何扩容的?为何都是2的N次幂?一些问题问题1:HashMap的get方法是怎么工作的问题2:如果两个对象有相同的hashcode会发生什么?问题3:如何获取Key的hashcode相同的对...原创 2018-08-02 18:26:51 · 458 阅读 · 0 评论 -
[java] volatile关键字的作用是什么
目录保证被volatile修饰的变脸对所有线程的可见性。第二个语义是禁止指令重排序优化问题Java 中能创建 volatile 数组吗?volatile 能使得一个非原子操作变成原子操作吗?volatile 修饰符的实际应用?volatile 类型变量提供什么保证?volatile是java虚拟机提供的轻量级同步规则。它具备两种特性保证被volatile修饰的变...原创 2018-07-24 16:20:36 · 505 阅读 · 0 评论 -
java重要基础知识汇总
Table of Contents关于java语言设计理念抽象类与接口的区别是什么java为什么不支持多继承java里的枚举实现机制是什么java中的内部类关于类Collections,Arrays,Objectsjava里的方法重载关于java里的main方法JVM,JDK,JRE三者的关系是什么关于java语法continue关键字和break关键字...原创 2019-06-16 16:09:55 · 107167 阅读 · 23 评论 -
[java] 关键字new是如何实现的
目录概述什么时候我们可以new一个类虚拟机处理new指令的流程一些问题1.两种new对象方式的区别2.变量初始化的默认值3.构造方法4.new一个对象时的内存空间担保?5. 关于局部变量6. 静态变量是在何时初始化的?与对象实例化有什么关系?7.使用Class类提供的newInstance和使用关键字new有哪些不同?概述在java里面创建一...原创 2018-07-24 23:53:37 · 24937 阅读 · 12 评论 -
java多线程重点知识
目录多线程基础知识线程的优先级守护线程停止线程对象及变量的访问线程间通信ThreadLocal类Java线程池线程池定义线程池的作用java如何创建线程池&线程池的参数详解关于排队方式的详细信息1. 直接提交2. 无界队列3. 有界队列常用线程池newFixedThreadPoolnewSingleThreadExecut...原创 2018-08-08 17:47:52 · 407 阅读 · 0 评论 -
Java12主要更新介绍
Table of Contentsjava12支持Unicode11在Linux系统上提供POSIX_SPAWN选项JVM 常量API支持压缩数格式日语中新的一个方形字符支持在备用存储设备上分配java的堆中的老年代ZGC: 并发的类卸载新的命令行Flag-XX:+ExtensiveErrorReportsjava.security.manager添加了新...原创 2018-10-24 17:42:39 · 3903 阅读 · 0 评论 -
[java] 深度解析容器
容器,和我们平常说的集合是指的一个概念。为什么需要容器如果一个程序只包含固定数量的且其生命期都是已知的对象,那么这是一个非常简单的程序。但是通常,程序问题根据运行时才知道的某些条件支创建新对象。在此之前,不会知道所需对象的数量,甚至不知道确切的类型。这是一个编程语言设计角度的问题,为了解决这个普遍的编程问题,需要在任意时刻任意位置创建任意数量的对象。不能依靠创建命名的引用来持有每一个对...原创 2018-07-19 00:08:10 · 239 阅读 · 0 评论 -
[java] ConcurrentHashMap
在分析ConcurrentHashMap的实现原理之前,先来介绍一下hashmap以及hashtable的特点和可能存在的问题.TreeMap//todoHashTablehashTable,它是线程安全的,它在所有涉及到多线程操作的都加上了synchronized关键字来锁住整个table,这就意味着所有的线程都在竞争一把锁,在多线程的环境下,它是安全的,但是无疑是效率低下的,尤...原创 2018-07-09 19:27:37 · 365 阅读 · 0 评论