豫ICP备17040950号-2

linux下如何在不解压jar包查看或修改配置文件(二)

有时候部署JAVA程序经常因为不同开发机器上的一部分配置不同,导致项目中的配置文件有些用户名密码等信息有差异,临时打包的时候经常忘记修改,可以重新打包,但是重新打包如果花费时间过长的时候这样做就太不划算了。因此专门总结了不同的方式,找了一种不需要安装其他工具的方式,使用JAVA自带的jar指令方法,详细记录一下我的修改过程(以下过程按照顺序执行,可以跳过某些步骤):

计算机二进制中的原码,反码,补码

计算机最基本的工作是处理数据,而数据的最底层表现形式是二进制,并非是我们人类熟悉的十进制。可以这么认为,计算机其实是很“笨的”,它只理解二进制数据。

今天,主要介绍计算机是怎样做加减运算的。你可能会想,加减运算?这么简单的事情,还用介绍?也许还真不是你想的那样。

计算机的运算是由CPU 完成的,而CPU 只会做加法运算,不会做减法运算,那计算机怎样完成减法工作呢?

1,二进制数

我们先来看看二进制数。

二进制数是由0,1 组成的,比如:

十进制的5,用二进制表示是 101。
十进制的7,用二进制表示是 111。
数字由正数和负数组成。为了表示正负数,计算机中就有了有符号数无符号数之分:

无符号数:英文为 unsigned,只能表示正数。
有符号数:英文为 signed,即能表示正数,又能表示负数。

C/C++ 语言中的数字有有符号数无符号数之分。
Java 语言所有的数字都是有符号数

JVM线上CPU飚高和内存问题故障排查基本操作

前言

对于后端程序员,特别是 Java 程序员来讲,排查线上问题是不可避免的。各种 CPU 飚高,内存溢出,频繁 GC 等等,这些都是令人头疼的问题。楼主同样也遇到过这些问题,那么,遇到这些问题该如何解决呢?首先,出现问题,肯定要先定位问题所在,然后分析问题原因,再然后解决问题,最后进行总结,防止下次再次出现。

1. CPU 飚高

线上 CPU 飚高问题大家应该都遇到过,那么如何定位问题呢?

思路:首先找到 CPU 飚高的那个 Java 进程,因为你的服务器会有多个 JVM 进程。然后找到那个进程中的 “问题线程”,最后根据线程堆栈信息找到问题代码。最后对代码进行排查。