自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2021-09-06

Git学习一.(cvs/svn) vs git.1.集中式 vs 分布式集中式版本控制系统如下:缺点:必须联网才能工作,受网络和带宽影响较大;单点故障分布式版本控制系统如下:优点:更大程度上避免网络和带宽影响,安全性更高二.Git基本概念1.工作区-暂存区-本地版本库工作区:就是你的项目文件夹,即.git文件夹所在的目录。 暂存区:英文叫 stage 或 index。一般存放在.git目录下的 index 文件(.git/index)中,所以我们把暂...

2021-09-07 11:44:42 106

原创 有三个线程分别打印a、l、i,请用多线程编程实现,在屏幕上循环打印n次alialiali…n由输入行输入

1.synchronizedlock为锁对象,order为1表示线程1可以打印,为2表示线程2可以打印,为3表示线程3可以打印num表示打印的次数public class PrintThread(){ private static Object lock = new Object(); private static volatile Integer order = 1; private static AtomicInteger num = null; pub

2020-05-31 11:49:42 570

转载 ConcurrentHashMap底层实现原理(JDK1.8)源码分析

前言面试中常常问到Hashtable、HashMap和ConcurrentHashMap的区别。大家都知道HashMap是线程不安全的,Hashtable和ConcurrentHashMap是线程安全的。Hashtable保证线程安全的方法,基本都是在操作集合的方法上加synchronized关键字,我们有必要知道ConcurrentHashMap底层实现和如何保证线程安全性。Concurren...

2020-05-31 09:54:59 756

转载 ReentrantLock(重入锁)源码分析

简介ReentrantLock的实现不仅可以替代隐式的synchronized关键字,而且能够提供超过关键字本身的多种功能。这里提到一个锁获取的公平性问题,如果在绝对时间上,先对锁进行获取的请求一定被先满足,那么这个锁是公平的,反之,是不公平的,也就是说等待时间最长的线程最有机会获取锁,也可以说锁的获取是有序的。ReentrantLock这个锁提供了一个构造函数,能够控制这个锁是否是公平的。...

2020-05-31 09:53:11 158

转载 Java ArrayList类源码分析

前言  在前面的学习集合中只是介绍了集合的相关用法,我们想要更深入的去了解集合那就要通过我们去分析它的源码来了解它。希望对集合有一个更进一步的理解!  既然是看源码那我们要怎么看一个类的源码呢?这里我推荐的方法是:    1)看继承结构      看这个类的层次结构,处于一个什么位置,可以在自己心里有个大概的了解。    2)看构造方法      在构造方法中,看做了哪些事...

2020-05-31 09:52:41 308

转载 LinkedList 源码分析

本节我们来学习一下LinkedList,LinkedList相对ArrayList而言其使用频率并不是很高,因为其访问元素的性能相对于ArrayList而言比较慢,至于原因我们下面讲开始讲解,本节重点是了解其内部的结构,会简单实现一个简单的LinkedList 即可。一、LinkedList的简单使用任何代码在深入分析前,首先需要会使用,因此我们先看下基本的使用列子:public c...

2020-05-31 09:52:12 190

原创 Java并发编程实战-CopyOnWriteArrayList源码分析

参考:https://www.cnblogs.com/huangjuncong/p/9160713.htmlhttps://www.iteye.com/blog/caoyaojun1988-163-com-1754686Java.util.concurrent包中只有CopyOnWriteArrayList一种并发LIst,且这是一个线程安全的ArrayList,对齐进行修改操作和元素迭代...

2020-05-31 09:51:51 394

转载 java集合之TreeMap源码分析

java集合(6):TreeMap源码分析(jdk1.8)重点:红黑树(一)之 原理和算法详细介绍TreeMap的基本概念:TreeMap集合是基于红黑树(Red-Black tree)的 NavigableMap实现。该集合最重要的特点就是可排序,该映射根据其键的自然顺序进行排序,或者根据创建映射时提供的 Comparator 进行排序,具体取决于使用的构造方法。这句话是什么意思呢?...

2020-05-31 09:50:20 212

转载 HashMap源码分析

摘要HashMap是Java程序员使用频率最高的用于映射(键值对)处理的数据类型。随着JDK(Java Developmet Kit)版本的更新,JDK1.8对HashMap底层的实现进行了优化,例如引入红黑树的数据结构和扩容的优化等。本文结合JDK1.7和JDK1.8的区别,深入探讨HashMap的结构实现和功能原理。简介Java为数据结构中的映射定义了一个接口java.util.M...

2020-05-31 09:49:25 363

原创 树的中序遍历(递归,迭代,莫里斯)

所有涉及到中序遍历的题都可以使用该模板解决中序遍历(inorderTraversal)有递归,迭代,莫里斯三种解法递归版public List<Integer> inorderTraversal(TreeNode root) { //具体的细节可以和这里不一样,但思路一致即可,就是左子树递归->root->右子树递归 List<Integer>...

2020-05-31 09:48:18 2575

转载 Java集合之LinkedBlockingQueue源码分析

问题(1)LinkedBlockingQueue的实现方式?(2)LinkedBlockingQueue是有界的还是无界的队列?(3)LinkedBlockingQueue相比ArrayBlockingQueue有什么改进?(4)LinkedBlockingQueue 内部是如何使用两个独占锁 ReentrantLock 以及对应的条件变量保证多线程先入队出队操作的线程安全?为什...

2020-05-31 09:22:07 253

转载 Java集合之ArrayBlockingQueue源码分析

ArrayBlockingQueue是Java并发框架中阻塞队列的最基本的实现,分析这个类就可以知道并发框架中是如何实现阻塞的。它是数组实现的线程安全的有界的阻塞队列。线程安全是指,ArrayBlockingQueue内部通过“互斥锁”保护竞争资源,实现了多线程对竞争资源的互斥访问。而有界,则是指ArrayBlockingQueue对应的数组是有界限的。 阻塞队列,是指多线程访问竞争资源时,当竞争...

2020-05-31 09:20:25 169

转载 数组拷贝引发的思考

数组拷贝的三种方式1.引用赋值int[] a = {1,2,3,4,5};int[] b = a;a[0] = -1;System.out.println(b[0]); //-1数组是用堆去保存的,赋值的时候只是把地址拷贝过去,两个引用指向了同一个地址,所以改变任一数组中的值,另一个数组也会出现相应的变化。2.数组遍历赋值int[] arr1 = {1,2,3}...

2020-01-14 14:13:09 174

转载 Java 排序之快速排序

以数据结构与算法分析(Java语言描述)中2.26小题为例进行解析大小为N的数组A,其主元素是一个出现超过N/2的元素(从而这样的元素之多有一个)。例 {3,3,4,2,4,4,2,4,4}中有一个主元素4,而数组{3,3,4,2,4,4,2,4}没有主元素现在我们假设数组中一定有主元素,下面将主元素找出来1.求已知有主元素的数组的主元素,利用快速排序算法将数组排序,找到其中间元素,复...

2019-09-22 18:03:16 163

转载 幂方级数求和的公式及推导

https://blog.csdn.net/doyouseeman/article/details/50826293https://www.cnblogs.com/LzyRapx/p/8456075.html

2019-06-01 21:15:37 6544 2

原创 解决failed to connect to /10.170.65.231 from /10.175.172.106 (port 60102) after 10000ms

我用的是真机调试,搞了半天一直出现这个问题,搜寻了半天,在此将解决方法罗列出来:1.关闭Windows防火墙,在控制面板-Windows防火墙-开启或关闭防火墙中 选择关闭2.确保手机与电脑连接同一局域网。手机使用数据流量或是电脑使用网线连接都可能造成失败3.确保服务器开启。浏览器访问http://127.0.0.1/get_data.xml(这里根据自己情况而定)可以成功显示...

2019-02-27 21:51:23 36253 3

原创 Android学习-数据库持久化方案(续)之LitePal操作数据库

LitePal操作数据库LItePal是一款开源的Android数据库框架,它采用了对象关系映射(ORM)的模式,并将我们平时开发常用的一些数据库功能进行封装1.配置LitePal因为大多数的开源项目都会将版本提交到jcenter上,这里只需要在app/build.gradle文件中声明该开源库的引用即可声明方式如下:1)编辑app/build.gradle文件,在depend...

2018-12-10 15:18:06 273

原创 Android学习-数据持久化方案

任何一个应用程序都要和数据打交道,为了防止数据因程序关闭或其他原因被内存回收而丢失,引入了数据持久化技术。数据持久化是指将那些内存中的瞬时数据保存到存储设备中。本文主要分三部分来学习数据持久化方式,即文件存储、SharedPrefere存储、SQLite数据库存储。1.文件存储1.1数据存储到文件Context类提供了openFileOutput()方法将数据存储到文件。第一个参数是文件名,...

2018-12-05 16:28:55 335

空空如也

空空如也

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

TA关注的人

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