- 博客(44)
- 资源 (5)
- 收藏
- 关注
原创 阿里干货课堂丨Redis连接池的相关问题分析与总结
问题表象:服务端连接未释放问题背景:商品系统在运行过程中发生过一次Redis服务端连接数超限的问题。截图未保存,表现是:商品服务停掉,但RedisServer端看到的TCP连接任然存在,而且是 ESTABLISHED状态,导致的直接结果就是每次商品重启都会创建400个(minIdle=400)新的redis连接,而且停止的时候还不释放,重启几次之后RedisServer的连接就超过上限1...
2018-07-24 11:06:26
1251
原创 阿里干货课堂丨Websocket 探究
WebSocket: 基于 HTML5 的一种浏览器与服务器之间的即时通讯解决方案(基于 TCP 连接的双向通道);Java容器支持:目前只支持 jetty 和 tomcat。应用场景:即时通讯(网页游戏[双向异步消息模式],网页聊天,微博等)一、概念区分:HTTP 协议 与 TCP 协议区别:HTTP协议是应用层协议,是用于www浏览的一个协,应用层协议包括HTTP协议,TELNET协议,Web...
2018-07-16 15:03:06
608
原创 Java基础 之 序列化与反序列化
为什么需要对象序列化解决Java对象在网络上传输和Java对象持久化的问题。序列化将对象转换为二进制流,然后在网络上传输,当抵打目的后在反序列化为Java对象。什么是Java对象序列化Java平台允许我们在内存中创建可复用的Java对象,但一般情况下,只有当JVM处于运行时,这些对象才可能存在,即,这些对象的生命周期不会比JVM的生命周期更长。但在现实应用中,就可能要求在JVM停止运行之后能够保存...
2018-07-16 15:01:07
511
原创 Java基础 之 集合
Java 中的广义集合分两大类:Collection 和 Map。Set : 成员不能重复HashSet: 外部无序地遍历成员;覆盖了equals方法,注意修改hashCode方法。 TreeSet:外部有序地遍历成员;成员要求实现caparable接口,或者使用 Comparator构造TreeSet。 LinkedHashSet:外部按成员的插入顺序遍历成员。List:提供基于索引对成员随机访...
2018-07-16 14:59:05
396
原创 阿里干货课程 丨怎么编写用户注册/登录服务
看似简单的注册登录功能,如果想考虑完善,并且做到极致体验和良好的安全性,并不是一件容易的事情。本篇文章就结合我们公司的登录体系来分析一下怎么去做好一个用户注册与登录功能。密码设置与传输用户在注册的时候最好对密码的强度做验证,防止弱密码。其次切记不能将密码明文传输,一般的做法是前对对密码做一次Md5加密,后端再做一次Md5加密然后出到DB中。请求参数签名与验签现在主流的开发模式是前后端分离,那么前端...
2018-07-16 14:50:39
463
原创 Lock wait timeout exceeded; try restarting transaction
排查过程:查看数据库 INNODB_LOCKS,未发现有死锁的记录。 查看 SHOW PROCESSLIST; 也未见异常进程; 通过Mysql的控制台,查询慢日志,也未找到有关此表的Mysql慢日志信息。 查询Mysql默认的所等待超时时间: show variables like ‘innodb_lock_wait_timeout’; Variable_name Value innodb_lo...
2018-07-11 17:02:09
1546
原创 Angularjs的$apply及其优化使用
今天,我们要聊得是Angularjs中的小明星$apply。当我们数据更新了,但是view层却没反应时,总能听到有人说,用apply吧,然后,懵懂无知的我们,在赋值代码后面加了$scope.$apply(),然后就惊喜的发现。噢,真的更新了。然而,有些时候,编译器会无情的给你返回Error: $digest already in progress那么,导致这些现象的原因时什么的呢?$apply究竟...
2018-07-11 16:58:42
896
原创 HTTP学习笔记(一)之初探
1http概念HTTP协议(HyperText Transfer Protocol,超文本传输协议)是用于从WWW服务器传输超文本到本地浏览器的传送协议。它可以使浏览器更加高效,使网络传输减少。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示(如文本先于图形)等。2http特征http是应用层协议,由请求和响应构成,支持客户/服务器模式。http是一个无...
2018-07-03 10:48:41
299
原创 数据库外键基础知识和操作(世界杯版)
在数据库的操作中,外建是很常见的操作。近期花了一些时间学习外键,整理学习笔记。外键说明以一个例子来说明外键。正值俄罗斯世界杯期间,32支国家队比赛精彩异常,其中巨星球星毫无疑问:C罗、梅西、内马尔。这里有两张表:表A,其中姓名是主键。主键:为了保证数据的完整性和唯一性,每一个表能够唯一代表该表的字段,不会出现重复。例如身份证ID号。表中运动员姓名也基本上没有重名,在表A中能够作为唯一标示。表B:其...
2018-07-02 10:01:33
528
原创 Java 数据库连接(dataSource)的演进
原生方法加载JDBC 驱动:Class.forName(driver);// mysql 数据库:“com.mysql.jdbc.Driver”建立数据库连接:Connection conn=DriverManager.getConnection(url,userName,password);创建 statement,用来执行SQL 语句:Statement statement =conn.cre...
2018-06-29 13:46:09
7744
原创 Java基础 之 类的加载与对象初始化
类的加载基本原理:所有类都由类装载器载入,载入内存中的类对应一个 java.lang.Class 实例。 已被加载的类由该类的类加载器实例与该类的全路径名的组合标识。设有 packagename.A Class ,分别被类加载器 CL1 和 CL2 加载,则系统中有两个不同的 java.lang.Class 实例: <CL1, packagename.A> 和 <CL2, pac...
2018-06-28 10:33:26
617
原创 Java基础 之 枚举类型
枚举类型的常见使用场景:枚举类型 作为 错误码集合:定义的枚举 属性都是 枚举类型,这个枚举类型每一个错误会对应一个错误信息;使用 枚举类型enum 构建一个状态机:利用enum可以为枚举实例添加方法的特性,可以构造状态机。packageenumeration;publicclassPerson{ //自己有一个状态 privateState s; publicPerson(State s)...
2018-06-27 15:47:34
330
原创 Java基础 之 super 和 this
super的定义:The super keyword enables a subclass to call the methods and fields of its superclass. It is not an instance of the superclass object but a way to tell the compiler which methods or fields to...
2018-06-27 15:40:31
341
原创 3分钟课堂丨Java基础 之 final 和 static
finalfinal的变量当你在类中定义变量时,在其前面加上final关键字,那便是说,这个变量一旦被初始化便不可改变,这里不可改变的意思对基本类型来说是其值不可变,而对于对象变量来说其引用不可再变。其初始化可以在两个地方:一是其定义处,也就是说在final变量定义时直接给其赋值。二是在构造函数中。这两个地方只能选其一,要么在定义时给值,要么在构造函数中给值,不能同时既在定义时给了值,又在构造函数...
2018-06-25 13:49:28
283
原创 阿里干货课堂丨Android 之 Listview
LisView显示的三要素1: ListView,用来展示列表 2:Adapter,用来存在数据&将数据与视图进行绑定3:数据,将被映射的字符串、图片url等等。关于Adapter ,请参考 Android 之 Adapter。ListView的工作原理Adapter的作用就是ListView界面与数据交互的桥梁,当列表里面每一项显示到页面上时,都会调用Adapter的getView...
2018-06-25 13:35:50
375
原创 阿里干货课堂丨Android 高效的 Layout
我们知道随着我们业务越来越负责,UI布局也会越来越复杂,大量的布局信息必定会带来一定的性能损耗,那么我们怎么才能写出高效的布局呢?1.使用<include> <merge><viewStub>标签。 2.LinearLayout中减少使用layout_weight参数,因为使用此属性会导致子元素被测量两次。3.学会测量Layout的层次结构,优化布局 。4.使得...
2018-06-22 10:28:16
456
原创 阿里干货课堂丨Task混用ThreadPool导致无限等待
现象生产环境商品打标异步任务提交任务后,任务没有被执行;查看日志,没有异常日志抛出。初步判断可能是队列出现了饱和或者死锁,但是如果出现了饱和,我们设置的线程池设置的饱和策略是通过主线程去执行,为什么主线程也没有执行呢?具体分析我定义了一个线程池Pool-Z,core_size=5,max_size=20,queue_size=1000,第一个任务A提交后,占用一个线程,那么这个任务A又会被分解成多...
2018-06-22 10:14:10
476
转载 经典职场干货丨刚踏入职场的程序员(2年以内初级程序员)如何快速踏实地提升自己的能力
今天我们不讲面试经验,而是讲如何一步一个脚印地提升自己的能力。本文主要是针对Java后端开发。 1不能光有决心,一定得多用时间学习我见过不少程序员一点点从初级升到资深开发,少得用1年半,多的用3年,成功完成升级的都有一个共同点:进步得靠学习,学习得靠时间堆砌。我个人不算聪明,所以我对曾国藩的一句话体会很深:结硬寨,打呆仗。用在学习上,就是不投机取巧,学习时为自己,踏实地掌握基本功,然后一步一个脚...
2018-06-19 13:49:39
3015
原创 阿里工作中常见问题答疑丨记一次系统Dubbo调用超时的故障
现象:生产环境用户无法使用下单,订单无法交易。异常日志:分析:发现订单调用商品的API超时了,登陆商品系统并没有发现任何的异常调用,感觉订单的系统调用并没有抵达商品系统,后来陆续发现订单访问其他系统的Dubbo调用都超时了,由此可断定可能是订单系统的问题。首先想到的是数据库的链接数,查看RDS的连接数:可以看到,15点开始,总连接数开始飙升,并且临近最大值480(但是一直没到最大值480),但是活...
2018-06-15 10:49:35
2477
原创 阿里专家答疑分享 | GIT本地仓库与远程仓库
很多初学GIT的同学对GIT的本地仓库和远程仓库无法做到很好的区分,我就画了一张图,来阐明他们之间的关系:Git stash 的使用:我们在多分支操作时,暂存工作区中未提交的代码的功能非常有用。一般我们要求commit的代码都是功能完善的,可测试的,但是很多时候,我们的代码片段还未写完,需要临时切出一个分支来解决线上问题,此时就应该使用git stash功能;git stash 是全局储藏区,不同...
2018-06-13 14:00:09
360
原创 Java架构师必看 | 应用架构设计原则
软件系统架构设计原则就是把我们在各种场景下的架构设计进行抽选化提取公共特征形成过一定的方法论,这些方法论是经过严格推敲并具备移植性的,我们在设计系统时遵从这些设计规则可以为我们的体统提供更高的扩展性、稳定性。抽象原则各平台(含基础设施、中间件技术服务、各层业务服务等)需要通过合理地抽象,将内部信息、处理与扩展能力聚合成标准的服务于扩展接口,并通过统一的形式提供给使用者,屏蔽内部的实现与运行细节。以...
2018-06-12 09:48:46
1225
1
原创 阿里专家答疑 | Object Mapping in Java
我们在Java代码编写中经常会遇到DO 、DTO之间的对象隐射转换,我们在设计DO、DTO的时候一般会尽量让对象名称、对象属性保持一致,利于属性拷贝,但是现实场景中可能存在一些对象名称不一致、对象类型不一致的情况,不同的拷贝方案,性能与使用场景也可能存在不一样,那么在众多的对象拷贝框架中如何选择合适的使用呢? 常用对象属性拷贝方法:commons-beanutils 框架中的 BeanUtils...
2018-06-11 14:15:45
795
原创 阿里P7工程师一封迟到的年终总结:告诉你如何成为一名优秀软件工程师
文 / 阿里P7资深工程师 严明明在收到严明明这封总结信的时候,此时已是樱花飘尽的四月天。这封总结信的标题是:二零一七年,我的失败与伟大当我认真读完这篇来自阿里P7资深工程师的2017年度总结后,我决定分享给同样身为软件工程师的你,希望大家都能成为一名优秀的软件工程师。文章目录1. 认知升级,追本溯源2. 把握自己的命运,不要把自己的未来寄托在别人手上3. 矫正心理饥饿的金钱观4. 为专业付费...
2018-06-08 14:30:39
4601
1
原创 学习Java 8 | 进阶2018年金牌-程序猿之10条金律
我经常从读者那里收到邮件询问他们如何才能成为一个更好的Java程序员,他们应该学哪些东西,他们应该在哪个领域工作从而能成为一个Java开发界的明星。在过去的几年里我一个一个单独回答了他们的问题后,我觉得应该写下一些我认为能够帮助你成为更好的Java程序员和应用开发人员的建议。如果你还没有读到他们,你可以在这篇文章之后阅读他们,他们会帮助你提升你的编程与编码技能,这对于成为一个更好的Java开发人员...
2018-06-06 14:16:32
595
原创 你的工作离赚钱近吗?
互联网行业有一个规律,当你所做的事情离钱越近的时候,越会受到公司重视,这种重视会是资源的倾斜、价值的回报、能力的认可。所以当你选择工作的岗位的时候,想一想,你离核心业务是否够近,比如电商行业,商品的零售带来的利润就是公司非常重要的盈利手段,那么在这条链路上,你所处哪一环节,是成交转化还是仓储配送疑惑售后客服?要抓住整个链条的七寸,方能给自己争取更大的发展空间,否则你可能会成为可有可无的螺丝钉,在企...
2018-06-04 14:15:12
594
原创 我在阿里的60条做事方式
阿里技术专家严明明-做事方式思考-随手记1、对自己要求很高、了解产品的商业价值、工作中爽的地方和不爽的地方。2、能力全面,有擅长的东西。3、必须应对变化,技能是否没有竞争力,什么都能干。4、利用平台的放大器效应,发现自身的不足。5、对工作设置规定时间并拿到结果。6、新业务的短平快。7、利用技术创建不一样的东西并自主发起尝试新东西。8、工作干到晚9点,且技术探索再干2小时。9、任何评论需要真知灼见否...
2018-06-04 08:45:03
511
转载 年入100万的程序员说,看完这些书至少涨薪10万
坚持阅读好书是学习Java并且快速提升技术的最好方式之一。但是,市面上与Java技术相关的书籍可谓数不胜数,如何从这些质量参差不齐的众多书中选择出优秀的书籍,就成为了Java程序员面对的第一个问题。不用担心,今天我们将福利奉上,年入百万的程序员,告诉你,他曾经看过的一些经典书籍。扫描文末二维码直接领取书籍电子版。更有限量10本精装版赠送。书籍介绍目录一、基础的Java知识 相关书籍二、高质量代码进...
2018-06-03 11:04:19
3207
1
原创 这是你必须知道的Java集合框架面试题(附答案)
无论是需要招聘的企业人员还是正在求职或者打算跳槽的程序员,今天这篇都值得一看。这里整合了常见的Java集合框架面试题目,以及对应的nice的答案。面试这关至关重要,合适的问题和巧妙的回答,是企业和应聘者相互了解和有效沟通的关键,下面就一起来看看这些题目和答案。 1.为什么Map接口不继承Collection 接口?Set是无序集合,并且不允许重复的元素List是有序的集合,并且允许重复的元素而M...
2018-06-03 10:13:18
5447
原创 入职阿里Java开发团队的正确路径
众所周知,阿里90%以上使用 Java开发,中国云市场的半壁江山都被阿里占有,所以从阿里获得Java技术开发方面对人才的需求是最有说服力的。小编最近和阿里技术专家(阿里高可用演练服务端负责人)交流时获得一些难得的成长和工作技能:如果你是Java开发技术人员而且已经干过一两年了或者你想成为优秀的JavaEE技术高手从以下几个方面提升自己,可以让你成为一名优秀的Java后端开发人员,同时,这也是进入B...
2018-06-02 11:26:28
1266
原创 应用架构设计原则
文 / 阿里P7工程师 严明明目录抽象原则共享原则自治原则冗余原则分布原则自动原则软件系统架构设计原则就是把我们在各种场景下的架构设计进行抽选化提取公共特征形成过一定的方法论,这些方法论是经过严格推敲并具备移植性的,我们在设计系统时遵从这些设计规则可以为我们的体统提供更高的扩展性、稳定性。抽象原则各平台(含基础设施、中间件技术服务、各层业务服务等)需要通过合理地抽象,将内部信息、处理与扩展能力...
2018-06-02 08:51:27
6105
转载 薪资不涨?因为你不懂职场人升职加薪的高效学习方法!
对大多数职场人士来说,追求升职加薪是永恒的主题。跳槽是大家公认的大幅涨薪的其中一条捷径,有人通过跳槽薪水可以翻倍或是百份之几十的涨。只是,跳槽不是适合所有人或不适合在任何时期,职场上也有“跳槽穷三年”的说法。如果不跳槽,在一个单位兢兢业业工作如何获得满意的涨薪呢?下面,小编总结以下几点非常落地的做法,薪水想不涨都难。01圆满完成本职工作圆满完成本职工作,避免因为你的工作失误给公司带来经济损失,避免...
2018-05-11 21:03:46
1184
原创 如何长时间高效学习?
对于所说的长时间高效学习,是不是还可以理解成需要一些好的学习习惯,现在,小编把之前在开课吧西湖中心看到的一些有用信息和大家分享,希望对看到的人有更多的帮助。学习是什么?1.1 专注模式和发散模式大脑很复杂,了解一下关于大脑的工作原理可以让我们更好地学习,减少困惑。首先介绍人们在学习和思考时两种不同的模式:专注模式(Focused mode)和发散模式(Diffuse mode)。专注模式就是集中精...
2018-05-11 18:31:09
402
原创 DevOps的三种方式
文 / 阿里P7工程师 严明明目录前言三种方式第一种方式: 系统思考第二种方式:经过放大的反馈回路第三种方式:持续做试验和学习的文化译者后记前言这篇博客中提到的“三种方式“源自《DevOps Handbook》 及《凤凰项目》(The Phoenix Project: A Novel About IT, DevOps, and Helping Your Business Win.),这三种方式...
2018-05-11 18:29:12
2724
原创 干货 | The Twelve-Factor App
目录简介背景读者应该是哪些人?12-factorsI. 基准代码II. 依赖III. 配置IV. 后端服务V. 构建,发布,运行VI. 进程VII. 端口绑定VIII. 并发IX. 易处理X. 开发环境与线上环境等价XI. 日志XII. 管理进程简介如今,软件通常会作为一种服务来交付,它们被称为网络应用程序,或软件即服务(SaaS)。12-Factor 为构建如下的 SaaS 应用提供了方法论:使...
2018-05-10 17:03:48
498
原创 Java基础知识篇之面试宝典
最近在备战面试的过程中,整理一下面试题。大多数题目都是自己手敲的,网上也有很多这样的总结。自己感觉总是很乱,所以花了很久把自己觉得重要的东西总结了一下。面向对象和面向过程的区别面向过程: 优点:性能比面向对象高,因为类调用时需要实例化,开销比较大,比较消耗资源;比如单片机、嵌入式开发、Linux/Unix等一般采用面向过程开发,性能是最重要的因素。 缺点:没有面向对象易维护...
2018-05-05 18:20:51
269
原创 阿里内部资料 | 阿里中间件告诉你:如何进行高效学习
本文内容,来自阿里中间件内部高效学习培训内容,希望能为迷茫的你,带来高效学习的动力源!如需更多阿里经典干货资源,请添加文末二维码进行索取!...
2018-05-02 10:02:39
838
原创 经典干货 | Taobao SSO 跨域登录过程解析
目录基础知识测试过程禁用Cookie分布式Session 的常见解决方案思考Session 劫持与防范本质思考抓包工具介绍我们知道双十一是天猫的主场,双十二是淘宝的主场,你有没有注意到你在登录了淘宝后,访问天猫或者飞猪,你还是处于登录态的,但是我们知道cookie是不能跨域的。那么阿里是如何做到了多域名下的登录态同步呢?接下来我们通过抓包进行请求解析来了解这个过程。基础知识如果忘了Cookie和S...
2018-05-02 09:43:46
8549
翻译 从零讲JAVA ,给你一条清晰地学习道路!该学什么就学什么!!
1.计算机基础:1.1数据结构基础:主要学习:1.向量,链表,栈,队列和堆,词典。熟悉2.树,二叉搜索树。熟悉3.图,有向图,无向图,基本概念4.二叉搜索A,B,C类熟练,9大排序熟悉。5.树的前中后,层次,之字,最短路。6.KMP等字符串算法。1.2操作系统:主要学习:1.进程,线程,进程线程区别。进程间通信2.进程调度算法理解3.存储,虚拟内存,分页分段,内存调度算法4.文件系统,链式,索引5...
2018-04-28 10:48:45
231
原创 系统权限控制体系
文 / 阿里P7工程师 严明明目录访问控制的本质:访问控制需要完成的两个任务:访问控制理论模型:Java常用访问控制框架:权限系统的演变历史:1: 标准的JAAS 时代;2: 单点登录(SSO)+接口鉴权时代;3: 统一登录(分布式Session) + 接口鉴权时代;在 Web 应用开发中,安全一直是非常重要的一个方面。安全虽然属于应用的非功能性需求,但是应该在应用开发的初期就考虑进来。比如我...
2018-04-27 20:19:32
2726
Qt在嵌入式系统中的虚拟键盘
2013-02-28
经过优化的基于hw2440开发板的视频采集与传输服务程序
2012-04-17
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人