自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 Java锁详解

背景知识同步与异步同步:A线程要请求某个资源,但是此资源正在被B线程使用中,因为同步机制存在,A线程请求不到,怎么办,A线程只能等待下去异步:A线程要请求某个资源,但是此资源正在被B线程使用中,因为没有同步机制存在,A线程仍然请求的到,A线程无需等待。注意 :此处同步是指数据同步而不是浏览器中那种 普通B/S模式(同步)AJAX技术(异步) 行为的同步。Java线程关键字:thread(线程)、thread-safe(线程安全)、intercurrent(并发的)synchro

2021-03-01 10:59:52 215 2

原创 浅谈Java的类加载(Class Loading)过程

背景知识class文件对应唯一一个类或接口的定义信息*但类和接口不一定定义在文件中,也可以动态生成.class(Byte code)是图灵完备的,从而使其他语言也有在java虚拟机上运行。Class文件结构:类似于C语言结构体的伪结构:只有两种数据类型: 无符号数和表无符号数(基本数据类型):u1,u2,u4,u8 分别代表1个字节,2个字节,4个字节,8个字节的无符号数表:表是由多个无符号数或其他表作为数据项构成的复合数据类型,为了便于区分,所有的表都习惯性地以"_info"结尾

2021-02-27 17:17:31 518

原创 Java深入理解泛型,Array(数组)

背景知识Java 泛型泛型是什么generics:为了参数化类型,可以把类型当作参数传递给一个类或者是方法。如果不用泛型,我们会使用强转:public class Cache<T> { T value; public Object getValue() { return value; } public void setValue(T value) { this.value = value; } }//泛型Cache<String> cache1

2021-02-26 16:13:32 2300

原创 Java 集合框架(Collection,Map)介绍

简介Java集合框架总的来说包括两种类型的容器:集合(Collection):存储一个元素集合图(Map): 存储键值对映射数组array与集合collection的区别:1.数组长度不可变化且无法保存有映射关系的数据;2.数组元素既可以是基本类型的值,也可以是对象;集合只能保存对象。Collection接口collection接口extends了iterable接口,表示该类是可迭代的,可以通过迭代器遍历自身元素,可以使用foreach 语句。Collections接口里有操作Coll

2021-02-25 19:43:16 137 1

原创 Java Lambda表达式和Stream(流)

Lambda表达式简介lambda表达式是java SE 8中重要的新特性,允许通过表达式来代替功能接口。语法(parameters)-> expression 或 (parameters) ->{statements;}例://不需要参数,返回值是5()->5//接收一个参数,返回其两倍的值(x)->2*x//接收两个参数,并返回他们的差值(x,y)->x-y//接收两个int型整数,返回他们的和(int x,int y)-> x+y//接

2021-02-25 13:43:43 160

原创 java多线程中线程的6种状态以及4种实现的理解

java多线程中线程的6种状态以及4种实现的理解java线程的生命周期java线程的状态有6种Thread类内部有枚举类State详细描述了线程的6种状态:1.初始(NEW):新创建了一个线程对象,但是还没有调用start()方法。2. 运行(RUNNABLE):Java线程中将就绪(ready)和运行中(running)两种状态笼统的成为“运行”。线程对象创建后,其他线程(比如main线程)调用了该对象的start()方法。该状态的线程位于可运行线程池中,等待被线程调度选中,获取cpu 的使用

2021-02-24 22:10:23 297 2

原创 XML常见疑问及解答

XML是什么?XML 是可扩展标记语言(eXtensible Markup Language)标记语言:是一种将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的电脑文字编码。XML被设计的思想和用途?XML被设计用来传输和储存数据。用途:1.对于HTML的补充HTML/CSS更关注于显示和布局,那么如果希望在HTML中展示动态数据,我们可以简单地通过JavaScript读取XML文件(把数据存放在XML中),而不需要总是去改变HTML。2.简化数据共享它是纯文本文档,

2021-01-19 16:58:43 354 4

原创 union-find(并查集)算法

背景:union-find算法是用来解决动态连通性问题的。动态连通性问题的数学表达:问题的输入是一列整数对。一个整数对可以被理解成这个整数对的两个整数相连。eg:我们输入整数对 p,q,那么"p和q是相连的"。相连:我们假设相连是一种对等的关系,就意味着它有自反性:p和p是相连的对称性:如果p和q相连,那么q和p也是相连的传递性:如果p和q是相连的,q和r是相连的,那么p和r而是相连的问题:我们已知一些整数对(即所有点的相连关系),那么如何得知某两个点是否相连?现实中的例子:大型网

2021-01-07 18:15:27 2729 1

原创 算法第四版笔记 第一章 基础

1.1基础编程模型1.1.1 Java程序的基本结构要建立静态方法库或定义数据类型或一个类,需要如下七种语法:原始数据类型:整数,浮点数,布尔值等,可以组成数学公式。语句:声明,赋值,条件,循环,调用,返回数组:多个同数据类型数据的值的集合静态方法:可以封装并重用代码,可以使用独立模块程序标准输入/输出:程序与外界联系的桥梁字符串:一连串的字符,JAVA内置了对它的一些操作。数据抽象:数据抽象封装和重用代码,可以定义非原始数据类型,从而面向对象编程

2021-01-06 16:09:31 83 1

原创 深入理解JAVA虚拟机第二章笔记 Java内存区域与内存溢出异常

2.1概述对于C,C++的程序员来说,内存是始终要维护的,而在JAVA中,程序员把这个权力交给了JAVA虚拟机,不容易出现内存泄露和溢出的问题。但是我们也要理解JAVA虚拟机是如何使用内存的,才能高效地排除错误,修正问题。2.2运行时数据区概念模型”这个词会经常被提及, :它代表了所有虚拟机的统一外观, 但各款具体的Java虚拟机并不一定要完全照着概念模型的定义来进行设计, 可能会通过一些更高效率的等价方式去实现它。...

2021-01-05 19:17:02 261 1

原创 深入理解计算机系统(原书第三版)笔记(二) 2.2整数表示

知识点:整数在计算机上的储存形式及编码思考整形在C语言的表示中,同一数据类型,能表示的最小负数和最大正数的值是不同的。 比如[signed]char最小值为-128,最大值是127,这是什么造成的呢?前面的文章我们提到,在计算机中,信息就是位+上下文即:系统中的所有信息-----包括磁盘文件,内存中的程序,内存中存放的用户数据,及网上传送的数据,都是由一串比特表示的。(形如10010这样的二进制数据)区分这些数据对象的唯一方法是我们读到这些数据对象时的上下文。比如在不同的上下文中,一个同样

2020-12-04 15:58:25 280 2

原创 在Windows10上编译OpenJDK15的流程和思路

所用工具Windows10 64位OpenJDK15 源文件OracleJDK15Visual Studio 2019cygwin 3.1背景知识JDK,JRE,SDK,JVM什么是 JDK,JRE,SDK,JVM?JDK (Java Development Kit)Java开发工具箱, JRE (Java RuntimeEnvironment)Java运行时环境, SDK(Software Development Kit)软件开发工具箱,JVM(Java Virtual Ma

2020-12-01 22:15:23 615 2

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除