![](https://img-blog.csdnimg.cn/6b1b7fe516374222a99f98409dd46036.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Java + JVM + Tomcat
java基础
bst@微胖子
优秀的架构师曾这样说过:复杂的事情简单做,简单的事情重复做,重复的事情工具做,我们只做工具。这里分享给大家,希望能够帮助众多猴子们。
还有就是在工作中不管事哪级leader指派任务,都要问清楚对方三个问题:1、具体需求是什么?2、开发周期是多久什么时候启动?3、对接配合的相关团队是哪些(UI、后台、前端、测试、产品)
同样在做项目前要自己吃透需求,同时要问清楚自己三个问题:1、为什么要这么干?2、这样干有什么好处?3、还有没有更好的方式方法去做?
项目结束要及时的进行自我复盘、review。同时把做项目前问自己的三个问题在问一边。
相信时间久了,对自己的成长会有,以此鞭策自己!!!
展开
-
使用assembly插件来将外部文件夹打进jar包
最终依赖包以及项目jar包和filestore文件夹等都打到了最后一个jar总包里面了。原创 2024-07-17 15:28:02 · 129 阅读 · 0 评论 -
instanceof和containsKey以及claims.getExpiration()以及expiration.before()的用法
instanceof 是 Java 的保留关键字。它的作用是测试它左边的对象是否是它右边的类的实例,返回 boolean 的数据类型。containsKey有key和value键值对,适用于判断是否含有key。claims.getExpiration()令牌过期的日期。expiration.before(new Date())判断当前日期是否在过期日期之前。...原创 2020-07-06 18:18:01 · 1327 阅读 · 0 评论 -
Java保存MultipartFile至本地目录
【代码】Java保存MultipartFile至本地目录。原创 2023-05-31 17:03:25 · 4161 阅读 · 1 评论 -
本地搭建文档服务并提供下载地址供测试使用
这是使用下载的地址话,只需要在地址后面加文件名就可以供外网下载使用。原创 2023-05-30 16:54:24 · 231 阅读 · 0 评论 -
java实现文件下载的几种方法
本文链接:https://blog.csdn.net/Boy_Martin/article/details/126058565。最终成功将文件下载下来了。原创 2023-05-26 14:32:02 · 6810 阅读 · 0 评论 -
Java修改JsonObject中的属性值
/字符串示例 {//处理结果 {原创 2023-05-25 14:57:46 · 2876 阅读 · 0 评论 -
java代码实现HttpRequest远程调用其他模块的接口
【代码】java代码实现HttpRequest远程调用其他模块的接口。原创 2023-04-04 16:56:53 · 574 阅读 · 0 评论 -
json各种格式的操作
json各种格式的操作原创 2021-07-15 16:08:01 · 105 阅读 · 0 评论 -
JAVA之new一个对象和利用反射创建一个对象的区别
但是随着我们技术的不断提升,我们也学习到了,可以通过反射技术实现对象的创建。反射的核心是 JVM 在运行时才动态加载类或调用方法/访问属性,它不需要事先(写代码的时候或编译期)知道运行对象是谁。new的对象无法访问其中的私有属性,反射出来的可以通过设置setAccessible()方法来省略访问权限符。用法解释:其实就是构造get和set构造器的方法名,然后通过invoke方法实现真正的设置值。从结果我们可以看出创建对象new方法更快一些,那反射的优点在哪里?可以在运行时改变类的属性值。原创 2022-10-24 11:53:06 · 2467 阅读 · 0 评论 -
将list中的对象转换为另一个类型的对象
今天写代码发现别人现成的方法返回的是user对象,但是我需要是userVo对象,这就需要将list里面的对象转换,不做任何改变,对别人代码没有影响,有方法,特此记录方便使用。原创 2022-08-18 16:03:41 · 11880 阅读 · 2 评论 -
java使用注解对实体字段进行各种校验
使用时方便使用,免得到处找,百度还不好搜到原创 2022-08-09 10:27:04 · 729 阅读 · 0 评论 -
三种jar包在Linux的启动方式
由于最近新项目改造,急需测试功能,但是整体环境搭建很麻烦,于是用到了基本的jar包启动方式,好久没用这种了,特此记录一下。然后直接在当前目录执行Java-jarzlfy-server-1.2.0.jar。原创 2022-07-21 11:17:13 · 216 阅读 · 0 评论 -
VO、DTO、DO、PO区分和使用
参考详情转载 2022-07-19 10:17:03 · 293 阅读 · 0 评论 -
java通过反射改变注解里面的某个属性值
foo代理类下面有个memberValues是个map,属性值都存在里面,知道位置就好办了。原创 2022-06-20 18:44:21 · 777 阅读 · 0 评论 -
java自定义注释
1、自定义注释的介绍2、定义注释类型@interface3、添加注释的成员变量4、设置默认值5、设置目标范围@Target6、设置保持性@Retention@Retention(RetentionPolicy.SOURCE) public @Interface Test{ int number() degault 1; String value(); String description() default "OK";}这使得test注释符只能在java源代码中保持原创 2022-04-15 11:26:04 · 309 阅读 · 0 评论 -
Java反射的应用处理对象和动态代理的使用
1、上代码2、执行加减乘除这里的传参object就是上面1中的构建一个输入值的数组来达到传参的目的。3、动态代理原创 2022-04-15 10:50:55 · 303 阅读 · 0 评论 -
集合类对比表
根据集合数特性来选择合适的集合来达到开发的目的。原创 2022-04-14 18:12:36 · 133 阅读 · 0 评论 -
String、StringBuffer、StringBuilder的区别比较
1、上结果2、使用的环境原创 2022-04-14 17:27:53 · 99 阅读 · 0 评论 -
System系统类和Runtime类的用法
1、系统属性键值2、代码获取系统属性2、获取环境变量的值System.getenv()方法3、加载文件和库4、快速复制数组5、获取系统时间6、系统推出命令7、垃圾回收8、查看系统内存9、打开系统程序...原创 2022-04-14 16:17:48 · 371 阅读 · 0 评论 -
java自带的TimerTask
1、上代码2、解析就是每一秒中执行一次run方法,打印系统时间。原创 2022-04-14 11:41:26 · 91 阅读 · 0 评论 -
java运算符优先级
1、上表2、运算顺序同级运算符从左往右运算原创 2022-04-13 10:44:58 · 406 阅读 · 0 评论 -
java之自增自减运算符
1、上题目 int x = 5; int y = x++; int x1 = 5; int y1 = ++x1; System.out.println("x=" + x); System.out.println("y=" + y); System.out.println("x1=" + x1); System.out.println("y1=" + y1);2、看结果3、上原创 2022-04-13 10:35:53 · 244 阅读 · 0 评论 -
JVM调优配置实战
1、上标准配置2、遇到异常OutOfMemoryError通常需要将-Xms 数值m -Xmx 数字m 设置小了,需要设置大一点,不设置的话,JVM默认堆大小为64MB。3、对象回收情况4、响应时间的选择5、使用并行收集器使用并行收集器-XX:+UseParNewGC时minor收集时间明显要短许多6、总结具体大致配置按图一配置,如果对项目吞吐量和响应速度有要求,则适当调整堆中新域大小,来适配自己的需求。JVM内存包含堆和永久域,堆包含新域和旧域,进行计算时使用率时,JVM原创 2022-04-12 17:18:50 · 368 阅读 · 0 评论 -
移位操作符
1、上题目int a = 2, b = 2;System.out.println(a << b);int c = 2, d = 2;System.out.println(c >> d);2、题目解析首先要知道>>,<<两个运算符的含义,>>表示右移运算符,<<表示左移运算符,他们都是二元运算符在进行这两种运算的时候,首先要把左边十进制的数化为二进制,则a=00000110要计算的就是00000110>>2,意原创 2022-04-06 14:50:28 · 255 阅读 · 0 评论 -
按位操作符运算
1、题目上手System.out.println(1 & 2);System.out.println(1 | 2);以前也遇到过这样的题目,一直不知道怎么算的,现在终于知道,再次记录。2、题目分析&是按位与运算(只写8位)1 的二进制表示, 0000 00012 的二进制表示, 0000 0010得到 0000 0000(0与1取&得false,为0;反之为true,为1)结果为0|是按位或运算(只写8位)1 的二进制表示, 0000 00012 的二进制表示,原创 2022-04-06 14:42:37 · 104 阅读 · 0 评论 -
利用HTTPRequest和HttpResponse来请求图片写图片到某目录下
1、用途介绍现在调用第三方获取到图片,并把图片直接写入到某个目录。2、上代码 public static void profilephoto(String s) { //图片地址的file对象 File destFile = FileUtil.file("/opt/ces/H5app/avatar/" + s); //拼接地址,不带协议域名端口,然后headermap里面带签名等参数 HttpRequest httpRequest =原创 2022-04-02 17:44:10 · 1211 阅读 · 0 评论 -
Tomcat部署时war和war exploded区别
一、war和war exploded的区别在使用IDEA开发项目的时候,部署Tomcat的时候通常会出现下边的情况:是选择war还是war exploded 这里首先看一下他们两个的区别:war模式:将WEB工程以包的形式上传到服务器 ;war exploded模式:将WEB工程以当前文件夹的位置关系上传到服务器;(1)war模式这种可以称之为是发布模式,看名字也知道,这是先打成war包,再发布;(2)war exploded模式是直接把文件夹、jsp页面 、classes等等移到Tomc原创 2022-02-18 10:40:06 · 4139 阅读 · 2 评论 -
java实现同用户登录互挤,将前一个用户挤下线
1.场景假设 Tom使用了用户1,Joker也是使用了用户1,两人同时对用户1 的相关数据进行了修改,就会造成数据的安全隐患,得保证多台设备登录账号只有一个账号能登录上。2.思路2.1 利用map的key-value数据结构,key可以重复,value不能重复的特性,将用户名和sessionid绑定存储起来。2.2 首次登录在拦截器里面放行,登录成功将用户名和sessionid存储起来,当第二次登录时,用户名相同,sessionid不同的话则去登录,后面执行登录方法,发前一个账号和sessioni转载 2022-03-07 15:12:41 · 4251 阅读 · 4 评论 -
request获取请求客户端ip或服务器ip以及请求ip
1.项目需求根据用户请求过来的ip来判断是内网选择内网上传方式,是外网选择外网上传方式2.代码分析 jsonObject.put("playUrl1", request.getRemoteAddr()); jsonObject.put("playUrl2", request.getServerName()); jsonObject.put("playUrl3", request.getRequestURL()); jsonObject.put("playUrl4", request.ge原创 2022-02-23 10:01:57 · 10951 阅读 · 0 评论 -
公网映射思路
1、使用环境目前政务微信的有两台内网环境71和14服务器,外网不能访问,只能内部访问,但是项目部署在14上面71的nginx转发到14服务器上面,但是现在14的项目需要网络支持,另外需要一台公网环境180服务器。2、公网环境配置180的环境使用firewall防火墙将端口映射到71上面,71将请求转发到14上面。3、整体流程政务微信地址指向71服务器,71服务器指向14服务器,然后公网180与71互通,71通14,从而达到71和14通网的目的。...原创 2022-02-11 17:17:54 · 2400 阅读 · 0 评论 -
System.getenv(String s1)和System.setProperty(String s1,String s2)和System.getProperty(String s1)用法
1.应用实例1最近工程里用到String path = System.getenv(“config_path”);这样取路径的方法。记录一下。1.在windows中config_path指的是系统的环境变量。如:此时取出来的path为:D:\work。有了这个路径就可以做一些读取文件的操作了。2.在linux中config_path指的是在/etc/profile文件末尾配置环境变量 export config_path=XXX/XXX。(XXX/XXX为文件地址,退出保存,并source /原创 2022-02-08 17:41:06 · 899 阅读 · 0 评论 -
反射reflect的实现和作用
1.反射reflect实现的三种方法package Reflex;public class People { private int age; private String name; private int sex; public int getAge() { return age; } public void setAge(int age) { this.age = age; } public S原创 2022-01-25 10:11:58 · 415 阅读 · 0 评论 -
JVM虚拟机的运行机制和原理
1.JVM虚拟机介绍JVM是Java Virtual Machine(Java虚拟机)的缩写,是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机主要由字节码指令集、寄存器、栈、垃圾回收堆和存储方法域等构成。 JVM屏蔽了与具体操作系统平台相关的信息,使Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。JVM在执行字节码时,实际上最终还是把字节码解释成具体平台上的机器指令执行。2.JVM的生命周期JVM伴随Java原创 2022-01-26 14:26:44 · 1644 阅读 · 0 评论 -
JVM性能调优
1、JVM调优目标使用较小的内存占用来获得较高的吞吐量或者较低的延迟。程序在上线前的测试或运行中有时会出现一些大大小小的JVM问题,比如cpu load过高、请求延迟、tps降低等,甚至出现内存泄漏(每次垃圾收集使用的时间越来越长,垃圾收集频率越来越高,每次垃圾收集清理掉的垃圾数据越来越少)、内存溢出导致系统崩溃,因此需要对JVM进行调优,使得程序在正常运行的前提下,获得更高的用户体验和运行效率。这里有几个比较重要的指标:内存占用:程序正常运行需要的内存大小。延迟:由于垃圾收集而引起的程序停顿时间原创 2022-01-26 17:36:00 · 284 阅读 · 0 评论 -
JAVA visualVM 查看堆栈分配
如果你用的是IDEA等开发工具,来启动运行项目,那么要调试JDK就方便太多了。可以得知分配4个g,但是只用了300多M,不合理,下面我们进行jvm调优。适用于在项目部署后,在启动的时候,采用脚本或者命令行运行的时候设置。只需要将参数值设置到VM options中即可。再次查看监控发现堆栈已经分配成功了。执行启动设置Jvm参数的操作。原创 2021-12-10 11:54:41 · 9015 阅读 · 0 评论 -
JVM类初始化时各个成员执行的顺序
1.类的加载机制类的加载机制:将编译之后对应的.class文件加载进内存中,并对数据进行校验,解析和初始化,最终形成可被虚拟机直接使用的Java类型。类加载总共有七个步骤:装载(加载)–>验证–>准备–>解析–>初始化–>使用–>卸载2.类中的成员Java类中的类成员包括:属性,方法,代码块,构造器,内部类属性,方法,代码块由是否有static修饰分为静态和非静态3.初始化顺序当一个类进行加载时,首先要加载静态成员变量,然后在对类进行实例化时加载非静态成员原创 2022-01-26 14:58:20 · 204 阅读 · 0 评论 -
String.join()方法的使用
1.介绍方法String.join()方法是JDK1.8之后新增的一个静态方法2.项目用法String redisKey = String.join(":", "auth_token", token);输出结果如下:auth_token:token起连接符的作用。参数列表:第一个参数表示连接的符号后面的参数表示被连接的数组(也可以是集合),或者是要连接的多个字符串3.例子String result = String.join("-",“a”,“b”,“c”,“d”);输出结果原创 2021-12-22 10:23:35 · 1244 阅读 · 0 评论 -
ip地址的域名配置
一般本机可以配置域名,流程如下:最后ping域名,发现可以ping通,证明域名配置生效。原创 2021-07-28 15:46:34 · 1535 阅读 · 0 评论 -
jdk1.8新特性
********************************************这里不做展示,自行参考下面链接。本文主要介绍了JDK1.8版本中的一些新特性。转载 2020-12-16 20:01:52 · 86 阅读 · 0 评论 -
WIN10远程连接的计算机名和用户名填什么
WIN10远程连接的计算机名和用户名填什么转载 2020-12-08 14:37:03 · 3500 阅读 · 0 评论