JAVA基础
文章平均质量分 71
江哥说
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
重学JVM之总结
我们知道,java文件经过编译后转换为class文件,然后经过类加载子系统加载到jvm中执行,这个过程如下图所示:class文件结构编译过程就是把java文件变为class文件的过程,用javac命令就可以,比如下面一段简单的代码:public class Math { public static final int initData = 666; public int cal(){ int a = 1; int b = 2; int原创 2020-05-31 22:00:09 · 377 阅读 · 0 评论 -
重学JVM之垃圾收集器
如下图展示的是垃圾收集器的作用范围是属于新生代还是老年代,如果两个垃圾收集器之间存在连线,则说明他们之间可以配合使用。Serial是一种单线程收集器优点:简单高效,拥有很高的单线程收集效率缺点:收集过程需要暂停所有线程,即STW算法:复制算法适用范围:新生代Serial OldSerial Old收集器是Serial收集器的老年代版本,也是一个单线程收集器,不同的是采用标记-整理算法,运行过程和Serial收集器一样。ParNew可以理解为Serial收集器的多线程版本。优点:在多C原创 2020-05-30 12:18:24 · 357 阅读 · 0 评论 -
重学JVM之栈结构
整个运行时数据区如下,其中堆跟方法区是线程共享的,虚拟机栈,本地方法栈,程序计数器是线程私有的。虚拟机栈随着线程的创建而创建,每一个线程都有一个虚拟机栈。每一个被线程执行的方法,称为该栈的栈帧,即每个方法对应一个栈帧。调用一个方法,就会向栈中压入一个栈帧;一个方法调用完成,就会把该栈帧从栈中弹出。比如main方法执行的时候就会创建一个对应的栈空间,main方法调用a方法,那么a方法则称为栈帧,栈帧的数据结构又分为以下几个部分局部变量表,就是指方法里面定义的常量等信息操作数栈:就是执行jvm指令对原创 2020-05-29 12:07:06 · 391 阅读 · 0 评论 -
重学JVM之类加载机制
java文件编译成class文件之后,必须要放到java虚拟机才能执行,类的整个生命周期如下第一步我们是进行加载,加载是由类加载器进行加载的,也就是说把clss文件变成字节流,然后放到虚拟机的一个过程,其中方法区放的是类信息,静态变量,常量,编译后的代码,同时在堆中生成一个代表该类的对象,作为方法区访问的入口类加载器工作原理如下 protected Class<?> loadClass(String name, boolean resolve) throws Cla原创 2020-05-22 17:14:36 · 225 阅读 · 0 评论 -
重学JVM之class文件结构
先准备一个简单的java文件public class Person { private String name = "jack"; private int age; private final double salary = 100; private static String address; private final static String hobby = "programming"; private static Object obj = new原创 2020-05-22 10:40:02 · 236 阅读 · 0 评论 -
HashMap1.8插入元素、扩容部分源码分析以及线程不安全的原因
先看几个关键的属性//默认数组初始化长度为16static final int DEFAULT_INITIAL_CAPACITY = 1 << 4; //最大长度static final int MAXIMUM_CAPACITY = 1 << 30;//负载因子,扩容的阈值,比如说16*0.75=12,当数组使用了12的时候就会触发扩容static final float DEFAULT_LOAD_FACTOR = 0.75f;//当链表长度为8的时候转为红黑树sta原创 2020-05-10 22:59:38 · 546 阅读 · 1 评论 -
apache-maven安装及settings.xml文件设置
1、先去maven官网下载最新版的maven解压即可http://maven.apache.org/download.cgi2、配置环境变量新建环境变量然后编辑path系统变量,添加%maven_home%\bin;验证:打开cmd命令窗口运行:mvn –version出现以下信息说明安装成功3、设置settings.xml(1)新建repo文件夹,然后找到,添加文件夹的路...原创 2020-04-06 23:33:50 · 3266 阅读 · 1 评论 -
POI生成excel文件以及预览文件功能
最近在做一个功能,用户在付费购买后生成一批文档详情给用户下载,并且在付费之前可以预览部分文档,那么首先就是生成excel文件放在服务器的某个目录,然后把文件名路径存在订单表中,当用户付费后就可以根据订单表去进行下载,第一步首先是生成excel文件逻辑如下,先去查询得到一个list,然后遍历list的详情放到对应的excel表中,部分涉及到具体业务逻辑的字段用xxx代替。我这里生成的是xlsx文件...原创 2020-03-03 19:39:27 · 1489 阅读 · 0 评论 -
浅谈java GC的几种算法
最近在看<<深入理解java虚拟机>>这本书,对垃圾收集算法这部分内容做个笔记整理下java的运行时数据区如下,其实就是堆,栈,方法区,其中栈又分为虚拟机栈,本地方法栈,程序计数器,并且栈是属于线程私有,堆跟方法区是线程共享的。几乎所有的对象都是存放在堆中的,所以java堆是垃圾收集器管理的主要区域。可达性分析算法通过一些GC Roots作为起点,当一些对象没有任...原创 2020-03-02 06:47:40 · 2786 阅读 · 1 评论 -
idea
目前最新版本是2019.3.3,使用一个月后可如下操作,你懂的1.C:\Users\xxx.IntelliJIdea2019.3\config,删除eval2.C:\Users\xxx.IntelliJIdea2019.3\config\options,删除other.xml3.win+R,输入regedit,打开注册表找到这个目录HKEY_CURRENT_USER\Software...原创 2020-03-01 19:46:12 · 1546 阅读 · 0 评论 -
Form表单提交的一种方式
<form id="formSubmit" action="<%=basePath%>client/payment.do" method="post" class="form"> <s:hidden id="stime" name="searchCondition.stime" value=""/> <s:hidden id="etime" na...原创 2020-02-25 18:51:07 · 296 阅读 · 0 评论 -
文件压缩打包下载功能实现
前端js部分,思路如下,提供个下载的按钮,点击下载的时候拿到要下载的pdf链接,组装成表单提交到后台的action处理function download() { var pdf_url = $("#download").val(); var url ="downloadFiles.do?pdf_url="+pdf_url; var form = $('...原创 2020-02-21 18:57:23 · 437 阅读 · 0 评论 -
HTTP两种请求方式对比
今天在进行API接口测试的时候遇到个比较奇怪的事情,两个方法都是执行http请求,但是返回的结果有一个却是报错的,url在本地测试的时候两种方式却都是可以的,url切换到正式环境的第二种却是报错,我猜是因为有一些请求头信息没有传递过去,所以导致的错误,以此记录下,说明了请求方式1是兼容性比较好的代码如下:import org.apache.http.client.fluent.Request...原创 2020-02-21 18:26:43 · 528 阅读 · 0 评论 -
idea 提示 this configuration cannot edited
打开idea不明原因idea出现这个提示网上查找一遍,说是在setting–>plugins下把红色的取消再重新勾上就可以了最后重启,问题得以解决原创 2019-10-12 19:28:37 · 1254 阅读 · 0 评论 -
mybatis缓存
二级缓存三级缓存原创 2018-11-08 22:48:21 · 163 阅读 · 0 评论 -
多线程转换图片格式
最近有个需求是要把文章中的swf文件化为图片格式,由于数据库中每天都会有大概几千篇文章正文带有swf格式的文章,所以需要转化为图片处理,这里使用的是 SWFTools-Core进行处理,由于document表数据量很大,大概5000w条记录,并且有几个栏目有这样的文章,所以去查表的时候会很慢,所以打算用定时任务处理,每个栏目起一个定时任务,每次取一小批回来,处理完之后再等下一个定时任务到来再处理一...原创 2018-11-15 11:16:18 · 373 阅读 · 0 评论 -
分页生成sitemap.xml
背景:需要查询某个表然后生成sitemap.xml文件,部署服务器的时候发觉无法生成,检查发现是由于读取数据库的时候一下子查询的结果集太大,大概有50w条,导致响应很久都没有结果,需要进行分页查询,改造的思路如下:DepartmentKeyword vo = new DepartmentKeyword();vo.setStatus(10);int total=bxkcDepartm...原创 2019-01-08 18:39:11 · 1321 阅读 · 1 评论 -
java读文件跟写入文件
需求比较简单,记录下来也是为了方便以后使用,就是读取一个文件的内容然后写入另外的一个文件中去,talk is cheap,show the codepackage bxkc.test;import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.File;import java.io.FileInpu...原创 2019-02-27 13:02:17 · 203 阅读 · 0 评论 -
mongoDb连接数据库配置报错Credentials need to specify username原因及解决方法
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'mongo-client': Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchExceptio...原创 2019-04-12 14:51:46 · 5237 阅读 · 0 评论 -
HashMap源码分析
static final int DEFAULT_INITIAL_CAPACITY = 16;//初始化值大小为16static final int MAXIMUM_CAPACITY = 1 &amp;lt;&amp;lt; 30;//最大值为2^30static final float DEFAULT_LOAD_FACTOR = 0.75f;//负载因子,当数组的容量超过当前默认大小的0.75的时候就会进加...原创 2018-10-28 22:47:58 · 197 阅读 · 0 评论
分享