- 博客(46)
- 资源 (3)
- 收藏
- 关注

原创 【基于官方理解】Spring CLoud Netflix实战
SpringCloud学习笔记背景Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式 会话,群集状态)。 分布式系统的协调导致了样板式样,并且使用Spring Cloud开发人员可以快速站起来实现这些样板的服务和应用程序。 它们可以在任何分布式环境中很好地工作,包括开发人员自己的笔记本电脑,裸机数据中心以及Cloud Foundry等托管平台。特征Spring
2020-11-01 18:40:39
481

原创 Docker相关概念与实战指导
# Docker学习笔记## Docker是什么Docker是一个用于开发,发布和运行应用程序的开放平台。 Docker使您能够将应用程序与基础架构分开,从而可以快速交付软件。 借助Docker,您可以以与管理应用程序相同的方式来管理基础架构。 通过利用Docker的方法来快速交付,测试和部署代码,您可以大大减少编写代码和在生产环境中运行代码之间的延迟。Docker提供了在松散隔离的环境(称为容器)中打包和运行应用程序的功能。其隔离和安全性使开发者可以在给定主机上同时运行多个容器。因为它们不需要
2020-11-01 18:28:01
283
原创 java多线程-生产者消费者模式
目录1. 背景概述1.1. 概念介绍1.2. 应用场景1.3. 实现方式3. 代码实现A. 基于LIST的wait()、notifyAll()的实现B. 基于Lock的await() / signal()方法的实现C. 基于BlockingQueue阻塞队列方法的实现D.基于semphore信号量方法的实现1. 背景概述本人写这篇文章主要是为了不让自己...
2019-10-27 21:40:37
304
原创 java多线程编程书籍-线程、多线程、Java平台实现
1.章节结构图2. 详细描述进程是程序的运行实例,一个进程可包含多个线程,他们都共享所在进程的资源; 应用程序负责创建线程与启动线程,线程调度器负责线程的调度与执行; 线程是多线程编程的基本单位。多线程编程一方面有助于提高系统吞吐量、提高系统的响应性、充分利用多核处理器、最小化对系统资源的使用和简化程序的结构;另一方面面临线程安全、线程活性、上下文切换和可靠性等问题...
2019-10-13 20:23:06
3394
原创 如何对远程jar包进行Debug?
在现实开发过程中,现场环境永远比开发环境复杂,如果开发环境无法还原现场问题,就需要开发人员远程调试现场问题,接下来,本人基于网上讲解以及自己的理解完成远程调试Jar包,本文主要方便自己后续可以阅读。1. 环境介绍开发工具 intellij idea 语言 Java 项目管理工具 maven 2. 程序准备本人准备了一个HelloWord程序,里面...
2019-09-01 11:19:49
7613
原创 从零开始学架构——架构设计原则以及设计流程
本文章的内容是根据书籍《从零开始学架构》整理的资料,供作者以及读者查阅。1. 架构设计原则1.1. 合适原则合适的架构优先于业界领先的架构。真正优秀的架构是在企业当前人力、条件、业务等各种约束条件下设计出来的,能够合理将资源整合在一起并发挥出最大功效,并且能够快速落地。1.2. 简单原则简单的架构优先于复杂的架构1.3. 演化原则架构需要随着业务的发展不断演化...
2019-05-21 17:23:46
710
原创 从零开始学架构——架构基础
本文章的内容是根据书籍《从零开始学架构》整理的资料,供作者以及读者查阅。1. 架构的定义软件架构指软件系统的顶层架构。详细阐述如下:a. “系统由一群关联个体组成”,个体分别是:系统、子系统、模块、组件等。架构需要明确系统包含哪些“个体”。b. 系统中的个体需要“按照某种规则”运作,架构需要明确个体运作和协作的规则。2. 架构设计的目的2.1. 软件架构的历史背景(...
2019-05-19 20:37:41
6373
1
原创 大话代码架构——书籍感想
Architecture is like teenage sex,everybody talks about it,nobody really knows what is it。1. 架构是什么每个项目都会使用多台服务器(Web服务器、数据库服务器、文件服务器......),如何针对对不同服务器选型,如何管理这些服务器,如何让这些服务器平稳运行,开发过程中使用的语言选型,数据库的选择,...
2019-05-17 17:56:15
900
转载 java安全控制-简单概念的介绍与实现
Java作为互联网兴起时代的语言,从一开始Java就带有安全性的考虑:如何保证通过互联网下载到本地的Java程序是安全的,如何对Java程序访问本地资源权限进行有效授权,这些安全角度的考虑一开始就影响到Java语言的设计与实现。1. Java安全模型在java中执行程序分为本地和远程,本地代码默认视为信任,而远程代码被看作不可信的。对于本地代码,可以访问一切的本地资源,而在早期的Jav...
2019-01-03 19:34:03
452
原创 linux命令-文件解压缩
这么多年来,数据压缩对我们来说是非常有用的。无论是在邮件中发送的图片用的zip文件还是在服务器压缩数据文件,我们都可以让下载更容易或者有效 的节约磁盘空间。某些压缩格式有时允许我们以60%的比率(甚至更高)压缩文件。下面我将会给大家演示如何用这些命令在Linux下面去压缩文件或者目录。本文主要记录命令:gzip、tar、zip、bzip2、unzip命令以及相关的代码演示。1. 名次划分...
2018-12-18 20:48:27
331
原创 linux命令-用户管理
在使用Linux系统的时候,要坚持最小权限原则.最小权限原则(least priviledge)是指Linux通常希望用户或者进程只拥有足够完成其工作的权限,而系统不赋予其更多的特权。最高权限的用户通常是root用户,root用户想做什么都可以(代表着最大权限)。如果都使用每个进程都用root权限,这对于系统来说是一个巨大的安全漏洞,因此不能使用root用户部署服务,降低部署进程的权限。使用一...
2018-12-09 20:09:59
1016
原创 linux学习笔记-权限命令
本文主要描述了权限的基础知识与基本的命令,并且用代码进行演示,方便读者自己查阅。主要介绍chmod、shown、chgrp、umask等命令1. 权限权限是操作系统用来限制资源访问的机制,权限一般分为读、写、执行。系统中每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定的文件进行什么样的操作。每个进程都是以某个用户的身份运行,所以进程的权限与该用...
2018-12-07 20:57:20
326
原创 代理设计模式讲解
本文主要先讲解代理模式的概念,对代理设计模式 、动态代理设计模式描述与代码演示。目录1. 什么是代理设计模式2. 为什么会用代理设计模式3. 适用场景4. 代理设计模式5. 动态代理设计模式1. 什么是代理设计模式代理模式是Java常见的设计模式之一。所谓代理模式是指客户端并不直接调用实际的对象,而是通过调用代理,来间接的调用实际的对象。2. 为什么会用代理...
2018-11-29 19:59:05
330
原创 初涉反射机制
本文主要是针对初学者首先是对反射概念的描述,然后介绍反射中关键类Class相关介绍与代码演示,最后介绍反射的应用案例。 1. 反射机制概念如果在正常的情况下,如果要使用一个类,则需下列步骤:1)使用import导入类所在的包(类:java.lang.Class)2)通过“对象.方法()”调用类中方法3)产生对象可以使用“对象.属性”进行类中属性的调用4)通过关键...
2018-11-26 21:52:05
196
原创 JAVA AIO NIO BIO笔记
说道实现原理,还要从操作系统的IO模型上了解按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。如何区分呢?首先一个IO操作其实分成了两个步骤:发起IO请求和实际的IO操作,同步IO和异步IO的区别就在于第二个步骤是否阻塞,如果实际的IO读写阻塞请求进程,那么就是同步IO,因此阻塞...
2018-11-24 17:20:01
316
原创 数据库设计规范
以下规范是根据视频与自己的日常数据库设计整理出来的,如果说的不对,请见谅。数据库命名规范所有的数据库对象(表名)名称必须使用小写字母并用下划线分割。mysql数 据库识别大小写字母。所有数据库对象名称禁止使用mysql保留关键字。数据库对象的命名必须做到见名明义,最大不超过32字符。所有的临时表必须以tmp为前缀并以日期为后缀所有的备份库,备份表以bak为前缀...
2018-11-20 10:47:15
183
原创 java多线程风险-线程安全性
1. 什么是线程安全当多个线程访问某个类时,不管运行时环境采用何种调度方式或者这些线程将如何交替执行,并且在主调代码中不需要任何额外的同步或协同,这个类都能表现出正确的行为,那么这个类就是线程安全的。2. 线程安全方面的体现1.原子性:提供互斥访问,同一时刻只能有一个线程对数据进行操作,(atomic,synchronized);2.可见性:一个线程对主内存的修改可以及时地...
2018-11-01 15:25:04
214
原创 HotSpot虚拟机对象探秘
本文章以常用的虚拟机HotSpot和常用的内存区域Java堆为例,深入探讨HotSpot虚拟机在Java堆中的对象创建、分配、内存布局、访问的全过程1.对象的创建 一个简单的创建对象语句Clazz instance = new Clazz();包含的主要过程包括了类加载检查、对象分配内存、并发处理、内存空间初始化、对象设置、执行ini方法等。 ...
2018-10-17 14:55:12
238
原创 Java内存区域与内存溢出异常
Java与C++之间有一堵由内存动态分配和垃圾手机技术所围成的“高墙”。根据java虚拟机规范的规定,Java虚拟机将管理的内存分为以下几部分。运行时数据区域程序计数器:是一块较小的内存空间,可以被看作是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里,字节码解释器工作就是通过这个计数器的值来选取下一条需要执行的字节码指令,分支、循环、跳转与异常处理等功能都需要依赖这个计数器完...
2018-10-17 09:25:19
205
原创 实现线程的方式
1. 继承Thread类Thread类在包java.lang中,从这个类中实例化的对象代表线程,启动一个新线程需要建立Thread实例,Thread类中常用的两个构造方法如下: (1)public Thread(String threadName) (2)public Thread() 其中第一个构造方法是创建一个名称为threadName的线程对象创建一个新的线程...
2018-10-16 15:53:10
178
原创 内存分配与回收策略
对象优先在Eden分配 大对象优先进入老年代 大对象:指需要大量连续内存空间的java对象,最典型的大对象是那种很长的字符串以及数组。package com.Studay.GC;public class MinorGC { public static final int _1MB = 1024*1024; /** * VM 参数: -verbose:gc -Xm...
2018-10-11 18:42:47
152
原创 MinorGC 与 Full GC 区别
新生代GC(Minor GC):是指在新生代的垃圾收集动作,因为java对象大多都具备朝生夕死的特性,所以Minor GC 非常频繁,一般回收速度也比较快。代码实例:package com.Studay.GC;public class MinorGC { public static final int _1MB = 1024*1024; /** * VM 参数: -...
2018-10-11 15:15:34
243
原创 JVM-outOfMemoryError
本文章的主要目的为了对内存区域与内存异常的理解通过代码验证java虚拟机规范中描述的各个运行时区域存储的内容; 希望自己在工作中遇到实际的内存溢出异常时,能根据异常信息判断哪个区域的内存溢出; java堆溢出java堆用于存储对象实例,只要不断创建对象,并且保证GC Roots 到对象之间有可达路径来避免垃圾回收机制清除这些对象,当这些对象数量达到最大堆的容量限制后就会产生...
2018-10-11 09:20:55
156
原创 JAVA热部署原理
JAVA热部署原理1、热部署是什么?对于Java应用程序来说,热部署就是在运行时更新Java类文件。2、热部署有什么用?可以不重启应用的情况下,更新应用。举个例子,就像电脑可以在不重启的情况下,更换U盘。OSGI也正是因为它的模块化和热部署,才显得热门。3、热部署的原理是什么?想要知道热部署的原理,必须要了解java类的加载过程。一个java类文件到虚拟机里的对象,要经...
2018-10-07 20:14:47
4253
1
原创 NIO概述
NIO概述NIO是new I/O的简称,它表示新的一套Java I/O标准。具有以下特性:为所有的原始类型提供(BUFFER)缓存支持; 使用Java.nio.charset.Charset作为字符集编码解码解决方案; 增加通道(Channel)对象,作为新的原始I/O抽象; 支持锁和内存映射文件的文件访问接口; 提供基于Selector的异步网络I/O。与流式的I/O不同,...
2018-09-30 11:18:33
169
原创 mvc原理和mvc模式的优缺点
mvc原理和mvc模式的优缺点一、mvc原理 mvc是一种程序开发设计模式,它实现了显示模块与功能模块的分离。提高了程序的可维护性、可移植性、可扩展性与可重用性,降低了程序的开发难度。它主要分模型、视图、控制器三层。 1、模型(model)它是应用程序的主体部分,主要包括业务逻辑模块(web项目中的Action,dao类)和数据模块(pojo类)。模型 与数据格式无关,这样一个模型能为...
2018-09-20 21:20:20
5972
转载 JVM虚拟机详解(转载的)
【声明】 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/文章来源:http://www.cnblogs.com/smyhvae/p/4810168.html 【正文】声明:本文只是做一个总结,有关jvm的详细知识可以参考本人之前的系列文章,尤其是那篇:Java虚拟机详解04----GC算法和种类。那篇文章和本文...
2018-09-20 11:24:31
188
原创 Java类加载机制
一、Java类加载机制1.概述 Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析和初始化,最终形成可以...
2018-09-20 11:16:38
117
转载 从JVM看java多线程(转载)
最近在学习jvm,发现随着对虚拟机底层的了解,对java的多线程也有了全新的认识,原来一个小小的synchronized关键字里别有洞天。决定把自己关于java多线程的所学整理成一篇文章,从最基础的为什么使用多线程,一直深入讲解到jvm底层的锁实现。多线程的目的为什么要使用多线程?可以简单的分两个方面来说:在多个cpu核心下,多线程的好处是显而易见的,不然多个cpu核心只跑一个线程其他...
2018-09-17 17:42:13
254
原创 java的类与继承
1. 类的讲解在Java中,类文件是以.java为后缀的代码文件,在每个类文件中最多只允许出现一个public类,当有public类的时候,类文件的名称必须和public类的名称相同,若不存在public,则类文件的名称可以为任意的名称(当然以数字开头的名称是不允许的)。 在类内部,对于成员变量,如果在定义的时候没有进行显示的赋值初始化,则Java会保证类的每个成员变量都得到恰当的初...
2018-09-17 16:06:40
136
原创 数据结构(栈与队列) java实现
栈的相关定义package StackDef;import java.util.Arrays;import java.util.EmptyStackException;/** * 通过数组模拟栈 * @author tian * */public class ArrayStack { private Object[] elementData; private int...
2018-09-16 17:41:57
189
原创 数据结构-链表(java实现)
/** * 链表节点定义 * */ private class Node { private Object data; private Node next; public Node getNext() { return next; } public void setNext(Node next) { this.next = next; ...
2018-09-16 14:18:00
150
原创 TCP三次握手与四次挥手
TCP连接(三次握手)TCP服务器进程会首先创建传输控制块TCB,时刻准备接受客户进程的连接请求,此时服务器就进入了LISTEN(监听)状态; TCP客户进程也是先创建传输控制块TCB,然后向服务器发出连接请求报文,这是报文首部中的同部位SYN=1,同时选择一个初始序列号 seq=x ,此时,TCP客户端进程进入了 SY...
2018-09-15 09:28:38
130
原创 java 线程 Thread Runnable的区别
Java中实现多线程有两种方法:继承Thread类、实现Runnable接口,在程序开发中只要是多线程,肯定永远以实现Runnable接口为主,因为实现Runnable接口相比继承Thread类有如下优势:1、可以避免由于Java的单继承特性而带来的局限;2、增强程序的健壮性,代码能够被多个线程共享,代码与数据是独立的;3、适合多个相同程序代码的线程区处理同一资源的情况。...
2018-09-14 19:53:15
138
转载 HTTPS与HTTP的区别
超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。 为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安...
2018-09-14 19:11:15
163
原创 spring 的AOP相关思想,应用场景
什么是spring AopAOP(Aspect-OrientedProgramming,面向方面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但...
2018-09-14 18:53:16
479
转载 JVM内存模型(转载)
JVM内存模型: 从这张图中很直观的看到,程序计数器,虚拟机栈,native栈是线程私有的,堆是线程共有的,现在详细介绍JVM各个区块。 1. 堆(Heap) 是java虚拟机所管理的内存中最大的一块内存区域,也是被各个线程共享的内存区域,该内存区域存放了对象实例及数组(但不是所有的对象实例都在堆中)。其大小通过-Xms(最小值)和-X...
2018-09-14 18:48:15
125
原创 大华股份面试经历
1. 自我介绍2.面试内容 springCloud的Eureka相关的内容(自己挖的坑) spring 的AOP相关思想,应用场景 https与http的区别,希望你们可以看更多。 多线程相关知识(ThreadLock,实现方式(thread、runnable的区别)) jvm中的内存模型知识,简述内存模型 linux查询url命令、...
2018-09-14 17:10:59
4557
原创 剑指Offer相关练习
数组连续子数组和最大public static void getMaxSum(int[] a){ int curSum =0; int greateSum=0; for (int i = 0; i < a.length; i++) { if (curSum<=0) { curSum = a[i]; }else { curSum += a...
2018-09-14 08:50:48
131
架构探险-从零开始写Java Web 框架
2019-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人