- 博客(23)
- 资源 (20)
- 收藏
- 关注
原创 分布式架构演进过程
分布式架构演进过程1.基本概念1 :分布式2 :高可用3 :集群4 :负载均衡5 :正向代理和反向代理2.架构演进2.1 单机架构2.2 第一次演进 :Tomcat与数据库分开部署2.3 第二次演进 :引入本地缓存和分布式缓存2.4 第三次演进 :引入反向代理实现负载均衡2.5 第四次演进 :数据库读写分离2.6 第五次演进 :数据库按业务分库2.7 第六次演进 :把大表拆分为小表2.8 第七次演...
2019-05-30 15:08:40 427
原创 java基础第四篇之面向对象
7.封装与面向对象a.方法:public static void main(String[] args) {}一般定义标准:形参:一般把 不确定的量或者变化的量定义在形参位置//圆的的半径,长方形的长和宽,传递的数组也是不确定的返回值类型:将运算后的结果类型作为返回值类型//圆的周长,圆的面积,返回数组某个元素public static int getAre...
2019-05-25 16:17:40 178
原创 java基础第三篇
6.Java 中的容器(重点)a.变量:变量是一个容器,它存储的单个值 //int i=3;1.局部变量:定义在方法中,没有默认值2.成员变量:定义在类中方法外,这个事物的属性(特征)定义为成员变量,有默认值class Hero{String heroName;//类中所有的方法都能使用public void method(int m){//方法形参上的变量也是局部变量,仅...
2019-05-25 16:15:35 135
原创 Java程序员需要突破的技术要点
Java程序员需要突破的技术要点一、源码分析二、分布式架构三、微服务四、性能优化走向架构师,你必须了解的Java虚拟机高级特性五、Java工程化一、源码分析 源码分析是一种临界知识,掌握了这种临界知识,能不变应万变,源码分析对于很多人来说很枯燥,生涩难懂。 源码阅读,我觉得最核心有三点:技术基础+强烈的求知欲+耐心。 我认为是阅读源码的最核心驱动力。我见到绝大多数程序员,...
2019-05-22 13:58:03 168
原创 当构造方法参数过多时使用builder模式
静态工厂和构造方法都有一个限制:它们不能很好地扩展到很多可选参数的情景。请考虑一个代表包装食品上的营养成分标签的例子。这些标签有几个必需的属性——每次建议的摄入量,每罐的份量和每份卡路里 ,以及超过 20 个可选的属性——总脂肪、饱和脂肪、反式脂肪、胆固醇、钠等等。大多数产品都有非零值,只有少数几个可选属性。 应该为这样的类编写什么样的构造方法或静态工厂?传统上,程序员使用了可伸缩(tele...
2019-05-22 13:49:45 832
原创 java基础第二篇
3.选择结构 a.if: 格式一: if(表达式1){ 表达式1为真才执行 } 格式二: if(表达式1){ 表达式1为真才执行 }else{ 表达式1位假才执行 } 格式三:判断工龄的范围,判断成绩的范围 ...
2019-05-20 21:51:45 174
原创 1. 考虑使用静态工厂方法替代构造方法
一个类允许客户端获取其实例的传统方式是提供一个公共构造方法。其实还有另一种技术应该成为每个程序员工具箱的一部分。一个类可以提供一个公共静态工厂方法,它只是一个返回类实例的静态方法。下面是一个Boolean简单的例子(boolean基本类型的包装类)。此方法将boolean基本类型转换为Boolean对象引用 : public static Boolean valuesOf(...
2019-05-20 15:42:59 397
原创 浏览器的一个请求从发送到返回都经历了什么?
1.用户输入url,浏览器内部代码将url进行拆分解析让我们来看一个URL(统一资源定位器)scheme://login:password@address:port/path/to/resource/?query_string#fragment1 : 协议名称2 :层级URL的标记符号(固定不变,语法规定)3 :访问资源需要的凭证信息(可选)4 :从哪个服务器获取数据5 :需要连接...
2019-05-16 15:43:11 2348
原创 什么是微服务
什么是微服务微服务具备的特性微服务优点微服务带来的挑战微服务设计原则雪崩效验:微服务容错处理方案 :Spirng CloundSpring Cloud ConfigSpring Cloud EurkaSpring Clound NetflixSpring cloud Hystrix熔断器Spring Cloud Zuul 服务网关Spring Cloud BusSpring Cloud for ...
2019-05-15 22:31:13 215
原创 java基础第一篇
1、JDK:Java Development kit 能对Java程序编译,运行 包含JREJRE:Java Runtime Environment 能对Java程序运行 包含JVM和一些核心类库JVM:Java Virtual Machine 最终Java程序是在JVM跑起来Java 跨平台的根本是因为不同平台下有对应版本虚拟机 关系:JD...
2019-05-14 22:33:28 151
原创 面试总结
面试总结面试总结 :Dubbo并发通信原理解析Redis常用命令SpringMVC与Struts2区别与比较总结git常用命令 :虚拟机的类加载机制。spring boot与spring mvc的区别是什么?一、Duboo基本概念解释二、dubbo原理ActiveMQ的功能解耦合和减轻写的压力。项目优化 :第一级优化 :第二级优化 :redis缓存第三极优化 : solr进行搜索第四级优化 :S...
2019-05-14 22:12:15 322
原创 什么是Spring Boot
什么是Spring Boot什么是Spring BootSpring Boot的优缺点快速入门编写第一个Spring Boot的应用Spring Boot的核心关闭自动配置更多配置详解LOGGINGAOPIDENTITY (ContextIdApplicationContextInitializer)ADMIN (SpringApplicationAdminJmxAutoConfiguration...
2019-05-14 21:54:16 906
原创 SpringAOP和Spring事物管理
Spring AOP :Pointcut表达式: designators-指示器 wildcards-通配符 operators-操作符wildcards: * -- 匹配任意数量的字符 + -- 匹配制定类及其子类 ..-- 一般用于匹配任意数的子包或参数operator: && || !Wildcards(通配符) * 匹配任意数量的字符 ...
2019-05-14 21:40:43 223
原创 memcached原理及介绍
memcached原理及介绍memcached介绍提速方法 :memcached特征 :memcached作用 :memcached适合做的东西 :memcached工作原理 :memcached内存算法 :memcached缓存策略 :memcached失效策略 :memcached分布式算法 :memcached与redis比较memcached介绍memcached是一种缓存技术,在存储...
2019-05-14 21:33:24 464 1
原创 理解线程池,看这篇足够了。
线程池详解什么是线程池线程池的处理流程前面提到的 ThreadPoolExecutor 构造函数的参数,分别影响以下内容:线程池中使用的队列是 BlockingQueue 接口,常用的实现有如下几种:JDK 为我们内置了五种常见线程池的实现,均可以使用 Executors 工厂类创建。1.newFixedThreadPool2.newSingleThreadExecutor3.newCachedT...
2019-05-14 21:27:11 910
原创 java实现数据结构
数据结构与算法 :一.数据结构和算法简介数据结构是指数据在计算机存储空间中的安排方式,而算法时值软件程序用来操作这些结构中的数据的过程.二. 数据结构和算法的重要性几乎所有的程序都会使用到数据结构和算法,即便是最简单的程序也不例外.比如,你希望打印出学生的名单,这个程序使用一个数组来存储学生名单,然后使用一个简单的for循环来遍历数组,最后打印出每个学生的信息.在这个例子中数组就是一个...
2019-05-14 21:12:57 616
原创 设计模式
将设计者的思维融入大家的学习和工作中,更高层次的思考!创建型模式 : 单例模式,工厂模式,抽象工厂模式,建造者模式,原型模式;结构型模式 : 适配器模式,桥接模式,装饰模式,组合模式,外观模式,享元模式,代理模式;行为型模式 : 模板方法模式,命令模式,迭代器模式,观察者模式,中介者模式,备忘录模式,解释器模式,状态模式,策略模式,职责链模式,访问者模式;静态内部类实现方式(...
2019-05-14 20:59:12 190
原创 并发编程
线程安全 线程安全概念 : 当多个线程访问某一个类(对象或方法)时,这个类始终都能表现出正确的行为,那么这个类(对象或方法)就是线程安全的. synchronized : 可以在任意对象及方法上加锁,而加锁的这段代码称为"互斥区"或"临界区". 总结 : 当多个 线程访问myThread的run方法时,以排队的方式进行处理(这里排队是按照CPU分配的先后顺...
2019-05-14 20:52:24 127
原创 架构整洁之道
目标用最少的人力成本满足构建和维护该系统的需求衡量指标版本迭代 -- 工程师团队规模版本迭代 -- 代码总行数版本迭代 -- 代码变更行数软件系统的价值行为价值 按需求文档编写代码 可用性 功能性bug 性能 稳定性 紧急,但是并不总是重要,在紧急重要矩阵中占据A、C位置架构价值 Soft :当需求变更时,所需的软件变更必须简单方便 ...
2019-05-14 16:51:44 818 3
原创 最全的Spring注解详解
@Configuration : 配置类 == 配置文件,告诉Spring这是一个配置类@ComponentScan(value="com.atguigu",excludeFilters = { @Filter(type=FilterType.ANNOTATION,classes={Controller.class})})@ComonentScan value : 指定要扫描的包(这...
2019-05-12 20:53:54 998
原创 如何用Zookeeper来实现分布式锁?
如何用Zookeeper来实现分布式锁?什么是Zookeeper临时顺序节点?Znode分为四种类型 :Zookeeper分布式锁的原理获取锁 :释放锁 :什么是Zookeeper临时顺序节点? 例如 : / 动物 植物 猫 仓鼠 荷花 松树 Zookeeper的数据存储结构就像一棵树,这棵树由节点组成,这种节点叫做Zonde.Znode分...
2019-05-12 20:42:40 148
原创 JVM中优化指南
Java虚拟机有自己完善的硬件架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代表(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。我们以一个例子开始这篇文章。假设你是一个普通的Java对象,你出生在Eden区,在Eden区有许多和你差不多的小兄弟、小姐妹,可以把Eden区当成幼儿园,在这个幼儿园里大家玩了多长时间。Eden区不
2019-05-04 20:18:11 501
原创 SQL中进行转列的几种方式
SQL中进行专列SQL中进行转列以下是这次sql转换的表结构以及数据数据准备1、学生表2、课程表3、成绩表4、基本数据我们先看一下最基本的查询效果是什么样的静态行转列动态行转列动态的列是拿到了,那如何再结合SQL语句进行查询得到结果呢?存储过程--动态行转列SQL中进行转列在很多笔试的程序员中会有很多写SQL的情况,其中很多时候会考察行转列。那么这个时候如果能写出来几种行转列的SQL,会给面试...
2019-05-04 19:56:31 1588
Spark技术内幕和快速数据处理.zip
2019-05-12
SQL优化和高性能MYSQL.zip
2019-05-12
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人