![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
明智说
不慌不忙,做个技术小流氓!欢迎关注我的公众号,微信搜索:明智说,专注分享各种框架源码,中间件技术,MySQL,JVM等等。
展开
-
java基础篇 之 foreach探索
我们看下这段代码:public class Main { public static void main(String[] args) { List list = new ArrayList(); list.add(1); list.add(2); list.add(3); for (Object o : l...原创 2019-05-24 12:40:01 · 250 阅读 · 0 评论 -
java基础篇 之 异常丢失
我们看如下代码:@Slf4jpublic class Test { public static void main(String[] args) { try { try { test(); } finally { test2(); }...原创 2019-05-28 00:47:28 · 263 阅读 · 0 评论 -
java基础篇 之 集合概述(List)
list,有序集合,元素可重复LinkedList:底层用链表实现,查找慢,增删快。为什么??ArrayList:底层用数组实现,查找看,增删慢。为什么??Vector:跟ArrayList一样,都是用数组做底层实现,只不过大量使用了synchronized关键字我们现在就来分析下为什么ArrayList适合于查找,LinkedList适合于增删:我们先看下ArrayList源...原创 2019-05-24 00:33:26 · 293 阅读 · 0 评论 -
java基础 之 从Class.forName()跟.class的区别看类的初始化
代码如下:public class Test { public static void main(String[] args) throws Exception { System.out.println("调用.class"); Class<Main> mainClass = Main.class; System.out.pri...原创 2019-05-31 22:34:01 · 2295 阅读 · 0 评论 -
java读源码 之 list源码分析(ArrayList)---JDK1.8
ArrayList:属性分析:/** * 初始容量 */private static final int DEFAULT_CAPACITY = 10;/** * 当采用public ArrayList(Collection<? extends E> c)这种构造函数时 * 若传入的集合对象大小为0的话,此时用这个空数组作为这个ArrayList的元素 */pr...原创 2019-06-27 01:41:35 · 361 阅读 · 0 评论 -
java读源码 之 queue源码分析(PriorityQueue,附图)
今天要介绍的是基础容器类(为了与并发容器类区分开来而命名的名字)中的另一个成员——PriorityQueue,它的大名叫做优先级队列,想必即使没有用过也该有所耳闻吧,什么?没。。没听过?emmm。。。那就更该认真看看了。通过本篇你将了解到:1、PriorityQueue是什么?2、PriorityQueue的内部结构是什么?3、二叉堆、大顶堆、小顶堆分别是什么?有什么特性?4、小顶堆是如...原创 2019-07-12 21:48:56 · 1136 阅读 · 2 评论 -
java读源码 之 list源码分析(LinkedList)
文章目录LinkedList:继承关系分析:字段分析:构造函数分析:方法分析:LinkedList:继承关系分析:public class LinkedList<E> extends AbstractSequentialList<E> implements List<E>, Deque<E>, Cloneable, java.i...原创 2019-06-28 19:23:03 · 261 阅读 · 0 评论 -
java读源码之 Queue(ArrayDeque,附图,希望能一起交流)
java读源码之 Queue源码分析(ArrayDeque,附详细的算法解释,希望跟大家一起交流)除了并发应用(并发包下的代码我之后会专门写),Queue在JavaSE5中仅有的两个实现是LinkedList和PriorityQueue,它们的差异在于排序行为而不是性能。1.6时新增了一个实现ArrayDeque,LinkedList在之前我们已经介绍过了,LinkedList作为队列使用时,...原创 2019-07-05 12:06:18 · 594 阅读 · 2 评论 -
java基础篇 之 非静态内部类
什么是非静态内部类:public class Outer { Outer() { System.out.println("我是外部类"); } class Inner { Inner() { System.out.println("我是内部类"); } }}如上所示,Inner就是一...原创 2019-05-10 00:43:01 · 337 阅读 · 0 评论 -
java基础篇 之 再探内部类跟final
之前写过一篇文章:从垃圾回收机制解析为什么局部内部类只能访问final修饰的局部变量以及为什么加final能解决问题,经过这两天的学习,发现有些不对,必须再来捋一捋先看之前的例子:/** * @author dmz * @date Create in 22:28 2019/5/19 */public class Test { public void test() { ...原创 2019-05-19 23:39:01 · 250 阅读 · 0 评论 -
java基础篇 之 位运算符
按位操作符 按位操作符用来操作基本数据类型中的单个“比特”(bit),即二进制位。按位操作符会对两个参数中对应的位执行布尔代数运算,并最终生成一个结果。 我们常用的按位操作符有以下几种:&:与,如果参加运算的两个输入位都是1,则结果为1,否则生成一个输出位0|:或,只要有一个输入位为1,则结果为1。换言之,只有两个输入位为0,结果才为0~:非,非运算符为一元运算符...原创 2019-04-08 00:28:42 · 333 阅读 · 0 评论 -
JAVA基础篇 之 类的初始化
类中属性的隐式初始化,代码如下,我们看下不同类型默认的初始值是什么创建一个Demo类如下:class Demo { int a; byte b; short c; long d; boolean e; char f; float g; double h; Demo demo;}可以看到初始化的值如下:在类...原创 2019-04-16 00:59:00 · 590 阅读 · 0 评论 -
JAVA基础篇 之 方法的重载
任何程序语言都具备了一项重要的特性就是对名字的运用。当创建一个对象时,也就给此对象分配到的存储空间取了一个名字。所谓方法则是给某个动作取的名字。通过使用名字你可以引用所有的对象和方法。 将人类语言中存在细微差别的概念映射到程序设计中时,问题随之而生。在日常生活中,相同的词可以表达多种不同的含义----他们被“重载”了,特别时含义含义之间的差别很小时,这种方式非常有用。你可以说“清洗衬衫”,...原创 2019-04-13 00:33:04 · 380 阅读 · 0 评论 -
JAVA基础篇 之 finalize()方法的作用
我们知道java有垃圾回收器负责回收无用对象占据的内存资源,但也有特殊情况:假设你的对象(并非使用new)获得了一块特殊的内存区域,由于垃圾回收器只知道回收那些经由new分配的内存,所以它不知道如何释放该对象的这块特殊的内存。为了应对这种特殊情况,java允许在类中定义一个名为finalize()的方法。它的工作原理假定是这样的:一旦垃圾收集器准备释放对象占用的存储空间,将首先调用其final...原创 2019-04-14 23:44:35 · 3358 阅读 · 0 评论 -
java基础篇 之 final关键字
final,字面上是最终的意思,通常来说,我们用它来作为修饰符的时候,都是代表“这是无法改变的”的意思。不想改变可能出与两种理由:设计或效率。由于这两个原因相差甚远,所以我们在使用final关键字的时候很容易误用。 主要从三个方面来讲final修饰变量final修饰方法final修饰类final修饰变量修饰基本数据类型当我们使用final修饰基本数据类型时,代表我们申明...原创 2019-04-24 01:15:31 · 252 阅读 · 0 评论 -
java基础篇 之 构造器内部的多态行为
java基础篇 之 构造器内部的多态行为 我们来看下下面这段代码:public class Main { public static void main(String[] args) { new Son(5); }}class Person{ void draw(){ System.out.println("person draw...原创 2019-05-05 00:41:11 · 234 阅读 · 0 评论 -
java基础篇 之 接口
组合接口时的名字冲突:看下面这段代码:interface I1 { int f();}interface I2 { void f();}interface I3 { int f(int a);}class C { public void f() { System.out.println(1); }}class C1...原创 2019-05-06 01:23:01 · 255 阅读 · 0 评论 -
java基础篇 之 super关键字的理解
之前一直认为,super指向的是父类对象。到今天,仔细查询了资料,自己做了实验,确认这个结论是不对的。我们分一下几个点讨论下:super的作用:第一种:用来访问父类被隐藏的成员变量第二种:用来调用父类中被重载的方法第三种:用来调用父类的构造函数super真的指向父类对象吗?代码直接分析:public class Super { public void test() ...原创 2019-05-09 00:21:32 · 498 阅读 · 1 评论 -
java读源码 之 map源码分析(HashMap)二
在上篇文章中,我已经向大家介绍了HashMap的一些基础结构,相信看过文章的同学们,应该对其有一个大致了了解了,这篇文章我们继续探究它的一些内部机制,包括构造函数,字段等等~字段分析:// 默认容量16static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; // 最大容量2的31次方 static final in...原创 2019-07-20 13:42:22 · 265 阅读 · 0 评论