- 博客(23)
- 资源 (9)
- 收藏
- 关注
原创 AQS底层原理实现
AQS底层原理 概念 AQS是一个同步队列,全名为AbstractQueuedSynchronizer,它是一个同步工具,是Lock用来实现线程同步的核心组件。 AQS的功能分为两种:独占和共享 独占锁:每次只能有一个线程获取锁,比如ReentrantLock是以独占的方式实现互斥 共享锁:允许多个线程同时获取锁,并发的访问共享资源,比如ReentrantReadWriteLock 内部实现 AQS队列内部维护的是一个FIFO的双向链表。每个Node由线程封装,当线程争抢锁失败后会封装成Node加入 AQS
2020-10-16 23:56:29
1524
原创 Git reset三个参数图解
git reset –mixed(默认) 作用 同 git reset 会把staging重置到指定提交的状态,并把指针指向这个提交,本地工作目录空间不变 撤销add 作用图: –soft 作用: 只移动 HEAD 到指定的 commit,但保留原先暂存区和工作目录的内容,同时会将指定 commit 之后提交的内容设置到staging中 不会影响workspace和staging中的代码 撤销commit 作用图 –hard 作用 在重置HEAD和branch时,会把workspace和staging重
2021-05-06 16:33:59
416
原创 Git命令
Git命令 Git基本结构 Git基本命令 git add -p 分步add .:add所有文件 git checkout git checkout HEAD -- <filename>:将filename恢复到最近的一次提交的状态 git checkout HEAD~2-- <filename>:将filename恢复到倒数第二次提交的状态 git revert revert前 revert后 git revert <version> 作用 反做,去除掉版本ver
2021-05-06 13:29:48
264
原创 Linux基础
Linux基础 Linux安装 分区 分区名 作用 分区大小 boot 引导分区 1G swap 交换分区,充当临时内存 与运行内存大小一致 root 根目录 其余全部 boot:引导分区 1G swap:交换分区 运行内存打下 root:其余全部 Linux基础知识 目录结构 Linux中,一切皆文件 目录 作用 1 /bin 常用 (/usr/bin /usr/local/bin) 存放最经常使用的命令 2 /sbin (/usr/bin
2021-04-22 11:08:56
202
原创 设计模式(一)——单例模式
单例模式 概念 所谓类的单例设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类 只能存在一个对象实例,并且 该类只提供一个取得其对象实例的方法(静态方法)。 饿汉式(静态常量) 步骤如下: 构造器私有化 (防止 new ) 类的内部创建对象 向外暴露一个静态的公共方法。getInstance 代码实现 //饿汉式(静态变量) class Singleton { //1. 构造器私有化, 外部能new private Singleton() { } //2.本
2021-01-25 21:36:48
162
原创 还看不懂UML类图的,那就看看这一篇,简单易懂
UML类图 依赖 只要是在类中用到了对方,那么他们之间就存在依赖关系。如果没有对方,连编绎都通过不了 符号:虚线普通箭头 public class PersonServiceBean { private PersonDao personDao;//类 public void save(Person person){} public IDCard getIDCard(Integer personid){} public void modify(){ D
2021-01-24 20:48:53
163
原创 IDEA中新建的MAVEN项目,yml文件不显示绿叶子,MVANE项目管理显示灰色
有时候新建的Maven项目会出现这样的问题 很多小伙伴不知道怎么去解决,其实是因为Maven忽略了这个工程。 解决方法如下: 如果目录还是没有好的话,可以手动一下 至此,问题解决完成
2020-12-23 09:12:20
1132
原创 Java泛型应用
泛型 为什么要有泛型 就像是垃圾回收一样,如果只有一个垃圾桶,那么还要去分什么是可回收,什么是不可回收的。但是如果给垃圾桶 贴上标签,让它只能放可回收的或不可回收的,那么处理的时候就可以直接处理。 好处: 它解决了元素存储的安全问题。 解决获取元素时,需要类型强制转换的问题。 泛型的概念 所谓泛型(JDK1.5之后),就是允许在定义类、接口时通过一个标识表示类中某个属性的类 型或者是某个方法返 回值及参数类型。这个类型参数将在使用时(例如, 继承或实现这个接口,用这个类型声明变量、创建对象时) 确定(
2020-12-22 15:58:54
225
原创 Java的时间处理(jdk8之前以及之后)
Java8之前 Date 初始化 方式一:使用当前时间 //构造器一:创建当前时间的对象 Date date1 = new Date(); //显示当前的年月日,时分秒 System.out.println(date1.toString()); //Mon Dec 21 15:52:03 CST 2020 //返回时间戳,1970年1月1日到现在的毫秒数 System.out.println(date1.getTime()); //1608537123085 方式二:指定时间 //构造器二:指定
2020-12-21 21:48:54
676
原创 Java10&Java11新特性——代码示例
Java10 2018年3月发布,Java9和Java10都不是长期支持的版本。JAVA11是长期支持的版本。 JDK10一共定义了109个新特性,其中包含12个JEP(对于程序员来讲,真 正的新特性其实就一个),还有一些新 API和JVM规范以及JAVA语言规范上 的改动。 JEP是指(JDK Enhancement Proposal特性加强提议) 局部变量类型推断 产生背景 开发者经常抱怨Java中引用代码的难度,局部变量的显示类型声明,常常被认为是不必须的。 好处 减少了啰嗦和形式的代码,避免了信息
2020-12-19 20:18:28
513
1
原创 Jdk9的新特性——代码示例
Java9 新特性 红色:重要改变 绿色:语法改变 黄色:API改变 模块化系统 jShell命令 多版本兼容jar包 接口的私有方法 钻石操作符的使用升级 语法改进:try语句 String存储结构变更 便利的集合特性:of() 增强的StreamAPI 全新的HTTP客户端API Deprecated的相关API javadoc的HTML5支持 javaScript引擎升级:Nashorm java的动态编译器 目录结构改变 java9之前
2020-12-18 16:52:09
374
2
原创 Java1.8新特性——代码示例
Java新特性 Java8 新特性简介 速度更快 代码更少 强大的Stream API 便于并行 最大化减少空指针异常 Nashorn引擎, Lambda表达式 Lambda本质:作为函数式接口的实例 使用箭头函数 public void test1(){ Runnable r1 = new Runnable() { @Override public void run() { System.out.println("dddd");
2020-12-17 21:20:08
338
原创 Java网络编程
网络编程 网络编程概述 一:网络编程中有两个主要的问题, 1.如何准确的定位网络上一台或多台主机,定位主机上特定的应用 2.找到主机后如何进行高效的数据传输 二:网路编程中的两个要素 对应问题一:IP和端口号 对应问题二:提供网络通信协议,TCP/IP参考模型 三:通信要素——IP和端口号 1:Java中,使用InetAddress类代表IP IP与端口 IP 使用InetAddress类代表IP public static void main(String[] args) throws Unk
2020-12-17 21:11:21
1230
3
原创 IO流代码演练(非纯概念)
IO流 File类概述 绝对路径:文件真正存在的路径,例如D:/wamp/www/img/icon.jp 相对路径:自己相对与目标的位置,例如…/icov.jpg, ./表示当前目录,…/表示上一级目录,/表示当前根目录 File类只设置文件或目录的创建,删除,修改时间,文件大小,重命名等方法,不涉及写入或读取文件内容的操作,如需读取文件内容或者写入,则必须通过IO流去实现 //相关获取方法 File file = new File("ceshi.txt"); File file2 = new File("
2020-12-16 16:36:43
185
原创 Java后端面试知识点思维导图
不是很多,之后会继续更新的,把我能想到的先写上了,还是有些作用的 百度云资源(尚硅谷的资源): 链接:https://pan.baidu.com/s/1hWI8XJjt7yXuEk0YVOG_qw 提取码:fhps 复制这段内容后打开百度网盘手机App,操作更方便哦–来自百度网盘超级会员V4的分享 B站资源: 1:狂神说 2:尚硅谷 面试资源: https://blog.csdn.net/ThinkWon/article/details/104778621(这个包括了很多很多,把里面的知识点都弄会,面试就成
2020-10-19 23:24:32
1159
原创 ArrayList底层实现
ArrayList底层原理 概述 ArrayList是基于数组实现的,是一个动态数组,其容量能自动增加。 ArrayList不是线程安全的,只能用在单线程环境下,多线程环境下可以考虑用Collections.synchronizedList(List L)函数返回一个线程安全的ArrayList类,也可以使用concurrent并发包下的CopyOnWriteArrayList类 ArrayList实现了Serializable接口,因此它支持序列化,能够通过序列化传输,实现了RandomAcc
2020-10-17 22:44:15
810
原创 JVM(一):还不懂JVM的内存结构?那就看看这一篇
JVM(一):内存区域与内存溢出异常 最近买了《深入理解Java虚拟机这本书》,将自己的学习记录一下 概述 jvm的优点 1:虚拟机自动内存管理机制,不需要为每一个new去写配对的delete/free代码(也就是说不容易出现内存溢出的情况) 2:程序员将内存管理的权利交给了java虚拟机,方便开发 JVM运行时的数据区域 私有(线程独享):程序计数器、java虚拟机栈、本地方法栈 公有:方法区、堆 程序计数器 作用:程序计数器是一块很小的内存空间,可以看作是当前线程所执行的字节码的行号指示器 简单来说,
2020-09-06 00:06:26
250
原创 jdk1.8中文文档免费提取
谷歌版本的jdk 链接:https://pan.baidu.com/s/1q3Oen5P3s-8JfCuAJcaGXQ 提取码:qufb
2020-07-22 22:50:25
287
原创 IDEA中明明从指定maven仓库中引入了jar包,但运行时却到C盘去找了
昨天重新买了个电脑,重新装好IDEA,导入之前的配置,重新设置好maven 后,满心欢喜的开始写代码,然而,当我使用Junti4测试时,界面是这样的。 仿佛一切都没有问题,没有报错,在External Libraries中也有需要的两个依赖,但是跑一把,提示junit包找不到??? 第一反应是maven配置出问题了,赶紧去maven配置看一下 发现红框之内的忘记修改了,是之前旧电脑中maven所在的位置,自信的改 好,再跑一把,?????????又错了 于是又跑回去再检查一遍,没有问题,再去maven的
2020-06-17 08:41:05
2317
1
原创 java设计模式——设计原则
设计原则 单一职责原则 概述 对类来说的,即一个类应该只负责一项职责。如类A负责两个不同职责:职责1,职责2。 当职责1需求变更而改变 A时,可能造成职责2执行错误,所以需要将类A的粒度分解为 A1,A2 单一职责原则注意事项和细节 降低类的复杂度,一个类只负责一项职责。 提高类的可读性,可维护性 降低变更引起的风险 通常情况下,我们应当遵守单一职责原则,只有逻辑足够简单,才可以在代码级违反单一职责原则;只有类中方法数量足够少,可以在方法级别保持单一职责原则 接口隔离原则 概述 客户端不
2020-06-03 09:40:47
208
原创 Java枚举类与注解
枚举类与注解 枚举类 类的对象是有限个的,确定的可使用枚举 例如星期、性别、季节、支付方式等 当需要定义一组常量时,强烈建议使用枚举类 阿里云代码规范中不允许出现魔法值哦,如下 //魔法值 if("男".equal(sex)){ //此时这里的男为魔法值,因为未进行定义 return "这是个男生" } 解决方法 //解决方法 final String MAN = "男" if(MAN.equal(sex)){ //但是如果有很多个常量 return "这是个男生" } 但是这样的确符
2020-05-28 18:23:46
546
原创 你还不会使用反射吗?——Java反射机制
Java反射机制 点击下载文档资料 概述 Reflection(反射)是被视为动态语言的关键,反射机制允许程序在执行期间借助于Reflection API取得任何类的内部消息,并能直接操作任意对象的内部属性及方法 加载完类后,在堆内存的方法区会产生一个Class对象(一个类只有一个),这个对象包含了类的完整结构信息 正常方式:引入需要的’包类’名称 ->通过new实例化 -> 取得实例化对象 反射方式:实例化对象 -> getClass()方法 -> 得到完整的’包类’名称 Ja
2020-05-27 01:53:29
291
原创 Vue笔记组件、路由、Vuex(一)
第一次上传自己的笔记,记得不是很全,希望各位见谅,后续会继续完善 Vue基础语法 基础指令 v-html 将html内容嵌入到当前标签里 <!-- 显示数据 --> <div id="app" v-html="url"> </div> <script> var app = new Vue({ el: "#app", data: { message: '<a href="
2020-05-19 19:07:03
457
Spinrg+SpirngMvc+Mybatis+Maven整合项目,打开即用
2020-04-06
Spring+SpringMvc+Mybatis的整合
2020-04-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅