Java
文章平均质量分 78
...
不喝枸杞的程序员
十年生死两茫茫,写程序,到天亮。
展开
-
性能测试不要只会用JMeter啦,nGrinder也了解一下~
为了做一些代码、索引、redis上的性能优化,最近使用nGrinder进行系统的性能测试实战,有较多的收获。首先下载源码部署环境,ngrinder的测试脚本支持python语言,且支持单接口和多接口混合的性能测试,支持较大的并发用户数。简介nGrinder是NHN公司用Java语言开发的一款的基于Grinder开发的开源B/S Web性能测试平台,具有友好简洁的用户界面和分布式测试功能。可以测试任何java代码,包括各种常用的接口。该框架还包含了web端。说起性能测试,所使用的工具中原创 2022-01-08 16:42:56 · 1017 阅读 · 0 评论 -
Nginx这款神器到底牛掰在那些地方,今天我们get一下
nginx在我看来 ,Nginx 是后端工程师和运维工程师,以及前端工程师必须要掌握的必备技能,尤其在分布式系统应用越来越广泛的今天。可以这样毫不夸张的说。现在不管是互联网公司还是传统企业,nginx都有参与!这么牛掰,究竟牛掰的点在哪里,今天我们get一下先抛篇定义吧:Nginx 是一款开源的高性能轻量级 Web 服务器(也叫 HTTP 服务器),它主要提供的功能是:反向代理、负载均衡和HTTP 缓存。注意:三个点:反向代理、负载均衡、http缓存 ,因为平时反向代理和负载均衡用的比..原创 2021-11-13 10:40:25 · 897 阅读 · 0 评论 -
详解Condition的await和signal等待/通知机制
1.Condition简介 任何一个java对象都天然继承于Object类,在线程间实现通信的往往会应用到Object的几个方法,比如wait(),wait(long timeout),wait(long timeout, int nanos)与notify(),notifyAll()几个方法实现等待/通知机制,同样的, 在java Lock体系下依然会有同样的方法实现等待...原创 2019-11-29 14:25:09 · 298 阅读 · 0 评论 -
一线大厂Java架构师实际面试题总结,比较长一定要看到最后
一、Java 基础1.JDK 和 JRE 有什么区别? JRE(Java Runtime Enviroment)是Java的运行环境。面向Java程序的使用者,而不是开发者。如果你仅下载并安装了JRE,那么你的系统只能运行Java程序(也就是.class文件)。JRE是运行Java程序所必须环境的集合,包含JVM标准实现及 Java核心类库。它包括Java虚拟机、Java平台核心类和支持文件。它不包含开发工具(编译器、调试器等)。 JDK(Java Development Kit...原创 2020-08-28 16:10:00 · 1344 阅读 · 1 评论 -
终于有人把Java内存模型说清楚了
内部原理JVM 中试图定义一种 JMM 来屏蔽各种硬件和操作系统的内存访问差异,以实现让 Java 程序在各种平台下都能达到一致的内存访问效果。JMM 的主要目标是定义程序中各个变量的访问规则,即在虚拟机中将变量存储到内存和从内存中取出变量这样的底层细节。此处的变量与 Java 编程中的变量有所区别,它包括了实例字段、静态字段和构成数组对象的元素,但不包括局部变量与方法参数,因为后者是线程私有的,不会被共享,自然就不会存在竞争问题。为了获得较好的执行效能,Java 内存模型并没有限制执行引擎使用处理原创 2020-08-14 21:43:37 · 235 阅读 · 0 评论 -
35岁大厂程序员被劝退!老板说:没年轻人有冲劲!真有内味了吗?
早就听说,35岁是程序员行业的魔咒,没想到这么快就出来了活生生的例子。某大厂35+程序员,上有老,下有小,还有车贷房贷,资本家一句不灵活,没冲劲就给打发了。难怪贵行业人人自危了,且看下图:网友纷纷表示,35岁做不到管理层,真的很难出头啊,被裁是注定的了,不如到35岁自己滚吧!还是,难道真是有内味了? 有人指出资本下的互联网已经畸形,指责资本没有人性,要求立法保护一波现实的人已经开始蠢蠢欲动,大环境无法改变,还是改变自己吧,早早谋出路吧! 还有些唯能力唯强者论...原创 2020-08-08 17:33:30 · 428 阅读 · 0 评论 -
Java面试经典题解析——谈谈你对Java平台的理解?
作者|杨晓峰从你接触 Java开发到现在,你对 Java最直观的印象是什么呢?是它宣传的 “Compile once, run anywhere”,还是目前看已经有些过于形式主义的语法呢?你对于 Java平台到底了解到什么程度?请你先停下来总结思考一下。今天我要问你的问题是,谈谈你对 Java平台的理解?“Java是解释执行”,这句话正确吗?典型回答Java本身是一种面向对象的语言,最显著的特性有...原创 2018-05-08 21:28:30 · 450 阅读 · 0 评论 -
Spring Cloud-鸿鹄Cloud分布式微服务云系统—架构图
这边结合了当前大部分企业的通用需求,包括技术的选型比较严格、苛刻,不仅要用业界最流行的技术,还要和国际接轨,在未来的5~10年内不能out。作为公司的架构师,也要有一种放眼世界的眼光,不仅要给公司做好的技术选型,而且还要快速响应企业的业务需求,能够为企业快速定制化业务。以下是我为公司规划的大型互联网分布式企业微服务云架构:从现在开始,我这边会将近期研发的spring cloud微服务云架构的搭建过...原创 2018-05-02 11:21:13 · 660 阅读 · 0 评论 -
java设计模式之单例模式
在介绍单例模式之前,我们先了解一下,什么是设计模式?设计模式(Design Pattern):是一套被反复使用,多数人知晓的,经过分类编目的,代码设计经验的总结。目的:使用设计模式是为了可重用性代码,让代码更容易被他人理解,保证代码可靠性。本文将会用到的关键词:单例:Singleton实例:instance同步:synchronized类装载器:ClassLoader单例模式:单例,顾名思义就是只...原创 2018-05-02 11:41:56 · 107 阅读 · 0 评论 -
透彻理解Spring事务设计思想之手写实现
前言事务,是描述一组操作的抽象,比如对数据库的一组操作,要么全部成功,要么全部失败。事务具有4个特性:Atomicity(原子性),Consistency(一致性),Isolation(隔离性),Durability(持久性)。在实际开发中,我们对事务应用最多就是在数据库操作这一环,特别是Spring对数据库事务进行了封装管理。Spring对事务的支持,确实很强大,但是从本质上来讲:事务是否生效取...原创 2018-04-24 21:39:32 · 377 阅读 · 0 评论 -
阿里巴巴Java开发程序猿年薪40W是什么水平?
对于年薪40万的程序员,不只是技术过硬,还有一个原因是他们所在的公司福利高,或者会直接持股。在BAT中就是一个很好的案例,例如阿里巴巴P7,P8级别的员工不仅是年薪30到80万不等,还有更多股票持有。当然现在很多互联网公司,只有在盈利的条件下才有资格谈这些年薪几十万。一个小公司,或者一个私企,刚开始起步的公司是不能做到这个地步的。举个例子,一线城市,早一个小的企业中,工资就是8K - 1.5K...原创 2018-05-17 18:21:14 · 1514 阅读 · 3 评论 -
十分钟搞定mongodb副本集
MongoDB的副本集配置最近项目中用到了MongoDB中,由于是用MongoDB中来记录一些程序的日志信息和日常的统计,为了增加应用的可靠性,一直在找的MongoDB集群的一些资料,下面是对最近做的一个小案例过程进行了一下总结记录。一。先介绍一下副本集是什么?副本集(复制)是将数据同步到多台服务器的过程,提供的数据的冗余备份,并且在多个服务器上存储数据的副本,提高了数据的可用性,也降低了数据的损...原创 2018-05-04 20:09:29 · 524 阅读 · 0 评论 -
一次与sql注入 & webshell 的美丽“邂逅”
引言 一波未平,一波又起。金融公司的业务实在是太引人耳目,何况我们公司的业处正处于风口之上(区块链金融),并且每天有大量现金交易,所以不知道有多少黑客躲在暗处一直在盯着你的系统,让你防不胜防,并且想方设法的找到突破点,以达到黑客的目的来获取非法利益。俗话说:“道高一尺,魔高一丈”。系统和代码也可以这么理解,防的在好,总有漏洞。系统和代码也没有绝对的安全。该来的总会来......sql注入与“她”相...原创 2018-04-27 21:10:53 · 1395 阅读 · 0 评论 -
Java逆向基础之初识AspectJ
AspectJ是一个面向切面编程的框架,它扩展了Java语言。AspectJ定义了AOP语法所以它有一个专门的编译器用来生成遵守Java字节编码规范的Class文件。AspectJ目前支持以下三种编织的方式编译时编织:把aspect类(aop的切面)和目标类(被aop的类)放在一起用ajc编译。后编译时编织:目标类可能已经被打成了一个jar包,这时候也可以用ajc命令将jar再编织一次加载时编织L...原创 2018-04-29 17:16:39 · 619 阅读 · 0 评论 -
为什么说Java中要慎重使用继承
JAVA中使用到继承就会有两个无法回避的缺点:打破了封装性,迫使开发者去了解超类的实现细节,子类和超类耦合。超类更新后可能会导致错误。继承打破了封装性关于这一点,下面是一个详细的例子(来源于Effective Java第16条)这里自定义了一个HashSet,重写了两个方法,它和超类唯一的区别是加入了一个计数器,用来统计添加过多少个元素。写一个测试来测试这个新增的功能是否工作:运行后会发现,加入了...原创 2018-05-24 11:40:58 · 3904 阅读 · 4 评论 -
一篇文章看懂分布式架构的演进过程,你也能轻松上手
一.分布式架构的发展历史1946年,世界上第一台电子计算机在美国的宾夕法尼亚大学诞生,它的名字是:ENICAC ,这台计算机的体重比较大,计算速度也不快,但是而代表了计算机时代的到来,再以后的互联网的发展中也有基础性的意义。计算机的组成是有五部分完成的,分别是:输入设备,输出设备,存储器,存储器里面由运算器和控制器,有一个冯诺依曼的模型非常形象的对象计算机的组成进行了描述,不过计算机也是有数据流,...原创 2018-05-24 15:50:40 · 202 阅读 · 0 评论 -
SpringCloud-微服务的注册与发现Eureka
一、SpringCloud简介 Spring Cloud是一系列框架的有序集合。它利用Spring Boot的开发便利性巧妙地简化了分布式系统基础设施的开发,如服务发现注册、配置中心、消息总线、负载均衡、断路器、数据监控等,都可以用Spring Boot的开发风格做到一键启动和部署。Spring Cloud并没有重复制造轮子,它只是将目前各家公司开发的比较成熟、经得起实际考验的服务框架组合起来,...原创 2018-06-15 11:23:01 · 172 阅读 · 0 评论 -
从Java到JVM到OS线程睡眠
作者:超人汪小建Java 中有时需要将线程进入睡眠状态,这时一般我们就会通过 Thread.sleep 使线程进入睡眠状态,接下去就看看执行该语句在 JVM 中做了什么。简单例子以下是一个简单的例子,使主线程睡眠5秒钟。public class TestSleep { public static void main(String[] args) { try { Th...转载 2018-08-20 16:20:10 · 175 阅读 · 0 评论 -
这话怎么接?
这话怎么接? 原创 2019-02-22 21:43:44 · 122 阅读 · 0 评论 -
免费用户和高端用户
免费用户和高端用户原创 2019-02-22 22:11:28 · 228 阅读 · 0 评论 -
新鲜出炉的一套Java面试题
作者:孤独烟由于近期是互联网寒冬,然而烟哥的好友还是顶着重重压力出去面试,最终斩获无数offer。在烟哥的沟通下,终于套得其中一套题目,故在此分享!公司:国内三巨头其中的一家!面试时间约在1月份左右!基本上都是在晚上,所以不影响白天上班!一面一面偏架构方面1、介绍一下自己,讲讲项目经历2、你们项目中微服务是怎么划分的,划分粒度怎么确定?3、那在实践微服务架构中...原创 2019-02-27 16:20:40 · 235 阅读 · 0 评论 -
10个经典的Java面试题集合
这里有10个经典的Java面试题,也为大家列出了答案。这是Java开发人员面试经常容易遇到的问题,相信你了解和掌握之后一定会有所提高。让我们一起来看看吧。1.Java的HashMap是如何工作的?HashMap是一个针对数据结构的键值,每个键都会有相应的值,关键是识别这样的值。HashMap 基于 hashing 原理,我们通过 put ()和 get ()方法储...原创 2019-02-28 22:20:42 · 167 阅读 · 0 评论 -
互联网公司的面试官是如何360°无死角考察候选人的?
作者: 石杉的架构笔记一、写在前面最近收到不少读者反馈,说自己在应聘一些中大型互联网公司的Java工程师岗位时遇到了不少困惑。这些同学说自己也做了精心准备,网上搜集了不少Java面试题,然而实际去互联网公司面试才发现,人家问的,和你准备的对不上号,这就很尴尬了。二、先来体验一个真实的面试连环炮好,闲话不多说,我们进入正题!本系列文章,我们将会从消...原创 2019-03-05 15:28:08 · 260 阅读 · 0 评论 -
搞Java的年薪 40W 是什么水平?
既然楼主提到年薪40w,那我们看看什么公司,什么级别可以给到,再看看要求。阿里是Java大厂,所以可以参考阿里的标准。阿里一般是16薪水,所以就是税前2.5w,在阿里应该是P6就可以达到,而对P6的要求是什么呢,我们内部有个简单的概述,那就是可以独立完成部门内部的项目,而面试过程中,也会有相应的考察。如何定义一个人可否完成部门内部项目1、代码能力代码能力是基本功,Java语言...原创 2019-02-26 15:51:51 · 271 阅读 · 0 评论 -
一文搞定并发面试题
1、Object 的 wait()和notify() 方法下图为线程状态的图:Object 对象中的 wait()和notify()是用来实现实现等待 / 通知模式。其中等待状态和阻塞状态是不同的。等待状态的线程可以通过notify() 方法唤醒并继续执行,而阻塞状态的线程则是等待获取新的锁。 调用 wait()方法后,当前线程会进入等待状态,直到其他线程调用notify()或n...转载 2019-03-02 16:15:12 · 129 阅读 · 0 评论 -
如何推翻JAVA的统治地位?
“java越来越过份了。”php狠狠的说,他转头看着C:“C哥,您可是前辈,java最近砸了我不少场子,您老再不出来管管,我怕他眼里就没有您了啊。”C哥吸烟,慢慢的说:“年轻人不要着急,java的根在我们这里,再怎么折腾,也还是自己人啊,不像nodejs,非我族类,其心必异,我可是听说,nodejs也抢了你不少地盘啊?”“嘿嘿,nodejs就是小打小闹,小地方出来切页面的,能有多大...原创 2019-02-26 16:35:04 · 155 阅读 · 0 评论 -
如何优化Spring Cloud微服务注册中心架构?
作者:石杉的架构笔记1、再回顾:什么是服务注册中心?先回顾一下什么叫做服务注册中心?顾名思义,假设你有一个分布式系统,里面包含了多个服务,部署在不同的机器上,然后这些不同机器上的服务之间要互相调用。举个现实点的例子吧,比如电商系统里的订单服务需要调用库存服务,如下图所示。现在的问题在于,订单服务在192.168.31.154这台机器上,库存服务在192.137.1.3...转载 2019-03-05 22:24:49 · 204 阅读 · 0 评论 -
为什么要学习 Spring Boot?
我们知道,从 2002 年开始,Spring 一直在飞速的发展,如今已经成为了在Java EE(Java Enterprise Edition)开发中真正意义上的标准,但是随着技术的发展,Java EE使用 Spring 逐渐变得笨重起来,大量的 XML 文件存在于项目之中。繁琐的配置,整合第三方框架的配置问题,导致了开发和部署效率的降低。2012 年 10 月,Mike Youngstrom...原创 2019-02-26 21:45:39 · 232 阅读 · 0 评论 -
华为折叠屏刷屏,他把三星逼上绝路!
一一开年,中国企业就燃爆了科技圈。2019年2月24日,随着华为5G可折叠手机——Mate X的发布,中国企业吸引了全球科技爱好者的目光。0至180度的自由翻转、5.4mm的机身单边厚度、4.6Gbps的下载速度、55W的超级快充……这款手机一经发布就爆红全球!这是第一次由中国企业掀起的全球科技热潮!这是华为的骄傲,中国骄傲。这款手机有多牛X,在全国...原创 2019-03-08 17:13:40 · 390 阅读 · 0 评论 -
两张图彻底搞懂MyBatis的Mapper原理!
作者:肥朝简单使用这是一个简单的Mybatis保存对象的例子1@Test2publicvoidtestSave()throwsException{3//创建sessionFactory对象4SqlSessionFactorysf=newSqlSessionFactoryBuilder().5build(Resource...原创 2019-03-08 21:42:22 · 543 阅读 · 0 评论 -
程序员跳槽有一份好的简历,offer让你拿到手软
作者:果汁简历工欲善其事必先利其器,这是自古以来的道理,所以如果想找到一份好的工作,一定要先整理一份好的简历。模板写简历首先要有一个好的模板,我们做技术的不同于 UX,UED,我们不需要那么花哨,但是也需要整洁干净。好的模板能让你的简历给面试官一个好的印象,有一句话说得好,简单而不简单。回到技术上面,既然我们每天都用 Markdown 写文档,那么为什么直接用它编...原创 2019-03-06 17:30:05 · 1184 阅读 · 0 评论 -
面试官问我,Redis分布式锁如何续期?懵了。
前言上一篇[面试官问我,使用Dubbo有没有遇到一些坑?我笑了。]之后,又有一位粉丝和我说在面试过程中被虐了.鉴于这位粉丝是之前肥朝的粉丝,而且周一又要开启新一轮的面试,为了回馈他长期以来的支持,所以连夜写了本篇,希望能对他接下来的面试有所帮助.真实案例Redis分布式锁的正确姿势据肥朝了解,很多同学在用分布式锁时,都是直接百度搜索找一个Redis分布式锁工具类就直接用了.关键...原创 2019-03-13 21:54:47 · 1332 阅读 · 1 评论 -
面试官问我,使用Dubbo有没有遇到一些坑?我笑了。
前言17年的时候,因为一时冲动没把持住(当然最近也有粉丝叫我再冲动一把再更新一波),结合面试题写了一个系列的Dubbo源码解析.目前公众号大部分粉丝都是之前的粉丝,这里不过多介绍.根据我的面试经验而言,能在简历上写上原理、源码等关键词的,是非常具备核心竞争力的.上周和一个公众号粉丝交流面试情况如下面试的时候,把源码一波分析,令面试官虎躯一震!在一阵前戏过后,以为接下来无非就是身...原创 2019-03-09 16:50:13 · 247 阅读 · 0 评论 -
Redlock:Redis分布式锁最牛逼的实现
普通实现说道Redis分布式锁大部分人都会想到:setnx+lua,或者知道set key value px milliseconds nx。后一种方式的核心实现命令如下:- 获取锁(unique_value可以是UUID等)SET resource_name unique_value NX PX 30000- 释放锁(lua脚本中,一定要比较value,防止误解锁)if red...原创 2019-03-14 16:06:16 · 669 阅读 · 0 评论 -
阿里面试题剖析,如何保证消息不被重复消费?
面试题如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?面试官心理分析其实这是很常见的一个问题,这俩问题基本可以连起来问。既然是消费消息,那肯定要考虑会不会重复消费?能不能避免重复消费?或者重复消费了也别造成系统异常可以吗?这个是 MQ 领域的基本问题,其实本质上还是问你使用消息队列如何保证幂等性,这个是你架构里要考虑的一个问题。面试题剖析回答这个问题,首先你别听到重复消息...原创 2019-03-19 16:40:31 · 227 阅读 · 0 评论 -
支付宝首次揭秘红包技术
作者:MacTalk以前过年发红包,是纸包的,而且只发给还没工作的晚辈就好了。自从有了移动支付,事情慢慢变得复杂起来。如果你在负责一个部门,过年要给部门员工发红包。如果你在运营一个公司,你得给公司员工发红包。给娃发了个纸红包,她还会和你要移动红包。所以呢,很多人过年在抢红包,我基本上是在发红包,以至于每年各大互联网公司的红包战事,我都少有参与。不过支付宝的五福红包我每年都参...原创 2019-03-07 17:24:55 · 1310 阅读 · 0 评论 -
阿里面试题BIO和NIO数量问题附答案和代码
一、问题BIO 和 NIO 作为 Server 端,当建立了 10 个连接时,分别产生多少个线程?答案:因为传统的 IO 也就是 BIO 是同步线程堵塞的,所以每个连接都要分配一个专用线程来处理请求,这样 10 个连接就会创建 10 个线程去处理。而 NIO 是一种同步非阻塞的 I/O 模型,它的核心技术是多路复用,可以使用一个链接上的不同通道来处理不同的请求,所以即使有 10 个连接,...原创 2019-03-15 22:14:59 · 344 阅读 · 0 评论 -
超实用的 Nginx 极简教程,覆盖了常用场景
概述什么是 Nginx?Nginx (engine x)是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。什么是反向代理?反向代理(Reverse Proxy)方式是指以代理服务器来接受 internet 上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给 internet 上请求连接的客户端,此时...原创 2019-03-11 21:19:54 · 105 阅读 · 0 评论 -
如何保证消息队列的可靠性传输?
面试题如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题?面试官心理分析这个是肯定的,用 MQ 有个基本原则,就是数据不能多一条,也不能少一条,不能多,就是前面说的重复消费和幂等性问题。不能少,就是说这数据别搞丢了。那这个问题你必须得考虑一下。如果说你这个是用 MQ 来传递非常核心的消息,比如说计费、扣费的一些消息,那必须确保这个 MQ 传递过程中绝对不会把计费消息给弄丢。...原创 2019-03-20 15:59:17 · 948 阅读 · 0 评论 -
高并发架构消息队列面试题解析
面试题 为什么使用消息队列? 消息队列有什么优点和缺点? Kafka、ActiveMQ、RabbitMQ、RocketMQ 都有什么区别,以及适合哪些场景? 面试官心理分析其实面试官主要是想看看: 第一,你知不知道你们系统里为什么要用消息队列这个东西? 不少候选人,说自己项目里用了 Redis、MQ,但是其实他并不知道自己为什么要用这个东西。其实...原创 2019-03-16 15:40:16 · 307 阅读 · 0 评论