- 博客(11)
- 收藏
- 关注
原创 idea没有out文件
后面我就创建了一个新的空项目尝试了一下 然后我发现原来交给maven管理的项目或模块才会直接保存在target中,但如果是创建的没有交给maven管理的模块就会出现out包 也能输入命令。但是我却找不到我的out包 网上也百度了一下按照方法也没有弄好 一开始我以为是我的jdk版本出现了问题 因为在编译过程中有看到我的(下图)这个版本好像不太对 设置了半天也没发现哪有问题。今天在学习黑马jvm的课程中我发现我和老师的idea不太一样 他可以编译后进入out文件中执行javap -v命令。
2023-10-05 14:55:20
1144
原创 Linux常用命令
常识 Linux中全部都是文件 Linux中把用户和文件关系化为三类:所有者,所属组,其他人 Linux中的权限,够用就好,例如非可执行文件无需给用户执行权限 Linux中严格区分大小写 $代表普通用户,#代表管理员root 目录知识 /bin 存放二进制可执行文件,一般常用命令都放在这里(所有用户都可执行的命令) /etc...
2020-03-11 01:29:29
227
原创 AbstractQueuedSynchronizer
AbstractQueuedSynchronizerlock相关操作public final void acquire(int arg)这个函数的作用是获取同一时间段只能被一个线程获取的量,这个量就是抽象化的锁的概念首先会执行tryAcquire方法尝试获取“锁”,如果获取到了就没事了,如果没有获取到会执行下面的操作如果没有获取到“锁”会执行addWaiter方法,会给当前线程创建...
2020-03-08 00:15:48
146
原创 Java类集框架总结
类集框架Listjava.util.VectorVector对几乎所有方法都加了锁,且大部分都是synchronized方法,包括get方法,锁的粒度较粗,性能较差,在jdk1.0版本就已经发布,很老旧的类,目前Java已经不推荐使用。Vector初始默认容量为10,默认每次扩容为原来的一倍,可手动指定扩容大小数据存放在一个Object类型的数组中线程安全java...
2020-03-08 00:11:38
179
原创 Spring源码搭建
简介我们平常说的使用的spring,是spring全家桶中的spring-framework项目中的几个小模块,所以spring中可不仅仅只有IOC和AOP。想要学习spring源码,第一步一定是构建spring源码环境Spring源码构建因为spring是用gradle构建的,所以需要确保本机有gradle。我的环境是JDK1.8、Gradle5.6.1第一步:从gith...
2020-01-04 18:04:11
726
原创 JAVA运行时数据区
引JAVA虚拟机在执行JAVA程序的时候,会把它所管理的内存区域划分成若干个不同的数据区域。每个区域都有各自的功能,也有各自的创建和销毁时间,有的区域可能随着虚拟机的进程的启动而存在,有的区域可能根据用户线程的启动和结束来创建及销毁。根据《Java虚拟机规范(JavaSE 7版)》的规定,Java虚拟机所管理的内存会被划分成以下几个运行时数据区域下面将详细讲述各个数据区的作用程...
2020-01-03 21:35:36
113
原创 SpringMVC
简介 Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框架,如Struts1(现在一般不用),Stru...
2020-01-03 21:34:52
134
原创 volatile关键字
volatile简介Java中可以使用Synchronized关键字来实现同步,但是在并发量高的时候,对资源的激烈竞争会使Synchronized升级为重量级锁(JDK1.5引进的升级机制),严重影响性能。而volatile是Java提供的,最轻量级的同步控制方式。通过JMM,我们可以知道在多个线程操作同一共享数据时,会先把主内存中的共享数据拷贝到自己的工作内存中,执行引擎会基于工作内存中...
2019-04-15 20:09:43
124
原创 Java锁分类
公平锁/非公平锁 可重入锁 独享锁/共享锁 互斥锁/读写锁 乐观锁/悲观锁 分段锁 偏向锁/轻量级锁/重量级锁 自旋锁公平锁/非公平锁公平锁是指多个线程按照申请锁的顺序获取锁,或者等待时间最长的线程最先获取锁 非公平锁是指多个线程不是按照申请锁的顺序获取锁,有可能后申请的线程反而先获取到锁,因此,有可能造成优先级反转或者饥饿现象对于ReentrantLock来说,其默认是非...
2019-04-15 18:46:55
129
原创 Java原子类
在高并发情况下,同步问题是一个不可轻视的问题,有时我们可以使用volatile关键字或者synchronized来实现同步,但是这两种方式都有各自的缺点,volatile关键字只保证了线程之间的可见性,却无法保证操作的原子性,而synchronized由于其是重量级锁,带来的效率问题也很让人头疼。引入:首先我们看一个特别简单的代码:public class Case { p...
2019-04-15 17:26:25
224
原创 CAS(比较与交换,Compare and swap)算法
CAS算法思想:三个参数,一个当前内存的值V、旧的预期值A、即将更新的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做,并返回false。CAS是项乐观锁技术,当多个线程尝试使用CAS同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。简单C实现:int c...
2019-04-15 00:15:29
2087
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人