自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Java ReentrantLock 源码解析与简单使用

文章目录一、java.util.concurrent.locks.Lock接口二、AbstractQueuedSynchronizer2.读入数据总结ReentrantLock是juc中的一个可重入锁独占锁,该锁分为公平锁和非公平锁。独占锁是这个锁一旦被一个线程占据其他线程就不能抢占,可重入锁是如果这个线程重复获取这个锁不需要进行等待,直接进入。公平锁和非公平锁是刚进入的线程是否可以和在队列中等待的第一个线程进行竞争,如果是非公平锁则刚进入的线程在当前锁空闲的时候可以和等待队列中的第一个线程进行竞争,如果

2021-04-18 22:59:50 482 7

原创 Java 阻塞与非阻塞性能简单对比思考

使用三个线程分别打印a、b、c三个字母,要求三个字母按照顺序打印指定次数,通过模拟线程不同的消耗时间来对比使用wait和不使用wait的性能的差异。模拟每个线程只执行短暂时间public class Test1 { private static int status = 1; private static int times = 100000; private static Object obj = new Object(); public static void ma

2021-02-19 22:48:11 242 1

原创 Java FileDescriptor源码理解和三个标准流

Java FileDescriptor源码理解简介FileDescriptor类参数及构造三个标准流简介java中的File类是无法对文件进行操作的,只有通过FileInputStream和FileOutputStream才能对文件进行操作。 public FileInputStream(File file) throws FileNotFoundException { String name = (file != null ? file.getPath() : null);

2020-11-05 14:34:18 844

原创 java FileInputStream open0源码解析

这里写目录标题一级目录一级目录本文的jdk源码为openjdk1.8。在java中对File类来表示文件,但是File类并没有inputStream和outputStream来对文件输入输出进行操作,在java中文件的输入输出功能交由FileInputStream和FileOutputStream两个类来进行。 public FileInputStream(File file) throws FileNotFoundException { String name = (file

2020-11-04 14:30:48 1941

原创 java JNI编程简单实践

JNI编程简单实践JNI简介简单示例HelloWorld变量获取和赋值JNI简介在维基百科中对JNI的定义如下:JNI (Java Native Interface,Java本地接口)是一种编程框架,使得Java虚拟机中的Java程序可以调用本地应用/或库,也可以被其他程序调用。 本地程序一般是用其它语言(C、C++或汇编语言等)编写的,并且被编译为基于本机硬件和操作系统的程序。在Java语言中native方法就是使用JNI技术来实现的,通过JNI技术可以调用底层C++或C语言编写的代码。简单示例H

2020-11-04 14:28:49 188

原创 Java启动参数cp源码解读

这里写自定义目录标题jvm重定义的一些功能函数jvm启动后参数处理classpth参数处理过程详解jvm重定义的一些功能函数#define JLI_StrLen(p1) strlen((p1))#define JLI_StrChr(p1, p2) strchr((p1), (p2))#define JLI_StrRChr(p1, p2) strrchr((p1), (p2))#define JLI_StrCmp(p1, p2) strcmp((p1),

2020-10-30 10:04:38 396

原创 通过jvm字节码认识java代码中i++与++i区别

public class Test { static void print(int i){ System.out.println(i); } public static void main(String[] args) { int i = 0; print(i++); print(++i); }}通过一段简单的java代码实现了打印i++与++i的功能,其中i++打印出来的是0,而++i打印出来的是2

2020-06-02 16:26:48 583 3

原创 Java实现二分查找

首先先判断需要查找的数组是否长度为1,如果长度为1可以直接判断是否是需要查找的对象,其次判断传入的数组是否已经重小到大排好序了,使用循环遍历的方法来判断,最后再使用二分查找的方法来查找对应的目标。class Solution { /** * 二分查找,从数组array中返回目标target的索引 * @param array 需要查找的数组,传入的array应该是已经从小到大排好序的 * @param target 需要查找的目标 * @return 如果查

2020-05-26 15:18:36 237

原创 Java的 String创建运行机制和StringBuffer StringBuilder的区别

Java String 类型数据一旦创建了就不能改变。Java在创建String类型数据时先查找常量池,如果常量池中存在该字符串就指向已经存在的字符串的位置,如果不存在该字符串就先创建字符串,然后再指向该字符串中在常量池的位置。Java创建字符串主要有两种方法String s1 = "123456";String s2 = new String("123456");s1字符串是直接赋值,编译期间在常量池中直接创建,字符串在常量池中只能有一份。String s3 = "123"+"456";Sy

2020-05-26 11:44:39 151

原创 Leetcode N-Queens问题

题目描述:The n-queens puzzle is the problem of placing n queens on an n×nchessboard such that no two queens attack each other.Given an integer n, return all distinct solutions to the n-queens puzzle.Each solution contains a distinct board configuration o

2020-05-19 20:28:47 174

空空如也

空空如也

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

TA关注的人

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