
Java
文章平均质量分 85
CodeAmaz
北京优朋普乐广告推荐部门java开发工程师
合迅物联部门主管
上海钢银java高级开发工程师
南京叶子科技java高级开发工程师
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java中有没有引用传递?
一、首先来明确一下"值传递"和"引用传递的"区别值传递:是对所传递参数进行一次副本拷贝,对参数的修改只是对副本的修改,函数调用结束,副本丢弃,原来的变量不变(即实参不变)引用传递:参数被传递到函数时,不复制副本,而是直接将参数自身传入到函数,函数内对参数的任何改变都将反映到原来的变量上。二、对引用传递的认识误区为什么有很多人认为java有引用传递呢?一种情况是有原创 2015-09-08 23:26:32 · 758 阅读 · 0 评论 -
MQ如何实现消息延时
一、缘起很多时候,业务有“在一段时间之后,完成一个工作任务”的需求。例如:滴滴打车订单完成后,如果用户一直不评价,48小时后会将自动评价为5星。一般来说怎么实现这类“48小时后自动评价为5星”需求呢? 常见方案:启动一个cron定时任务,每小时跑一次,将完成时间超过48小时的订单取出,置为5星,并把评价状态置为已评价。假设订单表的结构为:t_order(oid, finish...原创 2018-11-03 14:17:43 · 1438 阅读 · 0 评论 -
架构 秒杀系统优化思路
1.秒杀为什么难做?1)im系统,例如qq或者微博,每个人都读自己的数据(好友列表、群列表、个人信息);2)微博系统,每个人读你关注的人的数据,一个人读多个人的数据;3)秒杀系统,库存只有一份,所有人会在集中的时间读和写这些数据,多个人读一个数据。例如:小米手机每周二的秒杀,可能手机只有1万部,但瞬时进入的流量可能是几百几千万。又例如:12306抢票,票是有限的,库存一份,瞬时流量...原创 2018-10-26 21:38:59 · 259 阅读 · 0 评论 -
什么时候用MQ
1.起因引入一个技术之前,首先应该解答的问题是,这个技术解决什么问题。就像微服务分层架构之前,应该首先回答,为什么要引入微服务,微服务究竟解决什么问题2.MQ是干嘛的消息总线(Message Queue),后文称MQ,是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ是一种非常常见的上下游“逻辑解耦+物理解耦”的消息通信服务。使用了MQ之后,消息发送上游只...原创 2018-10-31 08:51:50 · 1420 阅读 · 2 评论 -
DNS轮询
经常有人会说DNS轮询是过时的技术,是可以被其他方案替代的,nginx前端加入lvs和keepalived可以替代“DNS轮询”,F5能搞定接入层高可用、扩展性、负载均衡,可以替代“DNS轮询”,“DNS轮询”究竟是不是过时的技术,是不是可以被其他方案替代,接下来本文将要做细致讨论。1.面临的问题nginx、lvs、keepalived、f5、DNS轮询,每每提到这些技术,往往讨论的是接入...原创 2018-10-29 14:20:58 · 8586 阅读 · 4 评论 -
企业高并发成熟解决方案思考
要想解决高并发的问题,先需要弄清楚企业整体架构高并发发生在二处:1.负载均衡 2.数据库处分析完企业整体架构之后 1:开始搭建负载均衡服务器 2:演示负载均衡服务器的效果第一种:解决方案 DNS场景:我说的大数据量处理是指同时需要对数据进行检索查询,同时有高并发的增删改操作; 大数据量的处理例如腾讯,盛大,动辄数以亿计的帐号,怎么能这...原创 2018-09-18 14:29:23 · 1079 阅读 · 0 评论 -
关于分布式集群间实现Session共享的思考
1.开篇针对企业,为了应对庞大的用户访问压力,目前大多数大型网站服务器都采用集群部署的方式;针对个人,仅一台服务器而言,也会安装多个tomcat进行错时更新,保证更新后台业务时服务不断开,即模拟了集群的运行方式。在此集群中,我们就不得不考虑一个用户鉴权的问题,即在不同服务上如何保证用户均已登录,并能获取相同的用户登录信息。2.java web 公认的用户鉴权机制说此部分之前先了解几个概念: 1.请...原创 2018-04-02 20:21:14 · 745 阅读 · 0 评论 -
Tomcat实战-调优方案
最近项目跑着发现速度有点慢,然后就分析了一下原因,发现tomcat采用的都是默认配置,于是决定对tomcat调优。我们可以通过优化tomcat以此来提高网站的并发能力。提高Tomcat的性能可以分为两个方向。1.服务器资源:服务器所能提供CPU、内存、硬盘的性能对处理能力有决定性影响,所以说服务器性能牛B,Tomcat也不会太差。当然提高服务器的硬件配置,是需要大量RMB的支持的。所以不到万不得已...原创 2018-03-19 19:56:57 · 644 阅读 · 0 评论 -
JVM调优:基本垃圾回收算法
我们可以从不同的的角度去划分垃圾回收算法:按照基本回收策略分引用计数(Reference Counting):比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。标记-清除(Mark-Sweep):原创 2017-02-16 06:43:58 · 359 阅读 · 0 评论 -
JVM调优总结概念
数据类型Java虚拟机中,数据类型可以分为两类:基本类型和引用类型。基本类型的变量保存原始值,即:他代表的值就是数值本身;而引用类型的变量保存引用值。“引用值”代表了某个对象的引用,而不是对象本身,对象本身存放在这个引用值所表示的地址的位置。基本类型包括:byte,short,int,long,char,float,double,Boolean,return原创 2017-02-16 05:53:33 · 367 阅读 · 0 评论 -
java八大排序算法之冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。 冒泡排序算法的运作如下: 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 对每一对相邻元素作原创 2017-02-15 06:16:03 · 396 阅读 · 0 评论 -
java并发基础
当一个对象或变量可以被多个线程共享的时候,就有可能使得程序的逻辑出现问题。 在一个对象中有一个变量i=0,有两个线程A,B都想对i加1,这个时候便有问题显现出来,关键就是对i加1的这个过程不是原子操作。要想对i进行递增,第一步就是获取i的值,当A获取i的值为0,在A将新的值写入A之前,B也获取了A的值0,然后A写入,i变成1,然后B也写入i,i这个时候依然是1. 当然java的内存模型没有上面这么原创 2015-09-11 11:11:30 · 409 阅读 · 0 评论 -
设计模式之单例模式
1.单例模式的定义 保证一个类仅有一个实例,并提供一个访问它的全局访问点。 这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象 的方式,可以直接访问,不需要实例化该类的对象。1.非线程安全懒汉模式public class SingletonDemo { private static Sin...原创 2018-11-13 11:09:40 · 243 阅读 · 0 评论