自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

是田同学啊的博客

一只小菜鸟的学习记录

  • 博客(22)
  • 收藏
  • 关注

原创 Java中公平锁、递归锁、自旋锁、独占锁和共享锁的代码演示

文章目录1、公平锁和非公平锁2、可重入锁(递归锁)3、自旋锁3.1 手写一个自旋锁4、独占锁、共享锁、互斥锁1、公平锁和非公平锁公平锁是指 多个线程按照申请锁的顺序来获取锁,根据先来后到的规则进行排队等候 。非公平锁是指 多个线程获取锁的顺序并不是按照申请锁的先后顺序,有可能后申请锁的线程比先申请锁的线程优先获得锁 ,在高并发环境下,有可能造成优先级反转或者饥饿现象。饥饿现象:长时间未获取到锁举例:ReentrantLock 可以指定构造函数参数来创建公平锁或者非公平锁,默认是非公平锁。//非

2021-02-09 23:41:05 238

原创 面试官:ArrayList是线程安全的吗?如果不是,请举例说明?

文章目录1、ArrayList线程不安全演示示例2、解决ArrayList线程不安全方案2.1 采用Vector类2.2 通过Collections类构造同步的List2.3 采用 CopyOnWriteArrayList类3、HashSet3.1 解决方案3.2 CopyOnWriteArraySet3.3 HashSet 面试点补充4、HashMap4.1 解决方案1、ArrayList线程不安全演示示例/** * @ClassName: CollectionDemo1 * @Auther: 戏

2021-02-07 22:53:28 5471 1

原创 Java并发编程之CAS(比较并交换)

文章目录1、compareAndSet方法2、Unsafe类3、CAS是什么4、CAS优缺点5、CAS存在的ABA问题5.1 ABA的产生5.2 原子引用5.2 ABA的解决办法1、compareAndSet方法先以AtomicInteger为例看源码:/** * Atomically sets the value to the given updated value * if the current value {@code ==} the expected value.

2021-02-06 21:20:39 297

原创 Java关键字之volatile

文章目录1、volatile概念:2、volatile三大特性2.1 保证可见性1.2 不保证原子性1.3 禁止指令重排3、volatile使用举例:1、volatile概念:volatile是Java虚拟机提供的轻量级的同步机制2、volatile三大特性2.1 保证可见性从可见性分析需要引入JMM内存模型概念。JMM(Java Memory Model)本身是一种抽象的概念,并不真实存在,他描述的时一组规则或规范,通过这组规范定义了程序中各个变量(包括实例字段,静态字段和构成数组对象的元素)

2021-02-05 20:51:28 225 4

原创 关于win10系统重置后出现鼠标右键桌面一直转圈问题的解决办法

网上有很多教程都是要删除什么注册表,但是对于像我这样的小白来说,风险有点大,万一删错了就GG了(其实也试过删除或者修改注册表,但是没用)。以下步骤风险低,推荐尝试(之所以是推荐尝试,是因为每个人的电脑不同,可能不适用这种方法):快捷键 win+R 输入命令 services.msc ,点击确定找到 NVIDIA Display Container LS ,右键点击属性把 启动类型 修改为 禁止 ,再点击应用,确定即可...

2021-01-07 18:28:41 10990 24

原创 (error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist

(error) MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk. Commands that may modify the data set are disabled, because this instance is configured to report errors during writes if RDB snapshotting fails (st

2020-12-16 20:30:14 219 2

原创 【Java设计模式】之以Comparator比较器为例学习策略模式

对整型数组排序假设现在我们要写一个类,其 sort() 方法可以接收一个整型数组,然后对该整型数组进行排序。那么排序部分的代码就差不多应该这样写:public class Sort { public static void sort(int[] arr) { int i, j = 0; int temp; for (i = 0; i < arr.length; i++) { for (j = 1; j < arr

2020-12-16 14:20:10 507

原创 Linux常用命令,删除文件,复制文件以及Vim编辑

Linux常用命令切换超级用户su root查看当前目录下的文件和文件夹的详细信息ll查看当前目录ls创建目录mkdir 文件夹名创建多个目录mkdir -p a/b/c #创建了a目录以及子目录b,以及b的子目录c进入到某个文件夹cd /文件夹名返回上个目录cd ..创建一个普通的空白文件touch 文件名向指定文件写入内容#覆盖模式echo "abc">a.txt #把abc写入覆写到a.txt文件中

2020-12-14 23:42:04 628

原创 Maven环境搭建和在IDEA中配置以及使用Maven

Maven定义Maven 是一个项目管理工具,它包含了一个项目对象模型(POM: Project Object Model),一组标准集合,一个项目生命周期,一个依赖管理系统以及用来运行定义在生命周期阶段中插件目标的逻辑。Maven解决的问题在实际的项目开发过程中,我们需要引入各种 jar 包,其数量常常达到几十乃至上百个,如果我们全部通过手动把 jar 引入工程目录,不仅费事费力,往往还因为 jar 包的冲突让人直接怀疑人生。另一方面,对于具有相似架构的项目来说,每一个项目都需要引入 jar 包,也

2020-12-14 16:16:10 265

原创 解决Cent OS 6.5 中yum源错误:YumRepo Error: All mirror URLs are not using ftp, http[s] or file和404

解决Cent OS 6.5 中yum源错误:YumRepo Error: All mirror URLs are not using ftp, http[s] or file在Linux系统安装MySQL的时候,想要移除系统自带的mysql版本,使用 yum -y remove mysql-libs.x86_64 命令进行移除时报以下错误:YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. Invalid rel

2020-12-13 10:33:45 1448

原创 CentOS 6.5 安装JDK环境以及Could not find or load main class报错解决

CentOS 6.5 安装JDK上传jdk到linux系统(使用SecureFX直接拖动上传)创建一个jdkhome 目录用于保存解压后的jdk在 /home/xzr/ 目录下创建一个 jdkhome 目录解压JDK压缩包把 Uploads 目录下的JDK压缩包解压(当文件名比较长时,可以输入文件名的前几个名称再按下Tab键,系统会自动搜索补全)解压成功将解压后的JDK压缩包剪切放到 jdkhome 目录下剪切指令: mv jdk1.8.0_11/ ~/jdkhome

2020-12-12 15:19:28 1020

原创 CentOS 6.5版本的输入ifconfig命令无法显示ip4问题(ifcfg-ens33文件缺失)解决办法

CentOS 6.5版本的输入ifconfig命令无法显示ip4问题(ifcfg-ens33文件缺失)解决办法网上的解决办法大多是输入 vi /etc/sysconfig/network-scripts/ifcfg-ens33 然后将ONBOOT权限改为yes ,但是我安装的环境上找不到 ifcfg-ens33 这个文件然后我试着进入 ifcfg-eth0 文件更改 ONBOOT 为 yes ,使用 :wq! 强制保存出错,这是因为目前是普通用户,没有修改权限。采用 su root

2020-12-11 19:03:40 2933

原创 JavaWeb之JSP、Tomcat、Servlet和Ajax简述

JavaWeb学习记录一 tomcat1 tomcat目录结构binbin目录主要是用来存放tomcat的命令,主要有两大类,一类是以.sh结尾的(linux命令),另一类是以.bat结尾的(windows命令)。很多环境变量的设置都在此处,例如可以设置JDK路径、tomcat路径startup 用来启动tomcatshutdown 用来关闭tomcat修改catalina可以设置tomcat的内存confconf目录主要是用来存放tomcat的一些配置文件。server.xm

2020-12-10 21:46:02 741

原创 通俗易懂的MySQL底层原理和索引讲解

1 什么是索引?索引是帮助数据库高效获取数据的拍好序的 数据结构 。为什么使用索引?先来看一个小例子:假设一个数据表 table1 中有两列数据,分别是col1和col2 ,现在要执行语句 select * from table1 where col1=8。在不加索引的情况下,sql语句会从第一行开始查找对比,直到找到 col1=8 这条记录,一共查找次数是为 8 次。那如果是采用索引的方式,把 col1 列存储在一个红黑树 ,从根节点进行查找,只需要 4 次就能查找到 col1=8 这条记录。

2020-11-12 21:14:31 352

转载 ArrayList 和 LinkedList 有什么区别?

ArrayList 和 LinkedList 有什么区别?

2020-11-08 19:56:55 107

原创 【Java设计模式】之单例模式总结

对于一个软件系统中的某些类来说,只有一个实例很重要。例如在Windows操作系统中就只能打开一个任务管理器窗口,如果不对窗口进行唯一化,势必会弹出多个窗口。如果这些窗口显示的内容完全一致,那么这些窗口就是重复对象,白白浪费内存资源;如果这些窗口显示的内容不一致,那么意味着操作系统在某个时刻上存在多个不同的状态,很显然这是与实际不相符合的,还会给用户带来误解,无法确定哪一个窗口才是系统最真实的状态。因此对象的唯一性在某种情况下非常重要。定义:Ensure a class has a only one in

2020-10-26 14:02:57 139

原创 XML与JSON概述以及使用示例

1 xml语法eXtensible Markup Language 可扩展标记语言特性:1.xml具有平台无关性,是一门独立的标记语言 无关性表现在不同操作系统中显示效果都一样,在不同的编程语言中解析结果都一样,xml不依赖任何语言;2.xml具有自我描述性学习意义:1.方便网络传输数据(JSON占多数)2.进行数据存储3.作为配置文件(XML用的最多的地方)XML语法格式:1.XML文档声明(必须放在第一行)<?xml version="1.0" encoding="UT

2020-10-24 14:17:43 531

原创 Java多线程、线程池概述

1 概念进程 是指一个内存中运行的应用程序,每个进行都有一块独立的内存空间。线程 是一个进程中一条执行路径,它们共享进程的内存空间,线程之间可以自由切换,并发执行,一个进程可以有多个线程。分时调度 :所有线程轮流使用CPU,平均分配每个线程占用CPU的时间。抢占式调度:让优先级高的线程优先使用CPU资源,CPU使用该方式在多个线程之间进行高速的切换,在某一时刻来说,对于CPU的一个核心来说,只有一个线程在执行,只是执行速度很快,我们无法感知出来,这中体验就像是多个线程在同时运行。多线程不能提高程序的

2020-10-20 20:40:46 110

原创 String类概述

String1 不可变特性String类表示字符串,字符串是不可变的,他们的值在创建后就无法更改。例如:String str = "abc";相当于char data[] = {'a','b','c'}; //因为数组一经创建,其大小是不能更改的,所以字符串也就不能更改了String str = new String(data);2 共享性字符串是不可变类。如果两个字符串对象通过直接赋值的方法创建且内容完全一致,则他们地址也是相同的(== 结果为true)。例如:String s1

2020-10-14 20:44:15 146

原创 Java日历类的使用示例

任务描述:​ 某公司软件开发工程师孙工,作息规律为上三天班,休息一天,经常不确定休 息日是否周末,为此,请你开发一个程序,当孙工输入年及月,以日历方式显示对 应月份的休息日,用中括号进行标记.同时,统计出本月有几天休息,轮到周末休 息有几天.(注:首次休息日是2020年2月2日)输出示例:​ 解题思路:从作息规律为上三天班,休息一天可以得出,孙工的休息日是以周期为4天进行循环的;又因题中告诉了首次休息日的时间为2020年2月2日,那么我们就用该时间作为计算的参照时间;当用户输入年份和月份后

2020-10-13 22:47:33 155

原创 Java中的泛型与常用类库一

1.泛型泛型就是参数化类型,在定义时把像 Integer,String 这样的具体化类型参数化,只有在使用或者调用时才传入具体的类型。1.1 在类中使用泛型//类中使用泛型class Test<T> { T data; public T getData() { return data; } public void setData(T data) { this.data = data; }}//使用举例p

2020-10-13 22:11:18 127

原创 Java异常处理

什么是异常程序在运行过程中发生由于外部问题导致的程序异常事件,会阻止当前方法或作用域继续执行的问题。一旦发生异常,程序就不能再继续按照预期执行下去。对于开发者来说,这无疑是致命的。我们所能做的就是从当前环境跳出,把发生的问题提交给上一层环境来进行处理,这就是抛出异常。异常体系结构所有的异常 Exception 和 错误 Error 都继承自 Throwable 类。Error错误 是程序无法处理的问题,属于运行程序中比较严重的问题,程序本身无法进行处理,只能尽量避免,无法用代码进行处理。这类错

2020-10-09 23:08:09 95

空空如也

空空如也

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

TA关注的人

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