11 李思苇

尚未进行身份认证

我要认证

根据事情的有意义程度而非重要紧急程度做计划

等级
TA的排名 3w+

unsafe源码

/* * Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU Gen

2020-06-22 08:48:05

HashMap源码详解:Core Java 9.3

Map接口keySetvaluessizecontainsKeyputremoveentrySetisEmptycontainsValuegetclear以下为部分JDK1.8添加的默认方法,defaultgetOrdefault(Object o,V v)replaceAll(BiFunction<K,V,V> f)remvoe(K k,V v)forEach(BiConsumer<K,V&g

2020-05-09 10:44:53

Core Java(第1-3章)

1.2.6 体系结构中立/编译器jdk>jre>jvm>解释器编译器生成一个体系结构中立的目标文件格式,即字节码。只要有Java运行时系统(JRE,包括了JVM-即java解释器),这些字节码就可以在许多处理器上运行。精心设计的字节码不仅可以很容易地在任何机器上通过JVM解释执行,而且还可以动态地翻译成本地机器代码。虚拟机有一个选项,可以将执行最频繁的字节码序列翻译成机器码...

2020-05-08 23:44:23

红黑树、B树、B+树

参考:微信知乎此三者的主要应用是降低大数据量检索时的时间复杂度。JAVA的hashMap中,当一个桶中的元素个数超过…时,桶内数据的存储结构会由链表改成红黑树。MySql数据库中,对于数据量超大的数据进行索引时,会采用B+树的存储结构。(索引数据结构的演变:红黑树->B树->B+树)二叉查找树对二叉树做中根遍历,数据是有序的,也称二叉排序树、二叉搜索树。每个节点最...

2020-05-08 15:26:52

leetCode:合并有序链表

public static void main(String[] args){ Integer [] a = {3,5,9,12,14,18,21}; Integer [] b = {2,3,7,15,19,22}; LinkedList<Integer> lista = new LinkedList<Integer>(Arrays.asList(a))...

2020-05-04 14:49:23

流程控制及break、continue、label的用法:Core Java 3.8

while / do while确定循环:for循环for循环语句是有确定循环次数的,因此称为确定循环。for循环语句用每次迭代后更新的计数器或者变量的方式来控制循环次数。for 语句内定义的变量,其作用域仅在for循环语句和循环体内部。也就是说,如果在一个代码块内定义了两个非嵌套的for循环,则这两个for循环语句或者循环体内可以定义名称相同的变量。格式:for ( 语句1; 条件语...

2020-05-04 14:20:01

一文带你轻松把堆排序相关概念、原理及JAVA实现搞的明明白白

堆:用数组存储的完全二叉树。堆中二叉树的特性:树的所有父节点都必须是小于等于其节点(小顶堆),或者所有父节点都大于等于其子节点(大顶堆)。存储堆的元素的数组的特性:节点a[i] 的 左孩子节点存储在a[2i+1]、右孩子节点存储在a[2i+2]。在排序过程中,将所有元素将逻辑上划分为两部分,一部分是经过排序过程后有序的元素,另一部分为还未排序的所有待排序元素。以从小到大的堆排序为例:每...

2020-05-02 20:51:19

java中default关键字的语法语义

switch-case-default接口中的方法的默认实现

2020-04-22 15:21:29

Java Collection-new:Core Java 9

Collection├List│├LinkedList│├ArrayList│└Vector│ └Stack└SetMap├Hashtable├HashMap└WeakHashMapVector:可以实现可增长的对象数组。它可以试用正数索引进行访问,它的大小可以跟需要增大或者缩小。 使用时注意:

2020-04-20 16:06:45

UML图符号:Core Java 4.1

类之间的关系在类之间,最常见的关系有依赖(“ uses a ”)继承(“ is a ”)聚合(“ has a ”)依赖:如果类A的方法操纵B类的对象,我们就说类A依赖于类B。如Order类使用Account类是因为Order对象需要通过Account对象查看用户的账户余额。应该尽可能的将相互依赖的类减至最少,即让类之间的耦合度最小。聚合:如一个Order对象包含一些Item对象...

2020-04-20 13:29:12

调试技巧:Core Java 7.6

打印变量System.out.println(“x=”+x);Logger.getGlobal().info(“this=”+this);每个类一个main方法这样就可以对每个类进行单元测试Junit组织测试用例套件日志代理,对JDK源码调试详见:举个例子e.printStackTrace() 和 Thread.dumpStack();Thread.setDefaultUncau...

2020-04-15 20:38:40

日志:Core Java 7.5

开发人员应该用logger.fine( obj )来取代System.out.println( obj );当调用 System.out.println 时, 实际上生成了下面的日志消息:logger.fine();JDK的日志系统有以下几个主要的类和概念:日志记录器 Logger记录器负责暂存日志数据到内存中只有当某条日志的级别高于记录器设定的阈值时,此条日志才会被记录器记录到内存。...

2020-04-15 16:32:21

断言Assert:Core Java 7.2

断言 Assertassert,是断定、坚称的意思。assertion,是主张、肯定的意思。对于断言代码assert i>0;如果i的值实际是小于或者等于0,那么系统就会抛出一个AssertionError异常。注意,AssertionError异常是Error的子类,性质相当于JVM自身内部异常。什么时候应该选择使用断言呢如果在条件不成立的情况下继续执行的话,会发生致命的、不可...

2020-04-15 10:31:58

异常:Core Java 7.1

异常:程序运行过程中,由于程序本身的错误或者外部环境的影响,而出现的异常情况断言:为确保程序能正常运行或者排查程序出现异常的原因,需要编写一些测试代码进行测试。但程序正式运行时,是不允许测试代码工作的。如果直接删掉这些测试代码,再次遇到异常时,可能又需要重复编写相同的测试代码。可以通过断言来避免这些问题。日志:当程序遇到异常时,并不能总是能同用户或者终端沟通。此时可以通过日志记录下问题,以备日...

2020-04-15 10:14:57

代理Proxy:Core Java 6.5

利用代理可以在运行时创建一个实现了一组接口的新类。这种功能只有在编译时无法确定需要实现哪个接口时才使用。对于应用程序设计人员来说,遇到这种情况的机会很少。这是一种高级技术,对于系统程序设计人员来说,代理带来的灵活性十分重要。代理如何工作的代理类可以在运行时创建全新的类。在运行时直接生成类,即Class类的一个实例。而非生成一个类的源码,然后经过编译后再生成类的字节码文件,再经过JVM加载、生...

2020-04-14 10:56:37

内部类:Core Java 6.4

如果一个类定义在另一个类的内部,这个类就是内部类。为什么要用内部类,什么场景下需要用内部类根据面向对象设计原则,需要定义一个新的类,并对相关操作和属性进行封装。新类仅同另一个类有密切依赖关系或者逻辑关系,其它类基本不会用到它;或者这个新的类仅是为了另一个类提供服务。当发现一个类需要继承一个以上的类时,此时需要检查一下此类是否符合类的单一功能原则,是否应该定义新的类,是否需要定义...

2020-04-12 18:44:54

jdk8的比较与排序(Comparator & sort):Core Java

ComparatorCore Java 6.3.8Comparator提供了许多静态方法和默认方法,为大数据的比较和排序提供了支持。对于静态方法,调用格式是:Comparator.<T>method()如获取String类的比较器:Comparator.<String>naturalOrder();如果做了静态导入,类型又能推导出来,则直接方法名即可import...

2020-04-06 19:24:16

lambda表达式、函数式接口、方法引用、高阶函数:Core Java 6.3

当参数为代码块时,如何传递参数为代码块的应用场景及实现实例当应用Arrays::sort( T[] a, Comparator<? supter T> c)方法对数组中的对象进行排序时,需要传递一个比较器对象(即Comparator接口的实例c)为参数。最终目的,是将比较器中实现的接口方法Comparator::compare(T first, T second)中的代码块传递给...

2020-04-01 22:43:04

接口(Interface)与 回调(callback):Core Java 6.1

接口 interface接口技术主要用来描述类有什么功能,而并不给出每个功能的具体实现。接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。如果类遵从某个接口,那么就履行这项服务。例如:方法Arrays :: sort(T [] elements ),可以对数组中的元素进行排序,但要求类型T必须实现了接口方法Comparable<T> :: comp...

2020-03-30 22:25:18

枚举类Enum:Core Java 5.6

类Enumpublic abstract class Enum<E extends Enum<E>> implements Comparable<E>, Serializable { private final String name; private final int ordinal; //序号 //构造函数 protected Enum(...

2020-03-30 18:38:47

查看更多

勋章 我的勋章
  • 签到新秀
    签到新秀
    累计签到获取,不积跬步,无以至千里,继续坚持!
  • 阅读者勋章Lv2
    阅读者勋章Lv2
    授予在CSDN APP累计阅读博文达到7天的你,是你的坚持与努力,使你超越了昨天的自己。
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv3
    勤写标兵Lv3
    授予每个自然周发布7篇到8篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。