
Java
文章平均质量分 72
智达教育
本人于20年毕业于东大,在学校跟随导师做了多个项目,现在2B大厂工做后端开发,有多年工作经验,同时热爱技术,对前端、python、大数据等多个领域有研究,希望与大家共进步。
展开
-
小日志大问题——追踪Logger的错误使用导致的JAVA进程CPU占用过高问题
📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我❤️❤️❤️。原创 2023-10-19 11:10:00 · 298 阅读 · 0 评论 -
升级包版本之后Reflections反射包在springboot jar环境下扫描不到class排查过程记录
📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我❤️❤️❤️。原创 2023-10-15 18:10:29 · 1427 阅读 · 0 评论 -
jdk动态代理案例和实现原理
📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我❤️❤️❤️上次讲解了spring中aop的使用方法,aop如果代理对象有接口,就用 JDK 动态代理,没有接口就用 Cglib 动态代理。今天我们就先来唠一唠jdk动态代理实现的原理。原创 2023-07-15 14:08:49 · 309 阅读 · 0 评论 -
java使用反射给对象属性赋值
最近项目中遇到一个问题,就是能实现一个类将以后的多语都进行转换的通用方法,根据这个需求,决定使用反射实现,根据反射给对象属性设置属性值,下面是使用反射实现对对象属性值进行设置的方法。由此可见,使用反射我们能给很容易的给各个属性进行设置,即使是private的属性我们也能很轻松的设置属性值,下面利用这个demo例子,就设置了我们的最初的功能。方法1:这里使用了Field的set方的 Field 属性,然后设置可见性,然后设置了一个值,最后打印。也就是说,第一种方法,没有调用属性的set方法就完成了赋值,原创 2023-01-04 20:06:05 · 13874 阅读 · 0 评论 -
new String 到底创建几个对象的问题困扰
📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我❤️❤️❤️我想所有 Java 程序员都曾被这个 new String 的问题困扰过,这是一道高频的 Java 面试题,但可惜的是网上众说纷纭,竟然找不到标准的答案。原创 2022-12-09 13:30:43 · 466 阅读 · 0 评论 -
反射中的骚操作---修改不可变集合UnmodifiableList
👨🏫:上节课我们讲了java中反射的基本知识,下面我们来聊一聊反思中的一些不常用的方法,使用反射打破其中的一些条条框框。👨🎓:原来是这个原因啊,看来以后得好好读源码了,有时分析起问题来还是没想象的那么难的,向下跟进几步就会柳暗花明。喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜。原创 2022-09-23 17:36:11 · 655 阅读 · 1 评论 -
java中的骚操作----反射
👩🏫:反射是什么?说起反射,有个反字,肯定就是反着来的意思,那么解释这个概念的时候,不妨我们先说一说这个梗【正】是如何玩的,哪个同学说一下?👩🎓:正就是我们java 我们使用某个类时必定知道它是什么类,是用来做什么的。于是我们直接对这个类进行实例化,实例化的时候使用new关键字创建对象就是正射,如下面的例子就是正的意思。//直接初始化,【正射】👩🏫:很好。原创 2022-09-23 16:51:11 · 2995 阅读 · 23 评论 -
java实现自己的trim效果---去掉首尾指定字符
📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我❤️❤️❤️字符串是我们最常用的一个数据类型,对字符的操作再熟悉不过了,今天我就自己根据trim函数写了一个更加一般的转换方法,能够将字符串中的指定的字符首位去掉。原创 2022-08-25 17:31:18 · 4426 阅读 · 13 评论 -
java实现使用POI对word文档的页眉页脚的编辑
📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我❤️❤️❤️。...原创 2022-08-05 15:48:36 · 8008 阅读 · 6 评论 -
还不懂代理机制吗,一篇文章让你深入理解java中的动态代理机制
本文的demo使用的是最新版的jdk17,但是源码分析使用的是使用最多的JDK8,望大家了解。身为一名🐒我们经常听到代理这个名词,java中的代理包括静态代理和动态代理两大类。其中动态代理又包括JDK动态代理和cglib动态代理。其中JDK动态代理和cglib动态代理是使用较多的两只方式,静态代理简单,但是写起来代码过于冗余。在框架中经常能够看到动态代理的身影,如果不掌握不熟悉动态代理的话,看起源码来简直就是噩梦。废话不多说了,开始我们今天的主题-----代理。。来完成的,下面我们进入这个函数看一看。...原创 2022-07-15 14:56:55 · 912 阅读 · 1 评论 -
Java中的final关键字
目录 概述总结:修饰类:修饰方法:修饰变量:普通变量对值进行改变修饰引用对象入理解final关键字1.类的final变量和普通变量有什么区别?2.被final修饰的引用变量指向的对象内容可变吗?3.final和static4.匿名内部类中使用的外部局部变量为什么只能是final变量?5.关于final参数的问题final关键字,学过java的想必都不陌生,在使用匿名内部类的时候可能会经常用到final关键字。另外,Java中的String类就是一个final类,那么今天我们就来总结一下final这个关键字的原创 2022-07-05 20:06:57 · 1846 阅读 · 0 评论 -
你对null真的了解吗??浅谈一下java中的null
目录概述数据类型选取null是什么类型使用注意点与空字符串的区别类型:内存分配:说起null大家肯定不陌生,就是指针没有指向任何地址的一个变量,就是这么熟悉的东西,往往是我们疏忽大意,薄弱的地方。今天的项目中就遇到一个问题,给int基本类型赋值,这是传入的是null就报了NPE问题,,,哎查了好久才分析出来。 文中划红线的地方报的NPE?? positionInfo是new的肯定不会报空指针问题。contractPosDto上面也用了。???what怎摸上面没报错,,后来经过检查是x变量声明都是int基本原创 2022-06-30 09:33:57 · 1235 阅读 · 0 评论 -
postman计算返回的结果时间---与传入的时间不一致
T表示分隔符,Z表示的是UTC。UTC:世界标准时间,在标准时间上加上8小时,即东八区时间,也就是北京时间。举例 北京时间:2020-01-14 00:00:00对应的国际标准时间格式为:2020-01-13T16:00:00.000Z原创 2022-06-08 15:10:29 · 1392 阅读 · 2 评论 -
Java环境变量(Env)和系统属性(Property)
本文主要记录了一下通过java程序实现查询系统属性和环境变量的方法,方便以后的查阅。下面就记录一下查询这些属性的方法。java中有一个System类这里有两个重要的方法实现环境变量getenv方法(不是驼峰,不知道为啥没有按照规范命名)和系统属性的查询(getProperty方法)。getenv方法返回的变量大多与操作系统相关 getProperty方法返回的变量大多与java程序有关这两种方法的返回值都是k,v形式的。我们可以通过调用这两个方法查询系统的属性和环境变量,其中proper原创 2022-01-24 12:26:38 · 2706 阅读 · 2 评论 -
当逻辑表达式或者算法的计算过程冗长的时候该如何做的简单可读
当逻辑表达式或者算法的计算过程冗长的时候,类似下面的代码,会让我们阅读和理解的过程非常痛苦,例如:if(browser.toUpperCase().indexOf("SAFARI") > -1 ||brower.toUpperCase().indexOf("CHROME") > -1 ||brower.toUpperCase().indexOf("FIREFOX") > -1 ||brower.toUpperCase().indexOf("IE") > -1){原创 2021-12-10 14:57:05 · 364 阅读 · 0 评论 -
JDK1.8中函数式编程
Function接⼝的使⽤Lambda表达式必须先定义接⼝,创建相关⽅法之后才可使⽤,这样做⼗分不便,其实java8已经 内置了许多接⼝, 例如下⾯四个功能型接⼝,所以⼀般很少会由⽤户去定义新的函数式接⼝ Java8的最⼤特性就是函数式接⼝,所有标注了@FunctionalInterface注解的接⼝都是函数式接⼝Java8 内置的四⼤核⼼函数式接⼝Consumer<T> ...原创 2021-12-08 19:30:55 · 1060 阅读 · 1 评论 -
死锁的例子
最近开始找工作,在面试过程中发现BAT等大公司面试时大多数对系统的底层实现要求很高,平时只注重功能的实现对底层的实现有些忽视,同时在多线程这快也没有太大的重视,以后决定好好踏实下来写质量相对较高的博客!今天讲一讲死锁,死锁是多线程中面试经常提到的问题,public class DeadLock { private static Object A=new Object();...原创 2021-12-04 19:24:21 · 706 阅读 · 0 评论 -
FireFox下载文件时文件名乱码的解决办法
之前在写下载文件的时候用的是下面没有if的else部分的代码,在chrome和360浏览器下都是正常的,但是在firefox下却是乱码(编码)的情况,之前在网上找到相应的文章,红色部分代码为后加上去的,放上去之后确实OK,filename为我们要下载的文件的文件名(包含后缀),RFC 2183规定filename只能为US-ASCII码,然而现代浏览器中许多已经支持UTF-8编码了,但各个浏览器的支持规则不同。在IE、chrome中,可以直接用filename作为下载文件的名称,但是Firefox却不支持这转载 2021-11-19 11:29:49 · 2442 阅读 · 0 评论 -
Android:SQLiteOpenHelper类(SQLlite数据库操作)详细解析 转
目录 1. SQLite数据库介绍SQLite是Android内置的一个小型、关系型、属于文本型的数据库。 Android提供了对 SQLite数据库的完全支持,应用程序中的任何类都可以通过名称来访问任何的数据库,但是应用程序之外的就不能访问。Android中,通过SQLiteOpenHelper类来实现对SQLite数据库的操作。...原创 2019-02-19 11:50:46 · 789 阅读 · 0 评论 -
Android开发之——短信验证
官方文档:http://wiki.mob.com/moblink-android-doc/一、申请APPkey获取appid appsecret 就ok了是不是很简单呢!二、集成引用再project下和app下的build.gradle分别引入app还要加入 apply plugin: "com.mob.sdk"project下 三、编写代码...转载 2019-02-25 13:48:54 · 507 阅读 · 2 评论 -
HashMap源码解析
一个故事:面试官:有没有看过HashMap 的源码?面试者:没有面试官:那让你来实现HashMap你会怎么做?面试者:Map主要用来缓存一些键值对,所以读取或者写入操作比较多。当即想到用肯定会有数组的结构可以很快的查询。一个一个实体,用数组存储。面试官:除了用遍历的方式,来Get和Put操作时候,怎么确保你当前的key存在还是不存在呢面试者:。。。能力有限,只限于讲讲自己对HashMap的认识,有不对的之处,敬请指出基本概念Map集合即Key-Value的集合,前面加个Hash,即散原创 2021-10-25 14:31:22 · 137 阅读 · 0 评论 -
java加载jar包下的资源文件过程及原理分析
最近遇到一个这样的问题,项目是一个spring cloud的项目,一个主模块(记为mainMoudle)依赖了另一个子模块(记为subMoudle)。在开发过程中,在idea开发工具环境下是能正常运行的,但由于测试时,需要将模块打包,就将subMoudle工程打成了一个jar放在mainMoudle下,跑jar包时就发现不能运行了,控制台抛出了fileNotFoundException的异常信息。通过查看subMoudle下的代码排查问题时,我发现是由于subMoudle在初始化时,需要加载mainM转载 2021-08-31 16:05:53 · 3606 阅读 · 0 评论 -
maven工程读取resource资源文件(踩坑)
目录ClassLoader() 的作用getClassLoader() 的作用getResourceAsStream()方法详解网上有问答如下:问: new FileInputStream(“src/main/resources/all.properties”) new FileInputStream(“./src/main/resources/all.properties”) 上面两个无法读取maven下资源文件目录下的文件嘛,总是提示找不到该路径,这么写错了嘛,但是我的其他原创 2021-08-31 14:49:25 · 1591 阅读 · 0 评论 -
Java字符串截取,截取某个字符之前或者之后的字符串
📢📢📢📣📣📣哈喽!大家好,我是「奇点」,江湖人称 singularity。刚工作几年,想和大家一同进步🤝🤝一位上进心十足的【Java ToB端大厂领域博主】!😜😜😜喜欢java和python,平时比较懒,能用程序解决的坚决不手动解决😜😜😜✨ 如果有对【java】感兴趣的【小可爱】,欢迎关注我❤️❤️❤️。......原创 2021-08-27 13:58:05 · 35247 阅读 · 3 评论 -
nonFilteredFileExtension的使用和exclude的区别---解决maven打包后文件不可用问题
构建组织树的方法:public List<OrganizationVO> build(List<OrgAgg> orgAggs){ List<OrganizationVO> organizationVOS = new ArrayList<>(); Map<String,OrganizationVO> relation = new HashMap<>(16); //组织根节点 多.原创 2021-06-17 10:26:27 · 6011 阅读 · 0 评论 -
Serializable接口
Serializable接口serialVersionUID 就是控制版本是否兼容的,若我们认为修改的 Person 是向后兼容的,则不修改 serialVersionUID;反之,则提高 serialVersionUID的值。当一个对象实现 Serializable 接口时,多数 ide 会提示声明一个静态常量 serialVersionUID(版本标识),那 serialVersionUID 到底有什么作用呢?应该如何使用 serialVersionUID ?探索历程:serialVer原创 2021-05-10 14:40:47 · 182 阅读 · 0 评论 -
System.arraycopy的使用方法详解
System.arraycopy的使用方法详解System.arraycopy这个方法之前用得很少,前段时间在一个项目需要对很多字节的处理,使用这个方法是非常有用的。这个方法的作用大家应该都是知道的吧:就是把一个数组中某一段字节数据放到另一个数组中。至于从第一个数组中取出几个数据,放到第二个数组中的什么位置都是可以通知这个方法的参数控制的。一.System.arraycopy使用的基本定义public static void arraycopy(Object src, int srcPos,转载 2021-05-10 11:23:24 · 28083 阅读 · 5 评论 -
javac Javap的简单使用
1.javac 编译器的使用Javac -d destdir srcFileJavac -d . srcFile 路径为当前的路径2. javap 反编译的简单应用C:\>javap -help用法: javap <options> <classes>其中, 可能的选项包括: -help --help -? ...原创 2019-05-18 17:41:02 · 243 阅读 · 0 评论 -
java中重写equals()方法的时候为什么要重写hashCode()方法?
目录一:什么是hashCode(),equals()方法?二:hashCode(),equals()两种方法是什么关系?三:为什么在重写equals方法的时候要重写hashcode的方法?四:怎么重写这两种方法?一:什么是hashCode(),equals()方法?equals()在java.lang.Object下,其源码为:/** * Indicates...转载 2019-05-15 16:54:18 · 1060 阅读 · 0 评论