Java 基础
文章平均质量分 55
Java 基础
IT-Lenjor
Just do the things you can do better.
展开
-
直接修改Jar包class文件方法
使用JBE直接修改Jar包class文件原创 2022-11-04 11:36:28 · 9243 阅读 · 2 评论 -
Java反射获取枚举类型值列表对外提供服务
文章目录一、前言在工作中原本一些枚举值都是在Apollo配置的,但是有一些配置没有必要从配置中心获取,比如简单的类型下拉框的选择和页面回显。实现的原理很简单,就是通过自定义注解,加在需要对外提供的枚举类上。我这里是定义了三个注解(类标记,key标志,value标记)二、关键代码实现/** * @description 枚举类标记,标记了会对外提供列表,默认取类名称 */@Retention(RetentionPolicy.RUNTIME)@Target(value = ElementTyp原创 2022-02-28 10:35:54 · 629 阅读 · 0 评论 -
Java内网IP判断工具类
/** * @author lenjor * @description ip工具类 * @date 2022-02-25 15:24 */public class IpUtil { /** * 私有IP: * A类 10.0.0.0-10.255.255.255 * B类 172.16.0.0-172.31.255.255 * C类 192.168.0.0-192.168.255.255 * 本机地址网段: 127这个网段环回地址原创 2022-02-25 17:01:51 · 896 阅读 · 0 评论 -
Spring jdbcTemplate.queryForList 报错:Incorrect column count:expected 1, actual 7
问题描述记录一个坑,在工程之前封装了Dao层,时间过得有点久了,使用的时候遇到了一个报错信息Caused by: org.springframework.jdbc.IncorrectResultSetColumnCountException: Incorrect column count: expected 1, actual 7// 封装代码public <T> List<T> queryForListClassType(String sql, Class<T>原创 2021-02-26 12:00:14 · 2001 阅读 · 0 评论 -
SpringBoot maven 配置多环境 & Junit单元测试加载src/main/resources目录下资源文件
SpringBoot项目多种环境配置文件选择使用Maven的形式配置项目多环境单元测试使用和 src/main/resources 一样的配置文件参考文献SpringBoot项目配置多环境方式(1) SpringBoot官方推荐的形式properties多环境配置,通过 application.properties 设置 spring.profile.active 的值实现,具体的实现可以参考这篇文章SpringBoot多环境切换: https://blog.csdn.net/liu9110.原创 2021-01-28 16:42:39 · 2022 阅读 · 0 评论 -
Java读取Google电子表格
Google官方文档Demo程序示例运行结果Google官方文档Google表格接入文档地址:https://developers.google.com/sheets/api/quickstart/java?hl=itDemo程序示例官方文档采用的是gradle的方式进行构建的,我这里是采用的maven的方式进行构建,原理上一样(1) 授权并下载Google的授权证书文件,直接在网页上面点击授权对应的应用,然后下载即可,以下是我授权的Demo应用文件我的Demo授权文件:{"insta.原创 2021-01-28 15:30:47 · 1074 阅读 · 4 评论 -
Java实现IP库归属地查询
一、IP库文件下载,各产品对比二、IP库的实现有很多种,我这里采用的是GeoIP2Jar 包依赖引入下载好IP库文件代码实现运行结果三、工程代码下载参考文章一、IP库文件下载,各产品对比下面这个文章有几个比较通用的IP库产品对比分析,这里就不进行赘述了IP查询产品对比二、IP库的实现有很多种,我这里采用的是GeoIP2Jar 包依赖引入<dependency> <groupId>com.maxmind.geoip2</groupId>.原创 2021-01-05 08:57:09 · 1609 阅读 · 1 评论 -
浅谈Lambda表达式
文章目录一、Lambda表达式简介二、Lambda表达式的基础语法三、Lambda语法精简四、JDK内置的常见接口五、方法引用六、参考文章&视频一、Lambda表达式简介什么是Lambda表达式?Lambda是Java 8添加的一个新的特性。说白了,Lambda就是一个匿名函数为什么要使用Lambda?使用Lambda表达式可以对一个接口进行非常简洁的实现具体可以对比一下下面几种写法,这三种方式实现的功能完全一致 // 测试使用的main方法 public s原创 2020-12-24 16:46:03 · 174 阅读 · 1 评论 -
Linux安装Maven和Git
一、Maven的安装方法一:直接输入 mvn -v 命令, 直接系统安装法,如下图,直接按提示输入y,就能直接安装成功方法二:解压包安装法1、maven包的下载有两种方法2、解压到对应的目录,我安装的目录是:/usr/local/maven3。3、配置maven环境变量4、查看安装结果, mvn -v 有出现安装的maven信息证明安装成功二、Git安装参考文章一、Maven的安装方法一:直接输入 mvn -v 命令, 直接系统安装法,如下图,直接按提示输入y,就能直接.原创 2020-12-06 01:45:33 · 220 阅读 · 0 评论 -
Linux安装JDK,并配置多个JDK切换
方法一(不推荐):直接在Linux控制台使用命令获取可以安装的JDK版本进行安装安装的方法请查看:Centos中yum方式安装java# 查看可以安装的JDKyum -y list java*# 安装对应的JDK版本yum -y install java-1.8.0-openjdk【填对应的版本的名称】方法二(推荐):在Oracle下载对应版本的JDK(这里以二进制的解压版安装为例)进入Oracle官网:https://www.oracle.com/拉到底部选择Develo原创 2020-12-05 22:55:03 · 588 阅读 · 0 评论 -
Java中servlet的实现过程
编写完HelloServlet后,编译若不成功要确定是否已经将tomcat目录下lib/servlet-api.jar包导入到WEB-INF/lib中接着就是写web.xml了。文件的位置:该文件总是放置在WEB-INF中。基本格式:该文件的开头是XML表头和DOCTYPE声明,并且含有一个web-app元素如何为servlet赋予名称:使用serv转载 2017-12-03 16:12:19 · 332 阅读 · 0 评论 -
手写JDK动态代理(Implememt your own JDK dynamic proxy)
文章目录手写自己的动态代理需要重写那些内容动态生成的 $Proxy0 对象长什么样?反编译$Proxy.class代码分析实现动态代理的关键实现完整代码自定义代理类实现测试方法运行结果总结手写自己的动态代理需要重写那些内容首先我们来看看,上一篇文章代理模式(Proxy pattern)的动态代理类中,使用到了那些内容,从中找出需要重新实现的类和方法。动态生成的 $Proxy0 对象长什么样...原创 2019-10-03 14:29:39 · 230 阅读 · 0 评论 -
static 静态变量和静态代码块的执行顺序
代码块和构造方法的执行顺序测试代码执行结果:总结一个类中的初始化顺序两个具有继承关系类的初始化顺序代码块和构造方法的执行顺序我相信大家多做过一道笔试题,有父类和子类都有静态代码块和普通代码块,写出个代码块的执行顺序,今天就是来看一下其初始化执行的顺序测试代码/** * 父类 */public class Father { public Fathe...原创 2019-10-01 11:47:00 · 315 阅读 · 0 评论 -
Java集合HashMap 源码分析
文章目录一、HashMap简介二、底层数据结构分析(1)存放元素的结构(2)红黑树节点的数据类型定义为:(3)HashMap类的一些属性三、HashMap的构造方法四、HashMap的关键方法(1)put方法(2)get方法(3)resize方法(4)containsKey方法(5)containsValue方法一、HashMap简介HashMap 主要用来存放键值对,它基于哈希表的Map接口...原创 2019-07-07 22:09:42 · 126 阅读 · 0 评论 -
Java中正负数二进制表示
在Java/C++中正数和负数的存储方式正数是以正码的形式存储负数是以补码的形式存储正码(正数使用)正码就是一个数的真实值假设有一个 int (32位)类型的数,值为5,那么,我们知道它在计算机中表示为:00000000 00000000 00000000 000001015转换成二制是101,不过int类型的数占用4字节(32位),所以前面填了一堆0。反码(正码取反)5的二...原创 2019-03-18 23:58:38 · 1794 阅读 · 2 评论 -
JVM运行时数据区
文章目录JVM运行时数据区组成程序计数器(Program Counter Register)虚拟机栈(VM Stack)在讲述栈帧具体的构成前需要一个辅助程序局部标量表操作数栈动态链接出口(返回值)本地方法栈(Native Method Stack)方法区(Method Area)堆(Heap)线程运行内存模型图JVM运行时数据区组成Java虚拟机在执行Java程序的过程中会将其管理的内存划分...原创 2019-03-17 20:08:50 · 125 阅读 · 0 评论 -
Java集合ArrayList 源码分析
文章目录一、ArrayList简介二、ArrayList的数据结构三、ArrayList构造方法一、ArrayList简介ArrayList 是一个数组队列,相当于 动态数组。与Java中的数组相比,它的容量能动态增长。它继承于AbstractList,实现了List, RandomAccess, Cloneable, java.io.Serializable这些接口。ArrayList 继...原创 2019-03-11 23:11:59 · 210 阅读 · 0 评论 -
double保留两位小数
我们都知道double和float都是浮点型,在转型或者比较的时候可能出现问题,这里讲一下怎么针对double类型做精度处理原创 2019-03-15 00:49:51 · 56564 阅读 · 3 评论 -
IDEA Spring Boot项目搭建
文章目录备注项目搭建备注小编使用的是IDEA专业版,社区版和社区版的Spring Boot插件名称有点不太一样,建议各位使用社区版的同学,安装专业版,因为社区版有很多的功能都没有,对于入门可能影响不大,但如果是工作需要,那就有很大的影响了。项目搭建新建一个空的项目,在空的项目中新建一个module,选择Spring Initializr 方式创建Spring Boot项目填写项...原创 2018-11-24 15:23:14 · 179 阅读 · 0 评论