![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java学习
羽毛_Feather
在这个互联网世界中像一根羽毛一样飘荡。
展开
-
JVM类加载过程-面试题
前言我们知道虚拟机JVM要运行一个代码,需要我们先把.java文件编译成.class文件,然后把.class文件加载到JVM中,最后运行main方法。本篇class文件加载到JVM过程,面试经常问到。类周期类加载过程类加载过程大致分为三部分:加载、连接、初始化,其中连接过程分为:验证、准备、解析,其中顺序没有明确要求,总的来说在初始化之前前面步骤都要完成,具体以什么顺序完成则没有明确规定。加载加载过程分为三步骤:1、获取定义此类的二进制字节流,通过包名类名定位到class文件原创 2020-10-26 11:37:11 · 830 阅读 · 0 评论 -
Oracle函数实现表映射实体类
简介通常使用mybatis或者是hibernate持久化框架,有点很麻烦就是每张表的映射实体类,需要“_”格式命名转成驼峰式命名,并且需要把表备注和字段备注,与类注解和成员变量注解对应上,如果一直用手动复制创建,不仅耗时,而且容易出错。虽然网络有很多java工具类可以生成,这边写了一个oracle函数,通过oracle原有的函数实现了生成表的映射类。使用函数执行查询sqlsele...原创 2019-12-28 15:11:54 · 1816 阅读 · 1 评论 -
java线程池讲解
简介程序(代码)需要在计算机系统中运行,需要计算机系统的资源,资源是有限,不能你想要随时都有,正常的过程是:为程序(代码)创建一个线程 -> 等待cpu-> 执行 -> 结束 -> 销毁该线程,回收资源。如果大量程序(代码)执行的时候,计算机需要频繁的创建线程和销毁线程,但是程序是可以复用的,这次执行完,下次还是可以复用该线程,所以就出现的线程池。线程池:程序先创...原创 2019-12-11 18:04:07 · 558 阅读 · 0 评论 -
spring系列-http接口请求
简介整理一份关于使用spring boot日常接口开发笔记。HTTP请求方式POST:用于新增数据 GET:用于请求数据 PUT:用于修改数据 DELETE:用于删除数据 PATCH:用于修改数据HTTP请求数据格式(参数)GET方式请求数据都直接在URL后面拼接上去;POST方式请求多了一个body部分,可以把数据放在URL或者是放在body。常见body数据类型...原创 2019-09-26 14:29:05 · 4333 阅读 · 0 评论 -
java关键词Transient、native、volatile
Transient是出现在mybatis映射实体类的时候,实体类某属性不需要映射的数据库表字段的时候加上@transient标签。主要的作用是对象序列化的时候会忽略这个属性。native在看法的过程没有使用过,在看源码的时候经常看到过用它来修饰一些方法。主要的作用在方法前加上native,代表方法是通过外部底层C实现的,调用的时候会用调用C语言方法调用。volatile使用是在多线程开发的...原创 2019-07-23 16:37:05 · 340 阅读 · 0 评论 -
springboot设置文件上传大小,默认是1mb
springboot默认文件大小的限制是1MB,超过1MB会出现这个错误:org.springframework.web.multipart.MultipartException。通过设置application.yml文件属性更改文件大小限制如图:spring: servlet: multipart: enabled: true #是否启用http上传处理 ...原创 2019-04-28 09:29:19 · 29883 阅读 · 1 评论 -
使用idea+maven给springboot多模块结构打jar包
首先介绍项目结构,父工程:hfmp,子模块:affairs(springboot)、information(springboot)、model(java工程)、common(java工程),依赖关系:affairs依赖model和comm;information依赖model和common。如图hfmp父工程的pom.xml(只摘取部分关键代码),注意不需要<build&g...原创 2019-04-17 11:33:24 · 6352 阅读 · 1 评论 -
Base64编码字符超过76个出现换行符
前段时间在过接口md5校验的时候踩过这个坑,校验方式:MD5(base64(字符串)),在开发环境(window)下没问题,但是发布在linux上面就出现bug,一直校验不通过,但数据放回开发环境又没问题,分别在window环境与linux环境打印原字符串、base64加密、md5串,发现源字符串、base64加密一致,md5串不一致。 第一反应是MD5加密位数不一样,...原创 2019-04-16 14:46:59 · 3336 阅读 · 1 评论 -
java垃圾回收机制
任何一种垃圾回收算法一般要做2件基本的事情:(1)发现无用信息对象;(2)回收被无用对象占用的内存空间,使该空间可被程序再次使用 java GC垃圾回收机制(分代管理机制) 1.年轻代(Young Generation):所有新生成的对象首先都是放在年轻代的。年轻代的目标就是尽可能快速的收集掉那些生命周期短的对象。 特点:内存分为三个区,eden区(8)和两个s...原创 2019-01-04 11:10:43 · 153 阅读 · 0 评论 -
java笔记-IO流
java.io包下有将近80个类,总体分为四组,根据传输数据格式分为操作字节的I/O接口:InputStream和OutputStream;根据传输数据格式操作字符的I/O接口:Writer和Reader;根据传输方式操作磁盘的I/O接口:File;根据传输方式操作网络的I/O接口:Scoket。...原创 2018-04-26 11:34:03 · 164 阅读 · 0 评论 -
java笔记-NIO
最近一段时间在看别人整理的Java NIO笔记,就想自己把我理解的NIO记录下来。 IO与NIO的区别,首先IO是面向流操作的,每次从流中读一个或多个字节,直至读取所有字节;NIO是面向缓冲区(这边新加Buffer)操作,添加capital(容量)、position(位置)、limit(限制)概念,capital>=limit>=0,每次读写操作的范围是position~...原创 2018-05-02 11:07:50 · 159 阅读 · 0 评论 -
java笔记-jvm执行顺序
java加载一般顺序:静态块(静态变量)——>成员变量——>构造方法——>静态方法 。执行顺序根据静态部分是依赖于类,而不是依赖于对象存在的,所以静态部分的加载优先于对象存在。 1.静态属性,静态方法声明,静态块。 2.动态属性,普通方法声明,构造块。 3.构造方法。静态: 当加载一个类时,JVM会根据属性的数据类型第一时间赋默认值(一举生成的)。然后原创 2018-01-11 16:56:59 · 602 阅读 · 0 评论