• 等级
  • 873019 访问
  • 543 原创
  • 559 转发
  • 1805 排名
  • 87 评论
  • 180 获赞

==和equals方法的区别

equals方法和==的区别首先大家知道,String既可以作为一个对象来使用,又可以作为一个基本类型来使用。这里指的作为一个基本类型来使用只是指使用方法上的,比如Strings="Hello",它的使用方法如同基本类型int一样,比如inti=1;,而作为一个对象来使用,则是指通过new关键字来创建一个新对象,比如Strings=newString("Hello")。...

2019-03-31 00:36:12

Java 中 == 比较的是什么?

1、对于对象引用类型:“==”比较的是对象的内存地址。例子:publicclassArrayTest{publicstaticvoidmain(String[]args){Stringa=newString("aw");Stringb=newString("aw");System.out.p...

2019-03-31 00:19:28

Lock和synchronized的区别和使用

 一.synchronized的缺陷  二.java.util.concurrent.locks包下常用的类  三.锁的相关概念介绍一.synchronized的缺陷  synchronized是java中的一个关键字,也就是说是Java语言内置的特性。那么为什么会出现Lock呢?  在上面一篇文章中,我们了解到如果一个代码块被synchronized修饰了,当一...

2019-03-28 01:19:33

Lock接口及锁分类

Lock接口Lock是一个接口publicinterfaceLock{voidlock();voidlockInterruptibly()throwsInterruptedException;booleantryLock();booleantryLock(longtime,TimeUnitunit)throwsInter...

2019-03-28 00:50:53

Nginx并发数、每秒连接数、下载速度限制,防攻击杀手锏

1.限制IP访问频率:HttpLimitZoneModule限制并发连接数实例limit_zone只能定义在http作用域,limit_conn可以定义在httpserverlocation作用域http{ limit_conn_zone$binary_remote_addrzone=conn:10m; #定义一个名为conn的lim...

2019-03-27 23:56:34

Java SpringMVC 支付宝-手机网站支付接口

首先就是申请支付宝第三方接口,获取到APPID,应用发布前也可以用支付宝的沙箱环境,服务器要开启外网访问权限,因为支付宝需要返回异步通知(notify_url)和同步通知(return_url)支付宝最近推出的支付宝接口2.0,网上有很多教程都是之前版本的,但支付宝给出了兼容方案第三方支付原理  以上简要说明了支付过程,当然其中省略了一些步骤(比如购物车,订单等),我们重点来看支付流程...

2019-03-27 23:53:50

curl命令用法

CURLCurl的一些用法详解,CommadLineURLvicurl是一种命令行工具,作用是发出网络请求,然后得到和提取数据,显示在“标准输出”(stdout)上面,他支持多种协议。一、查看网页源代码直接在curl命令后加上网址,可以看到网页源码。$curlwww.sina.com  <!DOCTYPEHTMLPUBLIC"-//IETF//DTD...

2019-03-27 23:52:41

Lock和synchronized的区别和使用

今天看了并发实践这本书的ReentantLock这章,感觉对ReentantLock还是不够熟悉,有许多疑问,所有在网上找了很多文章看了一下,总体说的不够详细,重点和焦点问题没有谈到,但这篇文章相当不错,说的很全面,主要的重点都说到了,所有在这里转载了这篇文章。  在上一篇文章中我们讲到了如何使用关键字synchronized来实现同步访问。本文我们继续来探讨这个问题,从Java5之后,在j...

2019-03-26 03:28:04

高吞吐量系统设计优化建议

高吞吐量系统举一个例子,我们做项目需要安排计划,每一个模块可以由多人同时并行做多项任务,也可以一个人或者多个人串行工作,但始终会有一条关键路径,这条路径就是项目的工期。系统一次调用的响应时间跟项目计划一样,也有一条关键路径,这个关键路径是就是系统影响时间。关键路径由CPU运算、IO、外部系统响应等等组成。对于一个系统的用户来说,从用户点击一个按钮、链接或发出一条指令开始,到系统把结果以...

2019-03-26 02:44:28

notepad++的CoolFormat代码格式化插件使用

因为notepad++的NppAStyle插件只支持格式化C、C++、C#、Java这四种编程语言的代码,所以本人推荐使用这个CoolFormat的插件,相比于NPPAStyle,CoolFormat支持C\C++\C#\CSS\HTML\Java\JavaScript\JSON\Objective-C\PHP\SQL\XML代码格式化工具。还可以作为VisualStudio2013、Subl...

2019-03-26 00:47:29

JVM性能调优监控工具jps、jmap、jstack、jstat使用详解

JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外,还有jps、jstack、jmap、jhat、jstat等小巧的工具,本博客希望能起抛砖引玉之用,让大家能开始对JVM性能调优的常用工具有所了解。现实企业级Java开发中,有时候我们会碰到下面这些问题: OutOfMemoryError,内存不足 内存泄露 线程死锁 ...

2019-03-25 22:59:48

JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jstat

一、jps1、介绍用来查看基于HotSpotJVM里面所有进程的具体状态,包括进程ID,进程启动的路径等等。与unix上的ps类似,用来显示本地有权限的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数。Jps也可以显示远程系统上的JAVA进程,这需要远程服务上开启了jstat服务,以及RMI注及服务,不过常用都是对本对的JAV...

2019-03-25 20:14:33

jstack,jmap,jutil分别的意义

1.Jstack1.1jstack能得到运行java程序的javastack和nativestack的信息。可以轻松得知当前线程的运行情况。如下图所示:注:这个和threaddump是同样的结果。但是threaddump是用kill-3pid命令,还是服务器上面少用kill为妙1.2命名行格式jstack[option]pidjsta...

2019-03-25 20:09:58

一个线上JVM的CPU资源占用过高问题的排查

上午线上某应用的一台JVM的CPU占比突然飙高到192%,并且一直下不来,导致监控一直告警,好久没处理这种问题了,现在将问题排查步骤总结记录一下。1.通过top命令查看当前机器的CPU使用情况此时发现如果是Java的进程占用过高,并且一直下不来,则排查是什么线程导致占比过高。以图中进程举例,假如发现PID为31357的Java进程占CPU比一直很高,则记录下它的PID2.查看Java...

2019-03-25 20:01:30

线上环境JVM问题排查常用指令

线上和测试环境的JVM一般运行在linux服务器上,没有界面,遇到问题时需要用指令工具进行排查。这方面的学问博大精深,而且实战重于理论,这篇文章仅仅当作日常问题排查的笔记,方便自己查阅,各方面的细节网上有很多文章进行过深入探讨。1.Tomcat配置排查问题时不一定只围绕程序日志、linux系统性能指令和JDK工具,有时候看看程序部署的tomcat配置文件,也许会有帮助。把${TOMC...

2019-03-25 19:45:44

一次线上OOM过程的排查

一.出现问题在前一段时间日常环境很不稳定,前端调用mtop接口会出网络异常或服务不存在的异常。查询了服务器上的HSF会有偶尔挂死的情况,服务器上的接口服务都不可用。于是我们对服务器上的状况进行了排查。二.排查问题的过程在这次的问题排查主要是围绕JVM的内存使用情况,生成对象分布情况以及GC情况来讨论的。中间有一些细节一开始存有疑问,迷雾的排除不算太顺利。首先要感谢下基础架构事业群的右席...

2019-03-25 19:44:07

记一次线上服务cpu占用率超过100%的问题排查

一、出现问题在发现公司门禁服务无法开门的第一时间,去线上服务器上查看了一下进程的运行情况,具体运行如下:第一次在查看的时候发现并没有我需要的服务entranceguard进程(图片是后续截图的)二、第一时间启动服务在察觉到服务挂了之后,第一时间就是让服务重新启动,所以运行了项目下的python脚本,具体运行如下:此时再次使用ps-ef|grepjava命令时发现服...

2019-03-25 19:29:33

分享一次解决线上java应用导致JVM内存溢出(OOM)的问题

某个线上的应用运行几天后,总是出现卡死甚至出现OOM的情况。注:文中图片可能与描述不符,仅作为演示!通过Linux的top命令查看cpu占比首先通过top命令查看,发现某个java程序占用了较高内存:JDK的jps命令确定是哪个java程序然后通过jps-l与上面的PID列(2848)比较,确定是picasso-java-v1.jar这个java程序占用cpu过高:...

2019-03-25 19:11:22

Collections.synchronizedMap()与ConcurrentHashMap的区别

前面文章提到Collections.synchronizedMap()与ConcurrentHashM两者都提供了线程同步的功能。那两者的区别在哪呢?我们们先来看到代码例子。下面代码实现一个线程对map进行写操作,另一个线程,读出并打印map数据。packagetest.map;importjava.util.Collections;importjava.util.HashM...

2019-03-25 18:22:51

Java Collections.synchronizedMap方法分析

Collections.synchronizedMap如何创建线程安全的map。staticMap<Long,User>users=Collections.synchronizedMap(newHashMap<Long,User>());创建了一个synchronizedMap,于是就翻了一下源码,看了一下具体的实现,发现底层其实是通过synchro...

2019-03-25 18:07:18

AlbenXie

关注
  • 计算机软件/开发组长/高级工程师/技术专家
  • 上海 浦东新区
奖章
  • 持之以恒