自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 [java源码解析]CopyOnWriteArrayList

本篇文章来源于慕课网收费专栏,本文纯为自己保留,删减大量部分, CopyOnWriteArrayList简介 在 ArrayList 的类注释上,JDK 就提醒了我们,如果要把 ArrayList 作为共享变量的话,是线程不安全的,推荐我们自己加锁或者使用 Collections.synchro...

2020-03-09 10:32:30 22 0

原创 [java数据结构分析]HashSet , TreeSet分析

HashSet 简介: 底层实现基于 HashMap,所以迭代时不能保证按照插入顺序,或者其它顺序进行迭代; add、remove、contanins、size 等方法的耗时性能,是不会随着数据量的增加而增加的, 这个主要跟 HashMap 底层的数组数据结构有关,不管数据量多大,不考虑 has...

2020-03-08 20:33:51 29 0

原创 [面试题]List源码问题

1.1 说说你自己对 ArrayList 的理解? 很多面试官喜欢这样子开头,考察面试同学对 ArrayList 有没有总结经验,介于 ArrayList 内容 很多,建议先回答总体架构,再从某个细节出发作为突破口,比如这样: ArrayList 底层数据结构是个数组,其 API 都做了一层对数组...

2020-03-08 16:11:16 75 0

原创 [java虚拟机]5.垃圾回收算法,垃圾回收器

引用博文:https://blog.csdn.net/yrwan95/article/details/82829186 垃圾回收算法 1.标记-清除算法 用法: 1.标记可回收的垃圾 2.清除需要被回收的垃圾 问题: 容易产生内存碎片,当内存碎片过多时,想要放入一个大的对象无法放入。 2.复制...

2020-03-08 00:13:05 41 0

原创 [设计模式分析]结构型模式之适配器模式

应用场景: 一提到适配器模式,肯定就会提到兼容性。没错,适配器模式就是为了解决兼容性问题而提出的。 分类: 主要分为三类:类适配器模式,接口适配器模式,对象适配器模式 工作原理: 类适配器: 核心就是这个类适配器:实现5v接口,继承220v接口 //适配接口 public interface ...

2020-02-22 23:13:05 12 0

原创 [设计模式分析]结构型模式之桥接模式

应用场景 桥接模式最典型的一个应用就是解决类爆炸的问题。 如下问题: 传统解决方案造成类爆炸: 桥接模式解决问题: 提到桥接模式就会反复的提到一句话:将抽象与实现分离开来! 简单点说:就是指在一个软件系统的抽象化和实现化之间使用关联关系(组合或者聚合关系)而不是继承关系,从而使两者可以相对独立...

2020-02-22 22:45:02 16 0

原创 [算法练习]leetcode01

求给定二叉树的最小深度。最小深度是指树的根结点到最近叶子结点的最短路径上结点的数量。 public class Solution { public int run(TreeNode root) { if(root==null) { r...

2020-02-22 14:58:15 74 0

原创 [设计模式分析]创建型模式之原型模式

应用场景 先看这样一个问题: 传统的方式: 缺点所在: 很明显,我们克隆一只羊都需要将另一只羊的属性每次都复制一遍,这样很麻烦。 解决方案 1.实现Cloneable 接口 ,二 就是重写clone方法。 public class Sheep implements Cloneable { p...

2020-02-20 17:37:15 22 0

原创 [设计模式分析]创建型模式之建造者模式

应用场景 我觉得建造者模式的应用场景拿来与工厂模式做比较是最好的,工厂模式侧重的是解决创建实例对象产生的冗余问题,侧重的是创建对象结果,而我们的建造者模式侧重的是创建过程,下面我们引出一个问题描述: 传统的解决方案: 一个抽象的房子类封装各种方法,构造CommonHouse继承实现构造Commo...

2020-02-20 17:09:04 24 0

原创 [操作系统]linux常用知识点

文件权限 首先文件的权限分为可读,可写,可执行。我们可以为自己,群组,其它用户分别设置不同的权限。 例: chmod 777 /etc/squid 运行命令后,squid文件夹(目录)的权限就被修改为777(可读可写可执行)。 第一个数代表自己权限,第二个数代表群组权限,第三个数则代表其它用户...

2020-02-20 14:21:20 33 0

转载 [数据库分析]redis入门

基础数据类型 String > set hello world OK > get hello "world" > del hello (integer) 1 > get hello (nil)

2020-02-20 11:34:02 15 0

原创 [设计模式分析]创建型模式之工厂模式

应用场景 在软件开发中,当我们会用到大量的创建某种对象时,就会使用工厂模式。 具体问题分析 我们现在提出一个需求,一个披萨店,分为希腊披萨和奶酪披萨,完成订购披萨的功能。 传统解决方案: 仅展示OrderPizza代码: 如上述代码就暴露了传统模式的缺陷,当有大量对象的时候,并且创建pizza...

2020-02-20 10:45:41 53 0

原创 [设计模式分析]创建型模式之单例模式

目的: 单例模式顾名思义其实就是利用某种方法保证某个类只有一个对象存在。 分类: 单例模式分为: 饿汉式(静态常量,静态代码块),懒汉式(线程不安全,线程安全同步方法,线程安全同步代码块),双重检查,静态内部类,枚举 饿汉式 为什么叫饿汉式?原因在使用之前提前就将对象实例化好了。正因如此,饿汉式就...

2020-02-19 00:21:32 19 0

原创 [框架分析系列]spring事务分析与手写

引述 1.spring事务是基于AOP的编程理念设计的,更细致点说就是spring的事务是基于AOP环绕和异常通知来实现的。 2.Spring的事务是分为编程式事务(手动式,自己begin,commit和rollback)和声明式(自动式扫包注解)的事务。而声明式的事务其实就是在底层对于编程式的事...

2020-02-17 13:32:41 60 0

原创 [java并发编程]02.线程同步

线程同步的目的: 为了解决多个线程同时存在时,存在着共享数据,当其中一个线程操作共享数据时,还未操作完成,另外的线程就参与进来,导致对共享数据的操作出现问题。 解决方式 要求一个线程操作共享数据时,只有当其完成操作完成共享数据,其它线程才有机会执行共享数据。 方式一:同步代码块 synchroni...

2020-02-12 13:32:43 49 0

原创 [java并发编程]01.多线程基础

线程的三种建立方式 方式一:继承于Thread类 class PrintNum extends Thread{ public void run(){ //子线程执行的代码 for(int i = 1;i <= 100;i++){ if(i % 2 == 0){ Sys...

2020-02-12 12:49:11 23 0

原创 [java虚拟机]04.栈与堆

java栈 java栈中存取什么? 什么叫做栈帧呢? 栈的具体结构和排列看下图: Java堆 首先我们应该知道相比较于java的栈区存放的对象引用,java堆中存放的就是实例化后的对象。 在Jdk1.7及以前java的堆按逻辑分为新生,养老和永久。 为什么说按逻辑分呢? 因为永久区实际...

2020-02-12 12:25:52 32 0

原创 [java虚拟机]03.pc计数器(寄存器)( PC register )+方法区

程序计数器的作用: PC寄存器( PC register ):每个线程启动的时候,都会创建一个PC(Program Counter,程序计数器)寄存器。PC寄存器里保存有当前正在执行的JVM指令的地址。 每一个线程都有它自己的PC寄存器,也是该线程启动时创建的。保存下一条将要执行的指令地址的寄存器...

2020-02-12 00:11:19 64 0

原创 [java虚拟机].02本地方法接口与本地方法栈

本地方法接口作用: 本地方法接口中声明的主要是规范,规范明确分开了 Java 代码与本机代码(C/C++)的执行,定义了一个清晰的 API 在这两者之间进行通信。通俗点说这里面声明的接口就是为了调用c++/c编写的代码而制定的规范。 本地方法栈的接口作用 本地方法栈的作用为了区别开java栈,将普...

2020-02-12 00:02:24 92 0

原创 [分享]Java并发编程与高并发解决方案视频教程 完整版

第1章 课程准备 第2章 并发基础 第3章 项目准备 第4章 线程安全性 第5章 安全发布对象 第6章 线程安全策略 第7章 J.U.C之AQS 第8章 J.U.C组件拓展 第9章 线程调度-线程池 第10章 多线程并发拓展 第11章 高并发之扩容思路 第12章 高并发之缓存思路 第13章 高并发...

2020-02-11 17:32:19 190 0

原创 [java基础]String中常用的方法以及Stringbuilder与StringBuffer

常用方法: public int length() public char charAt(int index):返回在指定index位置的字符。index从0开始 public boolean equals(Object anObject):比较两个字符串是否相等。相等返回true。否则...

2020-02-11 12:24:50 30 0

原创 [java基础]常见类之String内存分析

String的内存解析 1. /* * **String:代表不可变的字符序列。底层使用char[]存放。** * **String 是final的。** */ @Test public void test1(){ String str1 = "JavaEE&quo...

2020-02-11 11:48:15 22 0

原创 [错误]导入的项目出现java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener

导入的项目出现如下错误: 原因在下图中缺少Maven依赖: 解决办法: 解决后:

2020-02-10 20:23:53 82 0

原创 [错误]Invalid default value for 'login_time'

错误起因: 我创建了默认日期为0。 但是我们通过:show session variables like ‘%sql_mode%’; 从图中发现我们初始化的权限是NO_ZERO_DATE自然会出现错误。 解决方式: set sql_mode=“ONLY_FULL_GROUP_BY,STRICT...

2020-02-10 20:08:39 113 0

原创 [java虚拟机]01.类加载器

首先声明:我不会采用复杂的官方语言描述,尽量使用一些白话描述,图片的来源与描述大多数来源于我看过的视频和自己理解,如果有不详细或不正确之处请大家立刻指出我将立刻修改。 虚拟机概览: 类加载器(Class Loader) 1.问题:类加载器是什么? 解答:类加载器用于加载.class文件,将cla...

2020-02-09 12:47:10 46 0

原创 [资料分享]自己收集的到的网上视频分享给大家

自己精心整理了下分类有需要的大家可以自己寻找,几乎都是关于java的资料视频 加群(无收费):856481051

2020-02-09 11:16:22 43 0

原创 编程之路-开始

记录自己第一次写博客,写博客的目的就是为了记录和分享自己的学习路线,同时还能和大家交流。虽然以前大学的三年期间一直在学习编程知识,但是由于考研的原因不得不放弃了半年,半年过后我立马兴奋的开始回来继续开始我的学习之路,由于长时间没有复习所以我要开始从基础开始复习巩固,希望大家一起和我分享交流,一起在...

2019-12-25 16:11:09 45 0

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