- 博客(20)
- 收藏
- 关注
原创 JVM内存模型深度剖析与优化(持续更新)
一、对象的创建。1、类加载检查。当虚拟机执行到一条new指令的时候,首先会去检查指令的参数能否在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已经被加载、解析和初始化,如果没有就先进行加载。对应到代码中的操作是new、对象克隆、对象序列化等操作。2、分配内存。类加载完成后,对象所需的内存大小便可确定,此时需要找一块确定大小的空间去分配给新创建的对象,空间一般是在堆中,也有可能在虚拟机栈(方法内的局部变量如果不是逃逸对象则有可能被分配在虚拟机栈中,在出栈的时候被销毁)。
2020-06-22 00:29:03 302
原创 jvm内存参数汇总(持续更新)
jvm内存参数列表 调优目标 参数设置 参数说明 元空间 -XX:MaxMetaspaceSize 设置元空间最大值, 默认是-1, 即不限制, 或者说只受限于本地内存大小。 -XX:MetaspaceSize 指定元空间触发Fullgc的初始阈值(元空间无固定初始大小), 以字节为单位,默认是21M,达到该值就会触发 full gc进行类型卸载, 同时收集器会对该值进行调整: 如果释放了大量的空间, 就适当降低该值; 如果释放了很少的空间, 那么在不超 过-X...
2020-06-21 23:41:48 741
原创 SpringBoot注解@validated实战
SpringBoot注解@validated实战@validated说明配套使用的注解`代码示例`总结@validated说明@validated是SpringBoot中已经集成好的注解,在SpringBoot项目中直接使用该注解对接口参数进行校验,如果校验不通过会统一抛出异常,需要跟统一异常配套使用(不是必须,但是强烈建议使用,否则抛出莫名其妙的错误信息容易让前端同事乱棍打死)。配套使用的...
2020-04-09 16:32:40 1776
原创 Tomcat容器修改窗口名称和进程名称
今天在测试环境中关闭之前意外关闭的Tomcat服务器的时候出现了一个问题,由于Tomcat的 进程名称默认为java.exe,导致把其它正常运行的tomcat容器也给关闭掉了,当时有小伙伴正在做测试,这个就非常尴尬了。然后博主就在想这个问题有没有解决方案呢,于是就去找度娘寻找解决方案,原来tomcat的窗口名称跟进程名称是可以修改的,下面把修改过程分享给大家。1、修改窗口启动名称,文件目录:t...
2019-01-14 21:50:48 1767 2
原创 Java后端技术面试汇总------基础篇
面向对象的特征:继承、封装和多态继承:A类继承B类之后可以使用A类中所有的非私有的构造方法和属性,可以实现对B类的扩展。封装:封装简单一点理解就是把处理同一个部分或者同一个模块的代码抽取出来放到一个方法中。多态:声明对象的时候左右两边类型不一致则为多态,对象的类型一定为父类,实际类型为该类的子类,编译的时候看父类运行的时候看子类,即编译的时候看父类有没有这哥方法,有的话即编译通过,...
2018-12-09 10:45:43 868 1
原创 设计模式之单例模式
定义:单例模式就是保证在java应用程序中一个类只有一个实例存在。实现原理:私有化构造方法,使得外界只能通过本类的静态方法获得唯一的实例。单例模式的几种形式:饿汉式:public class Singleton{ private Singleton () {}; private static Singleton instance = n...
2018-12-02 09:14:01 155
原创 常用的设计模式之工厂模式、构建者模式
工厂模式(Factory Pattern)是 Java 中最常用的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,是通过使用一个共同的接口来指向新创建的对象。例如:您需要一辆汽车,可以直接从工厂里面提货,而不用去管这辆汽车是怎么做出来的,以及这个汽车里面的具体实现。优缺点:优点: 1、一个调用者想创...
2018-12-02 08:26:19 2105
原创 关于idea从maven模板webaapp创建出来的项目jsp页面不能解析EL表达式解决方案分享
创建出来的web项目jsp页面中从EL表达式中拿数据的时候发现出来一堆乱码,仔细查看后发现web.xml文件的版本为2.3默认是忽略EL表达式的,也就是问题出在了这里。问题描述:<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.co...
2018-10-21 08:15:15 690
原创 Spring问题整理(四)
一、jdbcTemplate的使用(1)、构造函数JdbcTemplate() 为bean使用构造一个新的JdbcTemplateJdbcTemplate(javax.sql.DataSource dataSource) 构造一个新的JdbcTemplate,给定一个DataSource来获取连接一般我们使用带dataSource参数的构造方法或者使用给JdbcTemplate...
2018-10-19 01:08:06 158
原创 log4j.properties的配置说明
一.参数意义说明(1)输出级别的种类 ERROR、WARN、INFO、DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session丢失 INFO 为一般要显示的信息,比如登录登出 DEBUG 为程序的调试信息(2)配置日志信息输出目的地 log4j.appender...
2018-10-18 10:01:27 205
原创 Spring问题整理(三)
Spring AOP相关知识AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。它利用一种称为"横切"的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其命名为"Aspect",即切面。所谓"切面",简单说就是那些与业务无关,却为...
2018-10-18 01:31:03 267
原创 IDEA优秀插件分享之---Mybatis Log Plugin
小伙伴们在使用mybatis的时候有时候会出现一些sql异常,这个时候就需要对执行的sql语句进行检查。然而mybatis一般使用log4j打印执行的sql语句,类型下面这种的:这个时候如果sql语句比较长比较复杂的话再手动拼接起来就会比较复杂,万一再手抖一下还原sql的过程中弄点什么差错出来的话就会很麻烦,浪费时间还解决不了问题,导致开发效率大打折扣,这个时候我们的一款优秀的IDEA插件...
2018-10-16 22:51:17 49466 26
原创 Spring问题整理(二)
常用的注解(1)@component注解: 创建对象,创建自定义类型对象 子注解:@controller (控制层),@repository (持久化层),@service(业务逻辑层) 三个子注解跟@component注解作用一模一样,都是作用在类上,只不过是为了区分模块,混用不会影响程序执行。使用时如果不给定参数则IOC容器...
2018-10-16 13:06:54 150
原创 关于IDEA模块复制问题的解决方案分享
在IDEA开发过程中有的时候可能一些准备工作比较繁琐,这个时候有些小伙伴们就想到了复制一个module出来导入,但是发现各种报错不能运行,在这里给小伙伴们分享一种IDEAmodule复制的方案,具体操作如下:找到module的磁盘目录,然后ctrl+c ~ ctrl+v复制出来一份然后F2对复制出来的module重命名成想要的名字,博主这里重命名为:IDEA_module_co...
2018-10-16 12:12:37 8975 7
原创 Spring问题整理(一)
一、spring的概述1、spring是一个开源的轻量级框架2、两大核心:IOC容器(反转控制),AOP技术(面向切面编程)3、可以整合众多的第三方框架mybatis,hibernate, struts,struts2等等。二、Spring进行解耦的思路:控制反转具体解决方案:(1)第一步:使用反射创建对象,避免使用new创建对象(2)第二步:使用配置文件管理全限类名三...
2018-10-15 00:31:12 160
原创 【Cannot start process,the working directory "文件路径" does not exist】错误解决方案
错误分析:根据错误信息提示来看报错原因是路径不存在,所以在运行的时候找不到这个文件,但是项目本身编译并没什么问题,这个时候我们查看Run/Debug Configurations发现如下问题:Class处报红,说明找不见这个路径,Use classpath of module处并没有选中要执行的module,看到这里可能很多小伙伴就知道问题出在哪里了,原来是我们的运行是module...
2018-10-14 21:43:17 21388
原创 【Project SDK is not defined】错误解决方案
错误分析:首先看报错原因,错误信息显示项目SDK未定义,提示让安装SDK,一些新手小伙伴们这个时候就有点迷惑了,只知道jdk是java开发工具包,那么SDK是什么呢,我也从来没有用过这个东西呀,怎么这个时候就提示让我安装呢。这个时候小伙伴们不要着急,其实SDK指的是软件开发工具包(缩写:SDK、外语全称:Software Development Kit)一般都是一些软件工程师为特定的软件包...
2018-10-14 21:31:24 46870 1
原创 关于IDEA自动重置LanguageLevel和JavaCompiler版本的问题解决方案分享
在我们导入idea Model后运行代码的时候有时候会出现一些如下的错误: 错误信息提示编译版本跟运行版本不一致,此时博主就去查看了一下项目于的编译环境的jdk版本跟运行环境的jdk版本。打开之后发现项目的编译版本用的是jdk 1.5编译的,总不能每次导入Model都来手动修改这些配置吧,太麻烦了,于是博主就去度娘寻找解决方案,后来发现在Maven的配置文件中加...
2018-10-14 10:13:18 6737 3
原创 常用Linux命令
1.目录的操作命令(增删改查) (1)增加目录操作(增) 命令:mkdir 目录名称 (2)查看目录(查) 命令:ls [-al] 父目录 示例:在根目录 / 下使用ls,可以看到该目录下的所有的目录和文件 示例:在根目录 / 下使用ls -a,可以看到该目录下的所有文件和目录,包括隐藏的 示例:在根目...
2018-10-14 09:03:53 172
原创 新手关于入门的java算法冒泡算法分享(新手进,大牛勿喷,有误的地方欢迎大牛指正)
一、冒泡算法 (1).核心思想: 比较相邻两数大小,然后根据规则选择是否调换顺序(可以选择是升序还是降序),比较对象为int数组内容,虽然Arrays工 具类有sort方法可以直接进行排序,但是此处重在演示算法的原理,不是为了简单的获取排序结果。 假设目标数组为: int[] iAry = {9,1,2,7,6,...
2018-08-29 23:47:39 191
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人