Java
weixin_45096138
这个作者很懒,什么都没留下…
展开
-
public、private、protected区别
1、public:public表明该bai数据成员、成员函数是对所du有用户开放的zhi,所有用户都可dao以直接进行调用2、private:zhuanprivate表示私有,私有的意思就shu是除了class自己之外,任何人都不可以直接使用。3、protected:protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部class,protected就变成private。扩展资料:三种类型的继承,父类的成员均被子类继承(之前的百科关于这点的描述是原创 2020-12-20 13:10:40 · 386 阅读 · 0 评论 -
jvm 性能调优工具之 jcmd
jvm 性能调优工具之 jcmd概述在JDK1.7以后,新增了一个命令行工具 jcmd。他是一个多功能的工具,可以用它来导出堆、查看Java进程、导出线程信息、执行GC、还可以进行采样分析(jmc 工具的飞行记录器)。命令格式 jcmd <pid | main class> <command ... | PerfCounter.print | -f file> jcmd -l jcmd -h描述 pid:接收诊断命令请求的进程ID。 .转载 2020-05-22 08:15:56 · 252 阅读 · 0 评论 -
jvm 性能调优工具之 jmap
jvm 性能调优工具之 jmap概述命令jmap是一个多功能的命令。它可以生成 java 程序的 dump 文件, 也可以查看堆内对象示例的统计信息、查看 ClassLoader 的信息以及 finalizer 队列。jmap 用法参数:option:选项参数。 pid:需要打印配置信息的进程ID。 executable:产生核心dump的Java可执行文件。 core:需要打印配置信息的核心文件。 server-id可选的唯一id,如果相同的远程主机上...转载 2020-05-22 08:15:43 · 112 阅读 · 0 评论 -
jvm 性能调优工具之 jinfo
jvm 性能调优工具之 jinfo概述jinfo 是 JDK 自带的命令,可以用来查看正在运行的 java 应用程序的扩展参数,包括Java System属性和JVM命令行参数;也可以动态的修改正在运行的 JVM 一些参数。当系统崩溃时,jinfo可以从core文件里面知道崩溃的Java应用程序的配置信息jinfo 用法参数说明pid 对应jvm的进程id executable core 产生core dump文件 [server-id@]remote server ..转载 2020-05-22 08:15:31 · 115 阅读 · 0 评论 -
jvm 性能调优工具之 jstat
jvm 性能调优工具之 jstat概述Jstat是JDK自带的一个轻量级小工具。全称“Java Virtual Machine statistics monitoring tool”,它位于java的bin目录下,主要利用JVM内建的指令对Java应用程序的资源和性能进行实时的命令行的监控,包括了对Heap size和垃圾回收状况的监控。jstat 用法option:参数选项 -t:可以在打印的列加上Timestamp列,用于显示系统运行的时间 -h:可以在周期性数据数据...转载 2020-05-22 08:15:19 · 125 阅读 · 0 评论 -
jvm 性能调优工具之 jstack
jvm 性能调优工具之 jstack概述jstack是jdk自带的线程堆栈分析工具,使用该命令可以查看或导出 Java 应用程序中线程堆栈信息。Jstack 用法image参数说明: -l 长列表. 打印关于锁的附加信息,例如属于java.util.concurrent 的 ownable synchronizers列表. -F 当’jstack [-l] pid’没有相应的时候强制打印栈信息 -m 打印java和native c/c++框架的所有栈信.转载 2020-05-22 08:15:02 · 398 阅读 · 0 评论 -
jvm 性能调优工具之 jps
jvm 性能调优工具之 jps概述jps 命令类似与 linux 的 ps 命令,但是它只列出系统中所有的 Java 应用程序。 通过 jps 命令可以方便地查看 Java 进程的启动类、传入参数和 Java 虚拟机参数等信息。如果在 linux 中想查看 java 的进程,一般我们都需要 ps -ef | grep java 来获取进程 ID。如果只想获取 Java 程序的进程,可以直接使用 jps 命令来直接查看。jps 用法参数说明-q:只输出进程 ID-m:输出.转载 2020-05-22 08:14:49 · 96 阅读 · 0 评论 -
Java 对象占用内存大小
Java 对象占用内存大小Java 对象如果想要了解java对象在内存中的大小,必须先要了解java对象的结构。HotSpot虚拟机中,对象在内存中存储的布局可以分为三块区域:对象头(Header)、实例数据(Instance Data)和对齐填充(Padding)java 对象头 Mark Word HotSpot虚拟机的对象头(Object Header)包括两部分信息,第一部分用于存储对象自身的运行时数据, 如哈希值(HashCode)、GC分代年龄、锁状态标志、线程持有.转载 2020-05-22 08:14:33 · 174 阅读 · 0 评论 -
window 查找 java 进程中占用cpu比较高的线程
window 查找 java 进程中占用cpu比较高的线程概述公司内部的一个产品 (java 开发的) 运行在 window 虚拟机上,运行一段时间后CPU飙升,然后想查看是哪个线程占用。折腾了一下午,终于定位到该线程。下面我们通过两种方式定位到占用cpu比较高的线程。 使用Process Explorer,第三方工具定位,使用比较简单,容易上手。 使用window自带的perfmon 性能监控工具进行监控,功能强大,但稍微有点复杂。 示例程序public cl.转载 2020-05-22 08:14:07 · 247 阅读 · 0 评论 -
生成 Heap Dump 的几种方式
生成 Heap Dump 的几种方式Heap Dump 概述Heap Dump 是 Java进程所使用的内存情况在某一时间的一次快照。以文件的形式持久化到磁盘中。Heap Dump的格式有很多种,而且不同的格式包含的信息也可能不一样。但总的来说,Heap Dump一般都包含了一个堆中的Java Objects, Class等基本信息。同时,当你在执行一个转储操作时,往往会触发一次GC,所以你转储得到的文件里包含的信息通常是有效的内容(包含比较少,或没有垃圾对象了) 。Heap Dump .转载 2020-05-21 17:18:42 · 238 阅读 · 0 评论 -
局部变量和常量的性能分析
局部变量和常量的性能分析前两天群里有人问,下面的代码1 比代码2运行时间上慢了100ms,这是问什么?请看下面的两个代码片段:代码1for(int i=0; i<Integer.MAX_VALUE; i++){ sum+=i;}代码2for(int i=0, len=Integer.MAX_VALUE; i<len; i++){ sum+=i;}我本地使用的JDK1.8执行的,但每次执行这两段的时间基本一样。下面代码是我执行的测试代.转载 2020-05-21 17:17:14 · 304 阅读 · 1 评论 -
深入分析JVM逃逸分析对性能的影响
深入分析JVM逃逸分析对性能的影响逃逸分析(Escape Analysis)逃逸分析的基本行为就是分析对象动态作用域:当一个对象在方法中被定义后,它可能被外部方法所引用,称为方法逃逸。甚至还有可能被外部线程访问到,譬如赋值给类变量或可以在其他线程中访问的实例变量,称为线程逃逸。方法逃逸的几种方式如下:public class EscapeTest { public static Object obj; public void globalVariableEsca..转载 2020-05-21 17:13:44 · 94 阅读 · 0 评论 -
字节码分析finally块对return返回值的影响
字节码分析finally块对return返回值的影响直接进入主题。看如下代码:public int test(){ int i=0; try { i=1; return i; } catch (Exception e) { i=2; return i; }finally{ i=3; }}相信有点经验的程序员一眼就能说出返回的结果为1,但是您真的知道返回的结果为..转载 2020-05-21 17:04:16 · 100 阅读 · 0 评论 -
JVM(HotSpot) 垃圾收集器
JVM(HotSpot) 垃圾收集器需要提前了解的知识:JVM内存模型 JVM垃圾回收算法HotSpot虚拟机所有的垃圾收集器如下图:HotSpot 所有垃圾收集器上面有7种收集器,分为部分,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。新生代的收集器使用复制算法,老年代使用并发标记清除(CMS)或标记-整理算法。Stop The WorldJava中Stop-The-World机制简称STW,是在执行垃圾收..转载 2020-05-21 17:01:10 · 98 阅读 · 0 评论 -
JVM 内存区域大小参数设置
JVM 内存区域大小参数设置需要提前了解的知识点:JVM内存模型 JVM垃圾回收算法下图是JVM内存区域划分的逻辑图JVM内存区域逻辑图从图中我们大概了解JVM相关的内存区域。JVM内存包括区域Heap(堆区)New Generation(新生代) Eden Survivor From Survivor To Old Generation(老年代)方法区Permanent Generation(持久代)Stack(栈区) Metaspace(元.转载 2020-05-21 16:56:07 · 238 阅读 · 0 评论 -
JVM 类加载机制深入浅出
JVM 类加载机制深入浅出从类被加载到虚拟机内存中开始,到卸御出内存为止,它的整个生命周期分为7个阶段,加载(Loading)、验证(Verification)、准备(Preparation)、解析(Resolution)、初始化(Initialization)、使用(Using)、卸御(Unloading)。其中验证、准备、解析三个部分统称为连接。7个阶段发生的顺序如下:类的生命周期1. 加载通过一个类的全限定名来获取定义此类的二进制字节流。 将这个字节流所代表的静态存储结构.转载 2020-05-21 16:54:30 · 95 阅读 · 0 评论 -
JVM垃圾回收算法
JVM垃圾回收算法判断Java中对象存活的算法1.引用计数器算法:引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器-1,当计数器为0的时候,JVM就认为对象不再被使用,是“垃圾”了。引用计数器实现简单,效率高;但是不能解决循环引用问问题(A对象引用B对象,B对象又引用A对象,但是A,B对象已不被任何其他对象引用),同时每次计数器的增加和减少都带来了很多额外的开销,所以在JDK1.1之后,这个算法已经不再使用了。2.根搜索方法:.转载 2020-05-21 16:52:56 · 82 阅读 · 0 评论 -
JAVA对象在JVM中内存分配
JAVA对象在JVM中内存分配如果你还不了解JVM内存模型的建议您先看下JVM内存模型以一下代码为例,来分析下,java的实例对象在内存中的空间分配(JDK1.8)。public class Student { private String name; private static Birthday birthday = new Birthday(); public Student(String name) { this.name = name.转载 2020-05-21 16:51:07 · 281 阅读 · 0 评论 -
JVM内存模型(jvm 入门篇)
JVM内存模型(jvm 入门篇)概述jvm 入门篇,想要学习jvm,必须先得了解JVM内存模型,JVM内存模型,JVM内存模型,JVM内存模型,JVM内存模型。重要的事情说多遍。内存划分java虚拟机按照运行时内存使用区域划分如图:Paste_Image.png区域 是否线程共享 是否会内存溢出 程序计数器 否 不会 java虚拟机栈 否 会 本地方法栈 否 会 堆 是 会 方法区 ..转载 2020-05-21 16:49:30 · 127 阅读 · 0 评论 -
java 多线程
引如果对什么是线程、什么是进程仍存有疑惑,请先Google之,因为这两个概念不在本文的范围之内。用多线程只有一个目的,那就是更好的利用cpu的资源,因为所有的多线程代码都可以用单线程来实现。说这个话其实只有一半对,因为反应“多角色”的程序代码,最起码每个角色要给他一个线程吧,否则连实际场景都无法模拟,当然也没法说能用单线程来实现:比如最常见的“生产者,消费者模型”。很多人都对其中的一些概念不够明确,如同步、并发等等,让我们先建立一个数据字典,以免产生误会。多线程:指的是这个程序(一个进程).转载 2020-05-20 08:30:55 · 101 阅读 · 0 评论 -
二叉树基础知识
二叉树基础知识总结题外话昨晚面了腾讯,问了一个完全二叉树的题,竟然让我算了快10分钟,因为等比公式记错了导致最后用最原始的方法推算结果也没算对,一下子就懵了。本来精心准备了1周的面试,最后因为自己基础知识记忆不牢固导致了悲剧。不管怎样,还是要继续查漏补缺,准备将数据结构再细细看一遍,先来补上二叉树的这个漏洞吧。一、树的定义树是一种数据结构,它是由n(n>=1)个有限结点组成一个具有层次关系的集合。树具有的特点有:(1)每个结点有零个或多个子结点(2)没有父节点..转载 2020-05-18 15:13:14 · 186 阅读 · 0 评论 -
理解红黑树
30张图带你彻底理解红黑树写在前面当在10亿数据进行不到30次比较就能查找到目标时,不禁感叹编程之魅力!人类之伟大呀! —— 学红黑树有感。终于,在学习了几天的红黑树相关的知识后,我想把我所学所想和所感分享给大家。红黑树是一种比较难的数据结构,要完全搞懂非常耗时耗力,红黑树怎么自平衡?什么时候需要左旋或右旋?插入和删除破坏了树的平衡后怎么处理?等等一连串的问题在学习前困扰着我。如果你在学习过程中也会存在我的疑问,那么本文对你会有帮助,本文帮助你全面、彻底地理解红黑树!本文将通过图文的方式讲解转载 2020-05-18 14:57:14 · 120 阅读 · 0 评论 -
Java常见异常
1、什么是异常结构不佳的代码不能运行,这是Java的基本理念。发现错误的理想时机是在编译期。然而,编译器并不能发现所有的错误,余下的问题就需要在程序运行时解决。这就需要错误能通过某种方式,把适当的信息 传递给特定的接收者处理。Java中的异常处理的目的在于通过使用少量的代码来简化大型、可靠的程序的生成,通过此方式让你的应用中没有未处理的错误,而 且它还带来了一个明显的好处:降低错误处理代码的复杂度。异常,根据字面理解,有意外之意。把它置于代码层面来理解,即阻止了当前方法或作用域继续执行。在J原创 2020-05-11 09:21:43 · 242 阅读 · 0 评论 -
什么是HTTP?
https://mp.weixin.qq.com/s/8cNJy7fbI0CVbTCyrYoDeQ转载 2020-05-04 15:07:41 · 355 阅读 · 0 评论 -
Session介绍、API、生命周期、应用、与Cookie区别
https://mp.weixin.qq.com/s/kjiAznd2MKD0Y-shXtzVQg转载 2020-05-04 15:05:41 · 82 阅读 · 0 评论 -
介绍会话技术、Cookie的API、详解、应用
介绍会话技术、Cookie的API、详解、应用前言只有光头才能变强。文本已收录至我的GitHub仓库,欢迎Star:https://github.com/ZhongFuCheng3y/3y什么是会话技术基本概念: 指用户开一个浏览器,访问一个网站,只要不关闭该浏览器,不管该用户点击多少个超链接,访问多少资源,直到用户关闭浏览器,整个这个过程我们称为一次会话.为什么我...转载 2020-05-04 15:03:14 · 227 阅读 · 0 评论 -
@PostConstruct注解总结
@PostConstruct注解好多人以为是Spring提供的。其实是Java自己的注解(javax.annotation.PostConstruct)。Java中该注解的说明:@PostConstruct该注解被用来修饰一个非静态的void()方法。被@PostConstruct修饰的方法会在服务器加载Servlet的时候运行,并且只会被服务器执行一次。PostConstruct在构造函数之...原创 2020-04-07 14:27:18 · 737 阅读 · 0 评论 -
缓存架构之借助消息中间件RabbitMQ实现Redis缓存实时更新实战演练
一、背景介绍前面,我们花了大量的时间来介绍消息中间件RabbitMQ,讲了其基本使用,其可靠性传输,这些对我们的缓存架构有什么用呢,我们直接上图来分析下:我们要实现这部分功能,需要借助两个系统:广告管理系统:生产广告的地方 缓存服务系统:消费广告的地方这两个独立的系统又有着紧密的联系,一个是生产者,一个是消费者,我们如何建立这两个系统的联系呢,我们生产的广告,如何及时能通知你来获取...转载 2020-03-31 00:02:12 · 1043 阅读 · 0 评论 -
高并发下,Redis缓存和MySQL数据一致性方案详解
一、需求起因在高并发的业务场景下,数据库大多数情况都是用户并发访问最薄弱的环节。所以,就需要使用Redis做一个缓冲操作,让请求先访问到Redis,而不是直接访问MySQL等数据库。从Redis缓存读数据,一般都是按照下图的流程来进行业务操作:读取缓存步骤一般没有什么问题,但是一旦涉及到数据更新:数据库和缓存更新,就容易出现缓存(Redis)和数据库(MySQL)间的数据一致性...原创 2020-03-30 16:46:43 · 643 阅读 · 0 评论 -
乐观锁和悲观锁
并发控制当程序中可能出现并发的情况时,我们就需要通过一定的手段来保证在并发情况下数据的准确性,通过这种手段保证了当前用户和其他用户一起操作时,所得到的结果和他单独操作时的结果是一样的。这种手段就叫做并发控制。并发控制的目的是保证一个用户的工作不会对另一个用户的工作产生不合理的影响。没有做好并发控制,就可能导致脏读、幻读和不可重复读等问题。并发我们常说的并发控制,一般...转载 2020-03-30 16:25:45 · 115 阅读 · 0 评论 -
自定义注解@RedisLock分布式锁用法及原理
分布式锁应用场景和解决方案。转载 2020-01-08 10:10:49 · 492 阅读 · 0 评论