自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 这可能是微服务写的最全的一篇文章了!!

1.什么是微服务1)一组小的服务(大小没有特别的标准,只要同一团队的工程师理解服务的标识一致即可)2)独立的进程(java的tomcat,nodejs等)3)轻量级的通信(不是soap,是http协议)4)基于业务能力(类似用户服务,商品服务等等)5)独立部署(迭代速度快)6)无集中式管理(无须统一技术栈,可以根据不同的服务或者团队进行灵活选择)ps:微服务的先行者Netflix公司,开源了一些好的微服务框架,后续会有介绍。2. 怎么权衡微服务的利于弊利:强模块边界 。(模块化的演化过程

2020-07-31 17:03:57 432 1

转载 如何学习分布式系统?一文全Get!

分布式系统在互联网公司中的应用已经非常普遍,开源软件层出不穷。hadoop生态系统,从hdfs到hbase,从mapreduce到spark,从storm到spark streaming, heron, flink等等,如何在开源的汪洋中不会迷失自己?本文将从基本概念、架构并结合自己学习工作中的感悟,阐述如何学习分布式系统。由于分布式系统理论体系非常庞大,知识面非常广博,笔者能力有限,不足之处,欢迎讨论交流。常见的分布式系统分为数据存储系统如hdfs,hbase;数据处理计算系统如storm、spark、

2020-07-31 14:25:44 914

转载 细谈八种架构设计模式及其优缺点概述

一、什么是架构我想这个问题,十个人回答得有十一个答案,因为另外的那一个是大家妥协的结果。哈哈,我理解,架构就是骨架,如下图所示:人类的身体的支撑是主要由骨架来承担的,然后是其上的肌肉、神经、皮肤。架构对于软件的重要性不亚于骨架对人类身体的重要性。二、. 什么是设计模式这个问题我问过的面试者不下于数十次,回答五花八门,在我看来,模式就是经验,设计模式就是设计经验,有了这些经验,我们就能在特定情况下使用特定的设计、组合设计,这样可以大大节省我们的设计时间,提高工作效率。 作为一个工作10年以上的老码农

2020-07-31 14:08:25 254

转载 对JVM还有什么不懂的?资深架构师一篇文章带你深入浅出JVM!

本文跟大家聊聊JVM的内部结构,从组件中的多线程处理,JVM系统线程,局部变量数组等方面进行解析JVMJVM = 类加载器(classloader) + 执行引擎(execution engine) + 运行时数据区域(runtime data area)下面这幅图展示了一个典型的JVM(符合JVM Specification Java SE 7 Edition)所具备的关键内部组件。组件中的多线程处理多线程处理”或“自由线程处理”指的是一个程序同时执行多个操作线程的能力。 作为多线程应用程序的

2020-07-31 13:54:09 943

转载 Java程序员从京东、阿里、携程面试回来,已成功拿到京东offer

阿里巴巴(一面)阿里找了一个北邮学长的内推,准确来说应该是直推,是他帮我直接录的简历,他本科进的阿里蚂蚁金服,厉害吧?是真的佩服。第一次在官网上填资料,想想马云有多出名,想想蚂蚁金服这样的顶级技术,有些兴奋,有些期待。录完简历后等待简历评估,原来,找内推不一定能得到面试机会,能不能得到面试机会要经过简历评估(我这才知道,原来内推免笔试可不是那么容易的),毕竟内推能免去在线笔试直接面试,互联网第一梯队像百度、阿里,腾讯的笔试真的很有难度,做过前几年这些公司的笔试题,真的太难了。在阿里的校招群里看到很多

2020-07-30 19:20:02 187

原创 JavaScript入门,难不难你来说

你觉得JavaScript很难吗?,你认识的 JavaScript 只能用来操作DOM元素?增加网页互动性?还是用来写一些超简单的小游戏来玩呢?NO!不要让你的js只停留在DOM操作上,你应该往下看看。引言JavaScript作为全球每年稳居前十的语言,2017年在GitHub尽然排到了第一,其受欢迎程度就无须多言了吧,行内流行这么一句话:任何可以用JavaScript来写的应用,最终都将会用JavaScript来写。确实,JavaScript应用之广泛,语言之强大,在任何地方都有,真的无孔不入,如

2020-07-30 17:14:01 473

原创 从原理到实战,带你搞懂MySQL!

我们经常说,看一个事儿千万不要直接陷入细节里,你应该先鸟瞰其全貌,这样能够帮助你从高维度理解问题。同样,对于 MySQL 的学习也是这样。平时我们使用数据库,看到的通常都是一个整体。比如,你有个最简单的表,表里只有一个 ID 字段,在执行下面这个查询语句时:mysql> select * from T where ID=10;我们看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。所以今天我想和你一起把 MySQL 拆解一下,看看里面都有哪些“零件”,希望借

2020-07-30 17:08:05 153

原创 如何从请求、传输、渲染3个方面提升Web前端性能

什么是WEB前端呢?就是用户电脑的浏览器所做的一切事情。我们来看看用户访问网站,浏览器都做了哪些事情:输入网址 –> 解析域名 -> 请求页面 -> 解析页面并发送页面中的资源请求 -> 渲染资源 -> 输出页面 -> 监听用户操作 -> 重新渲染。通过上面的路径可以看出浏览器分为请求、传输、渲染三部分来实现用户的访问,本文就从这三个部分来浅析如何提升WEB前端性能。一、请求浏览器为了减少请求传输,实现了自己的缓存机制。浏览器缓存就是把一个已经请求过的Web

2020-07-30 16:37:46 153

原创 对于MySQL你必须要了解的锁知识

一、前言MySQL 的锁按照范围可以分为全局锁、表锁、行锁,其中行锁是由数据库引擎实现的,并不是所有的引擎都提供行锁,MyISAM 就不支持行锁,所以文章介绍行锁会以InnoDB引擎为例来介绍行锁。二、全局锁MySQL 提供全局锁来对整个数据库实例加锁。语法:FLUSH TABLES WITH READ LOCK这条语句一般都是用来备份的,当执行这条语句后,数据库所有打开的表都会被关闭,并且使用全局读锁锁定数据库的所有表,同时,其他线程的更新语句(增删改),数据定义语句(建表,修改表结构)和

2020-07-30 15:49:59 150

原创 终于有人把tomcat讲清楚了,堪称史上最细致讲解!!

1.1. 第一篇:Tomcat架构介绍1.1.1. Http工作流程HTTP协议是浏览器与服务器之间的数据传送协议。作为应用层协议, HTTP是基于TCP/IP协议来传递数据的( HTMI文件、图片、查询结果等) , HTTP协议不涉及数据包( Packet )传输,主要规定了客户端和服务器之间的通信格式。1.1.1. Http服务器请求处理浏览器发给服务端的是一个HTTP格式的请求 , HTTP服务器收到这个请求后,需要调用服务端程序来处理,所谓的服务端程序就是你写的Java类,一般来说不同的请

2020-07-30 15:43:38 626

原创 mysql索引总结(建议收藏!!)

我们来分析一下具体的语句在引擎层的执行步骤,CRUD的操作都跟索引相关,我们先了解一下索引索引索引的出现其实就是为了提高数据查询的效率,就像书的目录数据结构常见的数据结构有 哈希表、有序数组和搜索树哈希表是一种以键 - 值(key-value)存储数据的结构,我们只要输入待查找的值即 key, 就可以找到其对应的值即 Value。哈希的思路很简单,把值放在数组里,用一个哈希函数 把 key 换算成一个位置,然后把 value 放在数组的对应位置不可避免地,多个 key 值经过哈希函数的换算,会出

2020-07-30 15:38:13 146

原创 架构师一定要很强的编码能力之后才能当吗?

架构师一定要负责整个系统中最核心和最难的地方的编写,并且设计好团队合作开发的方式,能根据编程经验看到未来的变化,架构太重要了,出不得错误,出了错误很难回头,如果一个团队里需要一个架构师,那他一定必须是团队里写代码能力最好的,而且要负责至少40%以上的核心开发工作,并且不能脱离实际业务。不写代码那个可以是部门经理,可以是开发总监,但一定不能是 架构师。记得以前有个说法,架构师,基础开发部门做的都是什么事?脏活,累活,和一般人干不了不愿意干,干完还一时半会看不出效果的活。如果你不负责整个项目的代码实际.

2020-07-30 14:43:24 157

原创 怎么从初、中级Java程序员过渡到高级Java程序员?

扩展性分为垂直扩展和横向扩展,垂直扩展就是增加单台服务器的处理能力,需要你熟悉硬件、操作系统、中间件的知识;横向扩展一般就是指集群式部署,这都有行业解决方案,你需要做的只是将你的系统设计的具有可扩展性,说白了就是系统可以多份部署,但对外表现为单一应用。分布式单台服务器处理能力有他的极限,但是我们可以将某一个业务拆分成多个子业务,分别部署在不同的服务器上,说白了就是在设计的时候要注意业务的拆分,比如某一个交易平台,你把他拆分成几个子系统,做一个订单处理的应用,再做一个支付的应用等等,做成分布式应用。

2020-07-30 14:39:29 264

原创 三分钟带你了解 Java三大框架!!

三大框架:Struts+Hibernate+SpringJava三大框架主要用来做WEN应用。Struts主要负责表示层的显示Spring利用它的IOC和AOP来处理控制业务(负责对数据库的操作)Hibernate主要是数据持久化到数据库再用jsp的servlet做网页开发的时候有个 web.xml的映射文件,里面有一个mapping的标签就是用来做文件映射的。当你在浏览器上输入URL得知的时候,文件就会根据你写的名称对应到一 个JAVA文件,根据java文件里编写的内容显示在浏览器上,就是一个网

2020-07-30 14:21:16 285

原创 Java后端开发工程师是否该转大数据开发?

背景看到一些java开发工程师,对java后端薪酬太悲观了。认为换去大数据领域就会高工资。觉得java后端没有前途。我从事java后端开发,对大数据领域工作有些了解,但不深入。本文描述一下我对java后端和是否转大数据开发的个人见解。目的分析大数据领域分类分析大数据工作工资高的原因分析造成觉得java后端开发不够前景的原因java后端转大数据工作做什么转去大数据领域的各类方向与java后端比较衡量一、大数据领域工作我认为分4类类别

2020-07-29 21:00:13 1660

原创 软件开发者:如何保持技术更新,避免被行业淘汰?

这是一个技术不断变化的新世界。昨天所有的新鲜和热点,在今天也许都已过时。关键是让你的技能保持持续更新状态。你不必学习所有新出现的技术和编程语言 - 事实上,这是不可能的 - 但你必须保持技能的领先。你该怎么做去做呢?如果你没有计划如何让你的编程技能保持最新,并且也没有计划推进职业生涯发展,那么这不会发生。您需要制定自己的计划,以确定如何推进自己的职业生涯,并使自己的技能保持最新状态。本文之后的内容只是一些可以纳入你的计划的建议,希望对你有所帮助。阅读博客在编程世界中保持最新的最佳方法之一是

2020-07-29 19:57:25 1321

原创 从事Java开发3年,技术和工资遇到瓶颈,怎么突破?

很多人做Java开发2,3年后,都会感觉自己遇到瓶颈。什么都会又什么都不会,如何改变困境,为什么很多人写了7,8年还是一个码农,工作中太多被动是因为不懂底层原理。公司的工作节奏又比较快,难有机会学习架构原理,也没人教,所以这个时候,学习架构原理,扩展思维,对自己以后职业生涯尤为重要。同样公司的两个新人,一个新人一点就通,学东西很快,有的人,学东西很慢,也很痛苦,处处都是新技术。为什么?因为那个人懂原理,万物都有规律,掌握了规律学其他东西原理相通,一触就会,不懂原理就会处处碰壁,学习很慢还很折磨。很多程序

2020-07-29 16:21:15 779

原创 MySQL中length()、char_length()的区别及用法

在MySQL中length(str)、char_length(str)都属于判断长度的内置函数,根据其得到字符串的长度。这两个方法的区别是我们面向SQL编程时容易采坑的地方,本文带你通俗易懂的了解这两个知识点。方法概述:char_length(str)1.计算单位:字符2.不管汉字还是数字或者是字母都算是一个字符length(str)1.计算单位:字节2.utf8编码:一个汉字三个字节,一个数字或字母一个字节。3.gbk编码:一个汉字两个字节,一个数字或字母一个字节。用法示例:(1)查看

2020-07-29 15:45:10 783

原创 必须要知道且要掌握的8个Java的重要知识点!

Java是面向对象的,面向对象语言有很多,需要理解并掌握以下Java中这些重要的知识点。1.Java中没有多继承,而是用接口来代替多继承。**接口(Interface)**的使用我们需要熟练应用。2.Java是典型的强类型语言,编程过程中,必须要申明变量类型,Java中有八种类型,六种数值类型,一个字符类型和一个布尔类型。3.Java不能为单独的方法,比如Main方法,定义局部变量,只能为类定义常量,供该类的所有方法使用。注意:常量定义于main方法的外边,而且必须有关键字 static fina

2020-07-29 14:58:11 261

原创 Java编程学习——java开发的现状:生活中,无处不在的java

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。生活中,无处不在的java只要能够接触到互联网就离不开java,我们大部分人看到的都是使用java编程过后的互联网成品,而java就相当于原材料一样。目前全球有着数十亿的设备正在运行着java,而且很多服务器程序都是拿java来编写的,用以处理每天超过数以千万的数据。java

2020-07-29 14:37:49 470

原创 java5、java6、java7、java8、java9的不同

1. 介绍JAVA作为使用的主力语言,掌握下其历史发展也是有必要的。看看从JAVA5开始到现在的JAVA9有哪些变化。借此机会,也可以看看哪些特性我们是已经用到的,哪些是还没有用到的。我们在IDEA里面也可以看到language level里面的信息,这里也大致写了下各个版本JDK的新特性。简单概括下就是:JAVA1.3:普通的原始的JAVA,基本语法相信大家都见过了JAVA1.4:assert关键字JAVA5:枚举类型、泛型、自动拆装箱JAVA6: @Override注解JAVA7: &

2020-07-29 14:30:07 519

原创 看完这些 Java 代码优秀案例,一定对你有提升

前言程序的性能受到代码质量的直接影响。这次主要介绍一些代码编写的小技巧和惯例。虽然看起来有些是微不足道的编程技巧,却可能为系统性能带来成倍的提升,因此还是值得关注的。慎用异常在Java开发中,经常使用try-catch进行错误捕获,但是try-catch语句对系统性能而言是非常糟糕的。虽然一次try-catch中,无法察觉到它对性能带来的损失,但是一旦try-catch语句被应用于循环或是遍历体内,就会给系统性能带来极大的伤害。以下是一段将try-catch应用于循环体内的示例代码:@Test

2020-07-27 21:06:51 253

原创 不会MySQL,不会再被大厂难倒,来看这份MySQL最新整理

前言作为一名编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。对于求职者来说,MySQL又是面试中一定会问到的重点,很多人拥有大厂梦,却因为MySQL败下阵来。实际上,MySQL并不难,今天这份最全的MySQL总结,助你向大厂“开炮”,面试不再被MySQL难倒。01、 MySQL 面试题集合总结1.1 MySQL 面试题(基础部分):drop、truncate、 delete区别数据库三范式是什么?union和union all有什么不同?char、varch

2020-07-27 20:19:56 120

原创 半小时教你MySQL快速入门!

概述这篇文章主要针对刚入门的开发,一般半个小时是可以学完的,当然要理解的话估计不止30分钟,对于初学者来说只需满足自己需求可以增删改查等简易的维护即可。下面介绍下MySQL的基础方面内容。一、开始使用MySQL 为关系型数据库(Relational Database Management System),一个关系型数据库由一个或数个表格组成, 表格一般包括以下:表头(header): 每一列的名称;列(col): 具有相同数据类型的数据的集合;行(row): 每一行用来描述某个人/物的具体信息

2020-07-27 20:12:18 172

原创 一篇文章,带你走进Java

一、Java特点1、 面向对象尽管受到其前辈的影响,但Java没被设计成兼容其他语言源代码的程序。这允许Java开发组自由地从零开始。这样做的一个结果是,Java语言可以更直接、更易用、更实际的接近对象。Java的对象模型既简单又容易扩展,对于简单数据类型,例如整数,它保持了高性能,但不是对象。2、 解释性和高性能字节码可以在提供Java虚拟机(JVM)的任何一种系统上被解释执行。早先的许多尝试解决跨平台的方案对性能要求都很高。其他解释执行的语言系统,如BASIC,Tcl,PERL都有无法克服的性能

2020-07-27 19:03:59 739

空空如也

空空如也

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

TA关注的人

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