自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 git 误删的本地分支恢复方法

git log -g 找回之前提交的commit,并记下commit_idgit branch newbranch commit_id切换到newbranch分支,检查文件是否存在。

2019-07-15 14:54:28 877

转载 Sub-process /usr/bin/dpkg returned an error code (1)的解决方法

版权声明:本...

2019-07-03 19:15:29 2385

原创 java设计模式之工厂模式

1.简单工厂模式(静态工厂模式)首先建立一个car接口,以及两个具体的实现类:public interface Car { void run();}public class Audi implements Car{ public void run() { System.out.println("audi"); }}public class byd implements ...

2019-06-29 15:41:21 195

转载 eclipse类图插件ModelGoon 的安装教程

之前尝试用Eclipse UML小工具AmaterasUML,但是安装成功后,将eclipse中的java文件拖拽到AmaterasUML空白处却无法自动生成类图,显示的还是原来java的代码。之后尝试多次无果,遂放弃。改用eclipse的另外一个插件ModelGoon。下面是ModelGoon 的安装教程。    今天,在修改毕设论文的时候需要画类图,系统已经开发完成,如果...

2019-06-28 17:18:56 2601 3

转载 Elasticsearch-如何合理分配索引分片

大多数ElasticSearch用户在创建索引时通用会问的一个重要问题是:我需要创建多少个分片?在本文中, 我将介绍在分片分配时的一些权衡以及不同设置带来的性能影响. 如果想搞清晰你的分片策略以及如何优化,请继续往下阅读.为什么要考虑分片数分片分配是...

2019-06-25 09:51:11 290

原创 java设计模式之单例模式

文章目录1. 何为单例模式?单例模式和静态类单例模式与静态类的区别:什么时候应该用静态类,什么时候应该用单例模式呢?2. 单例模式的实现2.1 饿汉模式2.2 懒汉式2.2.1第一种方式,在单线程下没问题,在多线程下就出现问题了。2.2.2 第二种方法,使用synchronized关键字对getInstance方法进行同步2.2.3不对方法加锁,而是将里面的代码加锁,也可以实现线程安全。2.2.4...

2019-06-24 12:15:35 79

原创 volatile关键字的功能和底层实现原理

文章目录功能1:变量内存间的可见性1. 概述2. 底层原理功能2: 禁止指令重排序1.概念2. 指令重排序可能会带来的问题3. 禁止指令重排的原理事例待续。。。功能1:变量内存间的可见性1. 概述如果一个变量被volatile关键字修饰,那么所有线程都是可见的。所谓可见就是,当一条线程修改了这个变量值,新值对于其他线程来时是立即可见的; 而普通变量不能做到这一点。对于普通的变量: 普通变...

2019-06-20 10:38:35 4392 2

原创 多线程下的单例设计模式

方法一:public class Singleton1 { /* */ private static Singleton1 singleton = new Singleton1();//直接初始化一个实例对象 private Singleton1() {//私有构造函数,保证其他对象不能够直接new出该对象的一个实例 } public static Singleton...

2019-06-09 10:18:31 128

原创 java并发编程总结三ThreadLocal(待补充)

ThreadLocal一般称为线程本地变量,它是一种特殊的线程绑定机制,将变量与线程绑定在一起,为每一个线程维护一个独立的变量副本。通过ThreadLocal可以将对象的可见范围限制在同一个线程内。举个栗子:一个线程中更改了名字,另外一个线程立即能够看到public class ThreadLocal1 { volatile static Person p = new Person();...

2019-06-09 10:12:31 99

原创 java并发编程面试题2.生产者消费者模式

面试题:生产者消费者模式写一个固定容量的同步容器,拥有put和get方法,以及getCount方法能够支持两个生产者线程以及十个消费者线程的阻塞调用方法一:使用wait和notify来调用public class MyContainer2<T> { final private LinkedList<T> lists = new LinkedList<...

2019-06-08 11:58:11 285

原创 java并发编程总结二ReentrantLock

1. 使用ReentrantLock来替代synchronized需要注意的是,使用reentrantLock必须手工释放锁使用synchronized锁如果出现异常的话,jvm会自动释放锁,但是lock必须手工释放,可以在finally代码块中释放public class ReentrantLock2 { Lock lock = new ReentrantLock(); voi...

2019-06-08 11:44:52 88

原创 java并发编程面试题1

实现一个容器,提供两个方法add和size写两个线程,线程1添加十个元素到容器中,线程2实现监控元素的个数,当个数达到五个时线程2 给出提示并结束方法一:volatile关键字public class MyContainer1 { volatile List list = new ArrayList(); public void add(Object o) { list.ad...

2019-06-05 22:16:55 151

原创 java并发编程总结一(待补充)

synchronized关键字对某个对象进行加锁自己新建一个对象作为锁住的对象public class T{ private int count = 10; private Object o =new Object(); public void m(){ synchronized(o){ count--; System.out.println(Thtread.cur...

2019-06-05 22:00:24 140

原创 Java虚拟机三、类加载机制1

一、类加载的过程概述类从被加载到虚拟机内存中开始,到卸载出内存为止,它的整个生命周期包括:**加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)和卸载(Unloading)**7个阶段。其中准备、验证、解析3个部分统称为连接(Linking)。加载、验证、准备、初始...

2019-06-04 10:38:09 87

转载 LeetCode刷题之道

本文作者:侯振宇,原文链接:https://www.cnblogs.com/sskyy/p/8268976.html这篇文章最早发在我团队的文档中。我的团队鼓励每个同学都在业余时间多做算法题,特别是新人。个人认为在编程能力的提升上比做 side project 更有用,对职业发展也是如此。当然出于兴趣做的 side project 另当别论。转到这里,希望对各位读者有用。如何有效地写算法题...

2019-06-04 10:23:39 128

转载 图解JVM

转载自:http://blog.csdn.net/luanlouis/注:一下内容均针对jdk1.7之前的版本,新版中中可能有一些变动  JVM运行时数据区(JVM Runtime Area)其实就是指JVM在运行期间,其对计算机内存空间的...

2019-05-27 11:07:03 188

原创 Java虚拟机二、垃圾回收与内存分配(4)内存分配和回收策略(待补充)

关于Java虚拟机的垃圾回收,前面分别提到1. 哪些需要回收?什么时候回收? 如何进行回收?2.四种不同的垃圾回收算法3. 七种应用于不同场景下的垃圾回收器本次着重关注于虚拟机的内存分配和回收策略1. 内存分配回收策略在 四种不同的垃圾回收算法 中,我们知道目前主流的商业虚拟机的垃圾回收器都采用分代收集算法,下图便是HotPot对于不同年代内存的划分:对象的内存分配大体上可以分为三...

2019-05-20 19:27:05 161

原创 Java虚拟机二、垃圾回收与内存分配(3)垃圾回收器(待补充)

1. 概述垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法、火车算法)的具体实现,本文主要介绍HotSpot虚拟机中的垃圾收集器。1.1 垃圾回收器的组合上图中各个垃圾回收器所处区域,则表明其是属于新生代收集器还是老年代收集器:新生代收集器:Serial、ParNew、Parallel Scavenge;老年代收集器:Serial Old、Parallel Ol...

2019-05-19 11:57:17 148

原创 Java虚拟机二、垃圾回收与内存分配(2)垃圾回收算法(待补充)

1. 标记清除算法1. 思路第一步、标记即:标记出所有要回收的对象如何标记参考:https://blog.csdn.net/weixin_42156928/article/details/90311595中的2.4第二步、清除即:两次标记后,将即将回收的对象统一回收2. 优缺点优点基于最基础的可达性分析算法,是最基础的收集算法;而后续的收集算法都是基于这种思路...

2019-05-19 09:58:46 121

原创 Java虚拟机二、垃圾回收与内存分配(1)概述

垃圾回收概述1.垃圾回收垃圾回收,或称垃圾收集(Garbage Collection,GC)是指自动管理回收不再被引用的内存数据。Lisp语言首次使用了动态内存分配和垃圾收集技术,可以实现垃圾回收的一个基本要求是语言是类型安全的,现在使用的包括Java、Perl、ML等。1.1了解垃圾回收的必要性?1、当需要排查各种内存溢出、内存泄漏问题时;2、当垃圾收集成为系统达到更高并发量的...

2019-05-19 09:16:51 135

原创 Java虚拟机一、内存区域划分

1.运行时数据区域Java虚拟机把管理的内存划分为若干个不同的数据区域。这些区域有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,而有的区域则依赖线程的启动和结束而创建和销毁。Java虚拟机包括下面几个运行时数据区域:五个数据区中程序计数器、虚拟机栈和本地方法栈是线程私有的1.程序计数器程序计数器是一块较小的区域,作用可以看做是当前线程所执行的字节码的行号指示...

2019-05-17 21:54:04 138

转载 MySQL、 Redis与MongoDB的理解

NoSQL 的全称是 Not Only SQL,也可以理解非关系型的数据库,是一种新型的革命式的数据库设计方式,不过它不是为了取代传统的关系型数据库而被设计的,它们分别代表了不同的数据库设计思路。MongoDB简介:它是一个内存数据库,数据都是放在内存里面的。对数据的操作大部分都在内存中,但 MongoDB 并不是单纯的内存数据库。MongoDB 是由 C++ 语言编写的,是一个基于分布式...

2019-05-17 17:17:34 163

转载 MongoDB常用命令

MongoDB入门教程(1) ...

2019-05-17 16:57:50 481

转载 Java反射

本文转载自:张拭心的博客 shixinzhang 的:深入理解 Java 反射:Class (反射的入口)深入理解 Java 反射系列:深入理解 Java 反射:Class (反射的入口) 深入理解 Java 反射:Field (成员变量)深入理解 Java 反射:Method (成员方法)读完本文你将了解到:什么是 Reflection 反射为什么要用它Java...

2019-05-14 11:57:58 137

原创 计算机网络一、物理层

物理层的主要功能1. 物理层必须要清楚的要点物理层考虑的是怎样才能在连接计算机的传输媒体上透明传输比特流,而不是指具体的传输媒体。几个术语数据(data)——运送消息的实体。信号(signal)——数据的电气表现。“模拟的”(analogous)——代表消息的参数的取值是连续的。“数字的”(digital)——代表消息的参数的取值是离散的。码元(code)——在使用时间域(或简称...

2019-05-13 18:18:26 247

转载 操作系统面试(待补充)

1、什么是进程(Process)和线程(Thread)?有何区别?  进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他...

2019-05-12 16:29:45 150

转载 数据库的设计步骤(好文)

数据库设计的基本步骤按照规范设计的方法,考虑数据库及其应用系统开发全过程,将数据库设计分为以下6个阶段1.需求分析2.概念结构设计3.逻辑结构设计4.物理结构设计5.数据库实施6.数据库的运行和维护 数据库设计通常分为6个阶段1(需求分析:分析用户的需求,包括数据、功...

2019-05-08 22:48:36 2295

原创 5.操作系统的死锁(待补充)

死锁的原理:一组进程中每个进程都无限等待被该组进程中另一进程所占有的资源,而处于的一种僵持局面,若无外力作用,它们都无法向前推进, 这种现象称为进程死锁(Deadlock),这组进程就称为死锁进程。死锁产生的原因1.竞争资源引起进程死锁可剥夺和非可剥夺资源 (抢占)①可剥夺资源:进程在获得这个资源后可以在被其它进程或系统剥夺②非可剥夺资源:资源被系统分配给某个进程后就不能强行收回...

2019-05-08 22:41:06 165

原创 4.操作系统中的文件系统

一、文件系统概述1.文件计算机对系统中软件资源:无论是程序或数据、系统软件或应用软件都以文件方式来管理。文件是存贮在某种介质上的(如磁盘、磁带等)并具有文件名的一组有序信息的集合。文件名是由字符和数字组成的,例如MS-DOS中文件名由三部分组成,格式如下:[<盘符>] <文件名> [.扩展名]。格式 [ ] 中是可以省略,盘符为存放文件的磁盘驱动器号,如用A:和C...

2019-05-07 19:21:09 1733

原创 3.操作系统中的存储管理

内存的层次结构?(寄存器::L1高速缓存::L2高速缓存)::L3高速缓存::内存::磁盘地址空间?物理地址空间:直接和硬件相对应,即硬件所能支持的地址空间,譬如内存条所支持的内存大小逻辑地址空间:一个运行程序所拥有的地址范围,在程序看来,地址空间就是一个一维的线性地址空间物理地址的生成?在CPU中有一个叫MMU(Memory Management Unit)内存管理单元的区域,用于将...

2019-05-06 08:58:53 816

转载 用于软件架构的 C4 模型

第 1 层:系统上下文第 2 层:容器第 3 层:组件第 4 层:代码 关键要点由于向敏捷转型,软件架构图的使用规模已经大幅缩减。即使有在使用软件架构图,它们往往也混淆不清。C4 模型由一系列分层的软件架构图组成,这些架构图用于描述上下文、容器、组件和代码。C4 图的层次结构提供了不同...

2019-05-05 20:02:16 3899

原创 软件架构的概述(待补充)

1.软件架构的基本介绍架构架构师:与建筑师设定建筑项目的设计原则和目标,作为绘图员画图的基础一样,一个架构师陈述软件构架以作为满足不同客户需求的实际系统设计方案的基础。从和目的、主题、材料和结构的联系上来说,软件架构可以和建筑物的架构相比拟。一个软件架构师需要有广泛的软件理论知识和相应的经验来实施和管理软件产品的高级设计。软件架构师定义和设计软件的模块化,模块之间的交互,用户界面风格,对外接口方...

2019-05-05 19:40:40 251

原创 2.进程相关

进程的概念:对正在运行的程序的一个抽象,一个进程是在并发过程中程序的执行过程。多道程序设计:CPU在程序之间来回的切换。哪些事件会导致进程的创建:系统初始化执行了正在运行的进程所调用的进程创建了系统的调用用户请求了一个新的进程一个批处理作业的初始化哪些条件会导致进程的终止:正常退出出错退出严重退出被其他的进程杀死进程的状态:运行态(该时刻系统占用CP...

2019-05-05 14:03:08 347

原创 1.操作系统概述(待补充)

操作系统:控制和管理整个计算机系统的硬件和软件资源特征:并发:共享:共享的是地址空间异步:?虚拟:虚拟的地址空间资源的管理者:设备管理文件管理存储管理分类:单批道处理系统多批道处理系统分时系统实时系统网络分布式、多机系统...

2019-05-03 21:36:53 90

原创 119. Pascal's Triangle II

java版class Solution { public List<Integer> getRow(int N) { List<Integer> temp_l = new ArrayList<Integer>(); for(int i=0; i<=N; i++){ temp_l.add(0,...

2019-04-30 11:08:08 66

原创 118. Pascal's Triangle.

python版:class Solution: def generate(self, N): if N == 0: return [] if N == 1: return [[1]] elif N == 2: return [[1], [1, 1]] e...

2019-04-30 10:49:03 123

原创 leetcode88. Merge Sorted Array

java版:class Solution { public void merge(int[] nums1, int m, int[] nums2, int n) { int p = m-1; int q = n-1; int k = m+n-1; while(p>=0 && q>...

2019-04-29 15:50:12 71

原创 主元素问题python和Java解法

Python版:class Solution: def majorityElement(self, nums: List[int]) -> int: temp = -1 c = 0 for l in nums: if temp == -1: temp = l ...

2019-04-29 15:48:19 382

转载 计算机网络思维导图谢希仁第七版

2019-04-27 11:52:26 1731 1

转载 操作系统思维导图2

2019-04-24 20:46:08 646

空空如也

空空如也

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

TA关注的人

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