不管开始软件设计的多好,一段时间后就需要改变。架构会随着业务的改变而需要不断优化 第一步使用继承。继承的缺陷:行为会随子类不断改变,所有子类都有这些行为是不恰当的。不断的去重写覆盖父类的方法不恰当。第二步使用接口。将fly()放进Flyable接口,只有会飞的鸭子实现Flyable接口。缺陷,不用覆盖,但是反过来每个会飞的子类都要去实现Flyable接口,修改fly(),重复代码更多。 发现目的:
转载
2023-10-11 09:16:36
52阅读
# Java Head 分析工具开发指南
Java Head 分析工具是一个用于解析和分析 Java 源文件的工具,可以帮助开发者理解代码结构,提取重要信息并优化代码。本文将指导你开发一个简单的 Java Head 分析工具,包括开发流程及每一步的具体代码实现。
## 开发流程
以下是开发 Java Head 分析工具的步骤概述:
| 步骤 | 描述
产生时间
Java程序运行时,有时会产生JavaCore及HeapDump文件,它一般发生于Java程序遇到致命问题的情况下。
有时致命问题发生后,Java应用不会死掉,还能继续运行;但有时致命问题发生,Java进程会死掉;
为了能够保留Java应用发生致命错误前的运行状态,JVM在死掉前产生两个文件,分别为JavaCore及HeapDump文件。
目录一、通过windows版JDK自带的图形化工具1.工具jvisualvm.exe1.1.1启动脚本配置1.1.2Jvisualvm.exe 工具配置1.1.3在服务器上生产堆的dump文件1.1.4执行GC操作1.2工具jconsole.exe1.2.1启动脚本配置 同1.1.11.2.2 启动jconsole.exe1.2.3查看概览,内存,线程,类,jvm概要 
转载
2023-12-26 21:15:09
421阅读
Java学习日志——《Head First Java》 Day 1 7月20日前言引述环境搭建Java学习1、源文件、类、方法2、System.out.print与System.out.println3、for、while、do-while(终于又见到do-while,泪目了)啤酒歌程序Java注意点 前言引述出于自己的好奇,决定在这个暑假学一学java,当然是抱着认真的态度,只是结果如何,权当
转载
2023-07-14 10:58:56
36阅读
Java对象在内存中的结构一个Java对象,依据Hotspot的实现来讲,分为三块区域:对象头,实例数据,对齐填充块,如下图 首先来认识下对象头对象头(Header)对象头由两部分组成:一部分是Markword,另一部分是类型指针;Markword在32位操作系统中占用4字节,在64位操作系统中占用8字节。下图是Markword在32位系统中的存储示例: 从图中可见,在32位地址的Markword
转载
2023-10-28 13:37:07
1286阅读
一、什么是数据分析指用专业的统计分析方法对大量数据进行分析,并加以详细研究和概括总结,提取有价值的信息,形成有效的分析结论,从而影响业务决策二、数据分析的重要性一切事物,如果不能量化它,我们就没法真正理解它;如果不能理解它,我们就没法真正控制它;如果不能控制它,我们就没法真正改变它。在大数据时代,人类大脑无法理解的复杂,而数据分析可以解读其中的含义;面对难以掌控的未知因素,而数据分析可以预测其中的
转载
2023-10-08 15:17:07
57阅读
Writing a class with a main(使用mian的编写class)1.所有的程序都是在一个class里,即使你在.Java的扩展名的文件下输入代码,实际上运行的是.class拓展名里的程序内容2.而一整个class的运行是从main开始 What can you say in the main method?(你可以在main method里说些什么)语句
转载
2023-06-12 18:37:49
118阅读
Thread dumps(线程转储)能帮助我们判断 CPU 峰值、死锁、内存异常、应用反应迟钝、响应时间变长和其他系统问题。一些在线的分析工具比如 http://fastthread.io/ 也能帮助我们分析和定位问题,但是这些工具都要求有一个 dump 文件。因此在这篇文章当中,我总结了7中抓取 Java Thread Dumps 文件的方式。1. jstackjstack 是一个抓取 thre
转载
2024-08-11 14:31:22
338阅读
2.1 面向过程与面向对象之间的战争面向过程与面向对象之间的战争是由下面一则小故事引起的。从前,有一个软件小铺,该小铺的老板娘(同时也是项目经历)手下有两个小兵:阿朱和阿娇。有一天,老板娘故意刁难两个兵,并且让她两进行比赛,看谁的程序写的好。要求:在图形接口画出正方形、圆形与三角形。当用户点选某个图形时,图形要顺时针旋转360度,并且根据形状的不同而播放不同的AIF音效的音乐文件。当接到这个任务的
转载
2023-09-01 12:34:30
88阅读
花了比较短的时间,扫了一本买了很久的书,内容简单易懂,比较适合JAVA初学者,能够学到部分没有了解过的知识,如下. head first in java 第三章,声明变量
对象存在于堆空间,New dog()book b =new book();book c = new book(); c = b;c=null;c引用被回收第四章,对象的行为
get set的作用,便于后续set的时候
转载
2023-09-06 11:21:51
54阅读
1.java的程序结构:类存于源文件(.java)里面,方法存于类中,语句存于方法中。 2.每个java程序最少都会有一个类以及一个main(),每个应用程序只有一个main()函数。 3.在main中可做:做某件事(声明,设定,调用方法等普通语句)、反复做某件事(for与while的循环)、在适当条件下做某件事(if、else的条件分支测试) 4.无论你的程序有多大(也可以说不管有多少个类),一
转载
2023-07-22 10:51:33
63阅读
文章目录01 | Java基本概念02 | primitive主数据类型和引用03 | 方法操作实例变量04 | 编写程序05 | 认识Java的api06 | 继承与多态07 | 接口与多态08 | 构造器与垃圾收集器构造函数09 | 数字与静态10 | 异常处理11 | 内部类12 | 序列化和文件的输入/输出1.序列化与反序列化2. File对象3.缓冲区4.文件的读取13 | 集合与泛型
转载
2023-07-18 13:21:46
83阅读
异常处理finally:try或catch有return语句时,finally也会在执行return之前执行异常是对象,具有多态性,可只声明或catch父类来处理多个异常;为每类异常单独写多个catch块时,要从子类到父类(从小到大)排catch块有风险方法的调用方式:try/catch;duckduck:踢皮球式处理异常,自己也声明要抛出相同异常,将捕获到的异常从自己抛出,main()抛出的异常
转载
2023-12-25 16:37:22
58阅读
jvm监控分析工具一般分为两类,一种是jdk自带的工具,一种是第三方的分析工具。jdk自带工具一般在jdk bin目录下面,以exe的形式直接点击就可以使用,其中包含分析工具已经很强大,几乎涉及了方方面面,但是我们最常使用的只有两款:jconsole.exe和jvisualvm.exe;第三方的分析工具有很多,各自的侧重点不同,比较有代表性如:jprofiler、arthas、MAT(
转载
2024-01-24 20:09:24
114阅读
JVM优化之GC日志智能分析神器以下都是基于JDK8来描述的.1.开启并收集GC日志在java命令后面加上-verbose:gc -Xloggc:/xxpath/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps例如:java -verbose:gc -Xloggc:/xxpath/gc.log -XX:+PrintGCDetails -XX:+P
转载
2023-11-20 01:09:47
526阅读
Java虚拟机性能管理神器 - VisualVM(1) 简介 - JVM轻量级监控分析神器一、VisualVM是什么? VisualVM是一款免费的JAVA虚拟机图形化监控分析工具。 1. 拥有
图形化的监控界面
。 2. 提供本地、远程的JVM 监控
分析功能。
转载
2024-01-24 20:25:08
265阅读
《Head First Java》 中文版 (第二版)IT`huhui前言录《Head First Java》这本书我不算特别细的看了一遍。认为十分适合初学者,甚至是没接触过语言的人快速入门。但是我认为如果只看这"一块砖头"的话不够,事实上看完之后我觉得还是不能编程。但是在一些java上的问题他解释的很生动基础。甚至解决了我之前还在疑问的问题。总体来说,是一本很好的书,否则也不会一整个 Head
转载
2023-08-29 22:41:37
108阅读
1、每一个可以运行的Jar包中,解压后都有一个META-INF目录,其中有一个文件中MANIFEST.MF,文件的内容表明了运行的Main方法。如下:Manifest-Version: 1.0
Main-Class: com.oyth.jar.TestJar2、primitive 中整形中 long 是64位,int 是32位 。浮点型 double 64位,float 是32位。3、java
转载
2024-04-16 16:05:09
38阅读
Head First Java一、基本概念1、Java 工作方式2、java程序结构二、类与对象三、变量1、primitive 主数据类型2、引用四、方法1、方法的参数2、封装3、变量的比较五、编写程序六、认识Java的API1、ArrayList VS 一般数组七、继承与多态1、继承2、多态八、接口与抽象类九、构造器与垃圾收集器十、数字与静态1、静态方法2、静态变量3、final4、包装类5、
转载
2023-09-12 21:42:50
53阅读