- 博客(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 231 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 541
原创 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 2357
原创 Java 集合框架(Collection,Map)介绍
简介Java集合框架总的来说包括两种类型的容器:集合(Collection):存储一个元素集合图(Map): 存储键值对映射数组array与集合collection的区别:1.数组长度不可变化且无法保存有映射关系的数据;2.数组元素既可以是基本类型的值,也可以是对象;集合只能保存对象。Collection接口collection接口extends了iterable接口,表示该类是可迭代的,可以通过迭代器遍历自身元素,可以使用foreach 语句。Collections接口里有操作Coll
2021-02-25 19:43:16 151 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 172
原创 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 314 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 382 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 2770 1
原创 算法第四版笔记 第一章 基础
1.1基础编程模型1.1.1 Java程序的基本结构要建立静态方法库或定义数据类型或一个类,需要如下七种语法:原始数据类型:整数,浮点数,布尔值等,可以组成数学公式。语句:声明,赋值,条件,循环,调用,返回数组:多个同数据类型数据的值的集合静态方法:可以封装并重用代码,可以使用独立模块程序标准输入/输出:程序与外界联系的桥梁字符串:一连串的字符,JAVA内置了对它的一些操作。数据抽象:数据抽象封装和重用代码,可以定义非原始数据类型,从而面向对象编程
2021-01-06 16:09:31 92 1
原创 深入理解JAVA虚拟机第二章笔记 Java内存区域与内存溢出异常
2.1概述对于C,C++的程序员来说,内存是始终要维护的,而在JAVA中,程序员把这个权力交给了JAVA虚拟机,不容易出现内存泄露和溢出的问题。但是我们也要理解JAVA虚拟机是如何使用内存的,才能高效地排除错误,修正问题。2.2运行时数据区概念模型”这个词会经常被提及, :它代表了所有虚拟机的统一外观, 但各款具体的Java虚拟机并不一定要完全照着概念模型的定义来进行设计, 可能会通过一些更高效率的等价方式去实现它。...
2021-01-05 19:17:02 327 1
原创 深入理解计算机系统(原书第三版)笔记(二) 2.2整数表示
知识点:整数在计算机上的储存形式及编码思考整形在C语言的表示中,同一数据类型,能表示的最小负数和最大正数的值是不同的。 比如[signed]char最小值为-128,最大值是127,这是什么造成的呢?前面的文章我们提到,在计算机中,信息就是位+上下文即:系统中的所有信息-----包括磁盘文件,内存中的程序,内存中存放的用户数据,及网上传送的数据,都是由一串比特表示的。(形如10010这样的二进制数据)区分这些数据对象的唯一方法是我们读到这些数据对象时的上下文。比如在不同的上下文中,一个同样
2020-12-04 15:58:25 292 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 630 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人