
Java
文章平均质量分 51
java基础及简单算法
慕木兮人可
需要求职指导简历优化面试等可私,eternally_zh128
展开
-
关于SpringBoot项目使用maven打包由于Test引起的无法正常打包问题解决
在日常工作中,在接手项目时,项目未必是“正常”的,一般平常搭建项目,都不会采用一键式生成的方式,现在说下旧项目,可能项目结构并不是那么简洁,通常都带有与main同层级的test,如下这种一键式生成的项目,附带的这个test,在使用maven打包时,大部分都会出现打包不成功的类似如下报错。原创 2024-09-19 15:30:44 · 730 阅读 · 0 评论 -
关于SpringBoot项目yml配置数据库、redis、mq等中间件的用户密码敏感信息加密问题的解决方案
一般情况下,yml里边的配置信息 都是在项目部署时动态管理的,一般不存在泄密或者不安全的情况,但是,不凡有一些脑袋有泡的客户,要对你项目源码进行安全性检测。原创 2024-09-09 14:40:54 · 1357 阅读 · 0 评论 -
关于使用Postman在请求https网址没有响应,但是用浏览器有响应的问题解决
关于使用Postman在请求Https网址时,响应200却无数据返回的问题解决办法原创 2024-07-25 10:51:05 · 2068 阅读 · 0 评论 -
关于解决SpringBoot项目Get请求,请求头携带数据过大导致报错问题(java.lang.IllegalArgumentException: Request header is too lar)
关于SpringBoot项目Get请求,请求头过大造成的Error parsing HTTP request header Note: further occurrences of HTTP request parsing errors will be logged at DEBUG level.java.lang.IllegalArgumentException: Request header is too large原创 2024-04-28 11:20:38 · 733 阅读 · 0 评论 -
关于JDK11,8引入不同版本的jjwt异常问题的解决办法
原先在旧的项目中,用的是SpringCloudGateway2.0.4,对应的maven依赖是spring-cloud-starter-gateway:2.0.4.RELEASE,springboot的版本是2.0.6.RELEASE,jwt则直接是一个依赖全部引进来,如下所示maven仓库数据如下这个依赖在基于Java1.8版本是没有问题的,但是我们新项目用的是JDK11,这时候之前可以的加密方法就不能用了,有两种解决方案先不引入依赖看看,报什么异常,这里我原先有一个随机生成的加密secret,内容转载 2024-02-21 10:38:19 · 1456 阅读 · 0 评论 -
关于SpringBoot集成SpringSecurity+jjwt生成token,(DecodingException: Illegal base64 character: ‘-‘)
关于在对接第三方平台解析token时,jjwt版本于本地项目不一致而产生的DecodingException:Illegal base64 character :'_'解析失败的问题,从而使项目的jwt整体升级的解决办法原创 2024-02-21 10:05:00 · 995 阅读 · 0 评论 -
关于通过JDBC连接MySQL、ORACLE、TIDB等数据库获取数据库表信息及注释信息的问题
注意:以上两种方法貌似是不行滴,debug追进源码。原创 2023-04-12 13:05:28 · 1126 阅读 · 0 评论 -
AES出现Input length must be multiple of 16 when decrypting with padded cipher
解决办法:增加二进制与十六进制互转的相关方法。原创 2023-04-06 13:58:13 · 5369 阅读 · 0 评论 -
java的路还很长。。。
一、阶段一(JavaSE基础)1.计算机基础2.Java入门学习3.Java基础语法4.流程控制和方法5.数组6.面向对象编程7.异常8.常用类9.集合框架10.IO11.多线程12.GUI编程13.网络编程14.注解和反射15.JUC编程16.JVM探索17.GOF2318.数据结构和算法(经典算法)19.正则表达式二、阶段二(JavaWeb)1.MySQL初级2.JDBC3.HTML4.CSS5.JavaScript6.jQuery7.LayUI&a原创 2020-07-31 16:51:08 · 125 阅读 · 0 评论 -
初识Netty(1)java
一、什么是Netty?Netty可以做什么?1.1Netty的历史Netty是由Trustin Lee(韩国人 Line公司)开发,在2008年提交了第一个commit。1.2什么是netty?(1)异步事件驱动框架,可快速开发高性能的服务端和客户端(2)封装了JDK底层BIO和NIO模型,提供更加简单易用安全的 API(3)自带编解码器解决拆包粘包问题,无需用户困扰(4)reactor线程模型支持高并发海量连接(5)自带各种协议栈1.3Netty的特点?设计:针对多种传输类型的统原创 2020-08-04 17:18:59 · 309 阅读 · 0 评论 -
初识网络编程(1)
一、网络编程计算机网络:是指将地理位置不同的具有独立功能的多台计算机及其外部设备通过线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统网络编程的目的:无线电台。。。广播交流信息。数据交换。通信想要达到这个效果需要什么:1.如何准确的定位网络上的一台主机。(ip地址+端口,定位到这个计算机上的某个资源)2.找到了这个主机,如何传输数据呢?1.2网络通信的要素如何实现网络的通信?通信双方地址:ip端口号192.168.16.12原创 2020-08-09 09:38:03 · 148 阅读 · 1 评论 -
Netty(个人笔记待续)
一、Netty的介绍1.1、Netty的底层是:TCP/IP=>JDK原生IO或者网络(Java的IO编程和网络编程)=>NIO(IO和网络)=>Netty(1)Netty是异步的、基于事件驱动的网络应用框架,用于快速开发高性能,高可靠性的网络IO程序。(2)Netty主要针对在TCP协议下,面向Clients端的高并发应用,或者Peer-to-Peer场景下的大量数据持续传输的应用(3)Netty本质是一个NIO框架,适用于服务器通信相关的多种应用场景1.2、Netty的应用场原创 2020-08-10 16:46:05 · 163 阅读 · 0 评论 -
java面试题锁及线程
1.Runnable和Callable区别?https://blog.youkuaiyun.com/meism5/article/details/90176922Runnable 接口 run 方法无返回值;Callable 接口 call 方法有返回值,支持泛型Runnable 接口 run 方法只能抛出运行时异常,且无法捕获处理;Callable 接口 call 方法允许抛出异常,可以获取异常信息2.静态方法和普通方法的区别?https://blog.youkuaiyun.com/qq_28511781/articl原创 2020-07-06 13:22:22 · 182 阅读 · 0 评论 -
GOF23之单例模式(手撕代码)
1、单例模式饿汉式package com.itheima.kiki.single;/** * 饿汉式单例 * 构造器私有,一旦私有构造器,别人就无法new对象了,保证内存中只有一个对象 * */public class HungaryDemo { //构造器私有 private HungaryDemo(){ } //创建对象 private final static HungaryDemo HUNGARY_DEMO = new HungaryDem原创 2020-07-03 18:28:19 · 163 阅读 · 0 评论 -
Java8新特性(个人笔记待续)
一、Java8新特性简介1.1HashMapJDK1.8以前HashMap采用Hash表,如果HashMap不用Hash算法,那么效率将会极低。因此采用Hash表(Hash算法)Map Hash表默认大小是16,当我要往里边添加一个对象的话,首先调用对象的HashCode方法,然后根据Hash算法对HashCode方法进行一个运算,生成一个数组的索引值(Hash表)。根据HashCode方法生成的Hash码值(假如计算出1),经过Hash算法运算(运算成数组的索引值)然后根据数组的索引值找到对应原创 2020-08-11 23:16:34 · 118 阅读 · 0 评论 -
加薪必备利器--Java进阶之泛型
一、泛型1.1什么是泛型?背景:JAVA推出泛型之前,程序员可以构建一个元素类型为Object的集合,该集合能够存储任意的数据类型对象,而在使用该集合的过程中,需要程序员明确知道存储每个元素的数据类型,否则很容易引发ClassCastException异常。1.2泛型的概念Java泛型(generics)是JDK5中引入的一个新特性,泛型提供了编译时类型安全检测机制,该机制允许我们在编译时检测到非法的类型数据结构。泛型的本质就是参数化类型,也就是所操作的数据类型被指定为一个参数。好处:1.编原创 2020-12-16 15:29:28 · 159 阅读 · 1 评论 -
要求控制台随意输入两个整数(整数以/分开,例如123/456),要求先将每个整数倒序排列后分别累加各位的值打印到屏幕(java实现)
public class MyTest{ public static void main(String[] args){ Scanner sc = new Scanner(System.in); System.out.println("请输入第一个整数:"); Integer scOne = sc.nextInt(); System.out.println("请输入第二个整数:"); Integer scTwo = sc.nextInt(); String oneStr =原创 2021-01-11 14:41:45 · 1100 阅读 · 4 评论 -
加薪利器--Java进阶设计模式(2接3)单例设计模式
4.1单例设计模式单例模式(Singleton Patttern)是Java中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种设计模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式。可以直接访问,不需要实例化该类的对象。4.1.1单例模式的结构单例模式的主要有以下角色:单例类。只能创建一个实例的类访问类。使用单例类4.1.2单例模式的实现单例设计模式分类两种:饿汉式:类加载就会原创 2020-12-29 22:26:53 · 370 阅读 · 0 评论 -
SpringBoot个人笔记(待完善)
一、SpringBoot1.1、SpringBoot是什么?(自动装配[原理重要])Spring Boot的主要优点:为所有Spring开发者更快的入门开箱即用,提供各种默认配置来简化项目配置内嵌式容器简化Web项目没有冗余代码生成和XML配置的要求程序=数据结构+算法(集合框架) 程序猿程序=面向对象+框架 码农MVC三层架构 MVVM微服务架构业务: service:userService===>模块springMVC,controller===>提供原创 2021-01-15 13:30:44 · 176 阅读 · 0 评论 -
Builder构建复杂对象,Java设计模式(GOF23)之建造者模式
一、简述1.1问题描述在我们平时阅读源码时,经常会看到Result之类的,尤其是当它写了一串:Result.<List< String>>builder().success().data(stringList).build() 就很蒙。这类的代码乍一看好像很高大上,其实究其本质就是java设计模式和静态内部类的使用。1.2疑惑java设计模式?有用吗?感觉自己写代码写业务的时候没有用到啊?如果说你平时写的代码业务是外功,那么java设计模式就是你要修的内功。对待技术,不能只原创 2020-12-13 14:49:22 · 345 阅读 · 1 评论 -
Java高级开发必备--Docker进阶(一篇详细教程,进阶Docker)
六、容器数据卷6.1什么是数据卷?1.docker理念回顾将应用和环境打包成一个镜像!数据应该在哪?如果数据都放在容器中,那么我们容器删除,数据就会丢失!需求:数据可以持久化【例如】:MySQL,容器删了,删库跑路!需求:MySQL的数据可以存储在本地!所以就需要,容器之间可以有一个数据共享的技术!Docker容器中产生的数据,同步到本地,这就是卷技术!说白了,就是目录的挂载,将我们容器的目录挂载到Linux上面!总结:为什么用卷?容器的持久化和同步操作!容器间也是可以数据共享的!方式原创 2021-01-13 14:03:50 · 367 阅读 · 0 评论 -
Nacos
Nacos配置管理1.什么是配置中心1.1什么是配置应用程序在启动和运行的时候往往会读取一些配置信息,配置基本上伴随着应用程序的整个生命周期,比如:数据库连接参数、启动参数。配置是独立于程序的只读变量配置伴随应用的整个生命周期配置有多种加载方式配置需要治理1.2什么是配置中心在微服务架构中,当系统从一个单体应用,被拆分为分布式系统上的一个个服务节点后,配置文件也必须跟随着迁移(分割),这样配置就分散了,不仅如此,分散中还包含着冗余。2.Nacos简介2.1主流配置中心对比Spri原创 2021-01-13 14:05:55 · 223 阅读 · 2 评论 -
JUC(个人笔记一)以及对应的面试题
什么是JUC?java.util.currentRunnable:没有返回值,效率相比Callable相对较低2、线程和进程进程:一个程序,QQ.exe Music.exe 程序的集合一个进程往往可以包含多个线程,至少包含一个!java默认有几线程? 2个 main、GC线程线程:开了一个进程Typor,写字,自动保存(线程负责的)**java真的能开启线程吗?**开不了(java是没有权限的)并发、并行并发(多线程操作同一个资源)比如CPU一核,模拟出来多条线程,天下武功,为快不原创 2020-06-03 22:57:29 · 487 阅读 · 0 评论 -
请在读取D盘下11.txt,并且在控制台打印文件内容,只能打印文件中的数字
public class MyTest{ public static void main(String[] args){ FileInputStream fis = new FileInputStream("D:\\11.txt"); int len = 0; while((len = fis.read()) != -1){ if(len >=48 && len <= 57){ System.out.print((char) len); }原创 2021-01-11 17:22:59 · 715 阅读 · 0 评论 -
Java进阶之路JVM内存结构(jdk1.8)
一、JVM概述1.1什么事JVMJava Virtual Machine:Java虚拟机,用来保证Java语言跨平台。Java虚拟机可以看做是一台抽象的计算机,如同真实的计算机那样,它有自己的指令集以及各种运行时内存区域Java虚拟机与Java语言并没有必然的联系,它只与特定的二进制文件格式(class文件格式所关联)...原创 2020-12-14 17:24:57 · 1608 阅读 · 9 评论 -
JUC(个人笔记二)衔接JUC个人笔记一
8、常用的辅助类8.1 CountDownLatch8.2 CyclicBarrier8.3 Semaphore原创 2020-06-04 22:00:21 · 218 阅读 · 0 评论 -
linux随记(待完善)
linux一、文件和用户管理1.1临时文件 :vim未正常关闭,产生的临时文件。解决办法。vim 1.txt/.1.txt.swap 这一份,是服务器给你的备份1.查看隐藏文件 ls -a2.使用rm 删除即可1.2相对路径和绝对路径绝对路径的缺点:路径名太长相对路径的好处:...原创 2021-01-15 13:23:17 · 131 阅读 · 0 评论 -
ThreadLocal(个人笔记)
ThreadLocal的作用:提供线程内的局部变量,不同的线程之间不会相互干扰,这种变量在线程的生命周期起作用,减少同一个线程内多个函数或组件之间一些公共变量传递的复杂度。总结:1、线程并发:在多线程并发的情景下2、传递数据:我们可以通过ThreadLocal在同一个线程,不同组件中传递公共变量3、线程隔离:每个线程的变量都是独立的,不会相互影响1.3ThreadLocal和Synchronized相同点:都是用于处理多线程并发访问变量的问题。Synchronized:同步机制采用以时间换空原创 2020-06-03 08:48:55 · 201 阅读 · 0 评论 -
加薪利器--Javaj进阶设计模式(1接2)
一、设计模式相关内容介绍1.设计模式概述1.1软件设计模式产生的背景“设计模式"最初并不是出现在软件设计中,而是被用于建筑领域的设计中。概述:1990年软件工程界开始研讨设计模式的话题,后来召开了多次关于设计模式的研讨会。直到1995年,艾瑞克.伽马(ErichGamma)、理查德.海尔姆(Richard Helm)、拉尔夫.约翰森(Ralph Johnson)、约翰.威利斯迪斯(John Vlissides)等4位作者合作出版了《设计模式:可复用面向对象软件的基础》一书,在此书中收录了23个设计原创 2020-12-11 23:03:47 · 6608 阅读 · 2 评论 -
JUC(个人笔记三)
1、什么是JMM(java内存模型)?2、它干嘛的?:官方,其他人的博客,对应的视频3、它该如何学习?原创 2020-06-03 11:03:10 · 201 阅读 · 0 评论 -
java吐血整理面试篇(最贴合企业需求的java面试题)
一、MySQL篇1.@Transaction失效的场景?https://juejin.im/post/68449040967475036292.什么是事务?一个或一组sql语句组成一个执行单元,这个执行单元要么全部执行,要么全部不执行。请举例说明:转账3.事务的ACID,请具体说一说?原子性:是指事务是一个不可分割的工作单位,事务的操作要么都发生,要么都不发生。一致性:事务必须从一个一致性的状态变成另外一个一致性的状态隔离性:一个事务的执行不能被其他事务干扰,并发的执行的各个事务之间不能相互原创 2021-01-15 13:28:06 · 398 阅读 · 0 评论 -
加薪必备利器--Java进阶之HashMap(彻底搞定HashMap底层)
一、HashMap集合简介HashMap基于哈希表的Map接口实现,是以key-value存储形式存在,即主要用来存放键值对。HashMap的实现不是同步的,这意味着它不是线程安全的。它的key、value都可以为null。此外,HashMap中的映射不是有序的。JDK1.8之前 HashMap由数组+链表组成的,数组是HashMap的主体,链表则是主要为了解决hash冲突(两个对象调用的hashCode方法计算的哈希码值一致导致计算的数组索引值相同)而存在的("拉链法"解决冲突)。JDK1.8以后在原创 2020-12-15 17:01:21 · 1386 阅读 · 3 评论 -
加薪必备利器---Java进阶之日志技术
一、日志的概念1.1日志文件日志文件是用于记录系统操作事件的文件集合,可分为事件日志和消息日志。具有处理历史数据、诊断问题的追踪以及理解系统的活动等重要作用。在计算机中,日志文件是记录在操作系统或其他软件运行中发生的事件或在通信软件的不同用户之间的消息的文件。记录是保持日志的行为。在最简单的情况下,消息被写入单个日志文件。许多操作系统,软件框架和程序包括日志系统。广泛使用的日志记录标准是在因特网工程任务组(IETF)RFC5424中定义的syslog。syslog标准使专用的标准化子系统能够生成,过原创 2021-01-15 13:26:07 · 148 阅读 · 0 评论 -
springboot项目初始化pom文件模板
通用pom.xml<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4原创 2021-01-13 14:06:59 · 781 阅读 · 0 评论 -
关于springboot mavent项目在IDEA开发工具下构建不同profile开发环境
https://www.cnblogs.com/rmxd/p/11510894.html <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--引入不在maven仓库下的jar-->原创 2021-01-13 14:07:58 · 124 阅读 · 0 评论 -
要求随机0-9组成一个8位不重复数字的字符串,产生4个这样的字符串, 也是互相不重复的(java实现)
//利用HashSet不能存储重复元素的特性public class MyTest{ public static void main(String[] args){ Set<Integer> numSet = new HashSet<>(); Set<String> strSet = new HashSet<>(); while(true){ numSet.clear(); while(true){ //随机生成0-9中的一原创 2021-01-11 16:03:12 · 1921 阅读 · 0 评论 -
shiro全面实战教程(待完善)
基本概念略一.、Shiro中认证的关键对象1.1shiro中认证的关键对象Subject:主体访问系统的用户,主体可以是用户、程序等,进行认证的均称之为主体Principal:身份信息是主体(subject)进行身份认证的标识,标识必须具有唯一性,如用户名、手机号、邮箱等,一个主体可以有多个身份,但是必须有一个主身份(Primary Principal)。credential:凭证信息是只有主体自己知道的安全信息,如密码,证书等。1.2认证流程1.3MD5作用:一般用来加密或者签名原创 2021-01-15 13:29:07 · 237 阅读 · 0 评论 -
JVM(随手笔记)
谈谈对jvm的理解?java8虚拟机和之前的变化更新?什么是OOM,什么是栈溢出StackOverFlowError?怎么分析?jvm的常用调优参数有哪些?内存快照如何抓取,怎么分析Dump文件?谈谈jvm中类加载器?rt-jarjvm位置1、类加载器作用:加载Class文件(new Student()具体实例,引用放在栈中,具体的人放在堆中)类是抽象的(模板),而对象是具体的。(1)虚拟机自带的加载器(2)启动类(根)加载器(3)扩展类加载器(4)应用程序加载器双亲委派机制原创 2020-06-02 07:26:40 · 193 阅读 · 0 评论 -
关于mybatis中参数和返回值的深入
一OGNL表达式()Object Graphic Navigation Language对象 图 导航 语言它是通过对象的取值方法来获取数据,在写法上把get给省略了类中的写法:user.getUsername();OGNL表达式的写法:user.usernamemybatis中为什么能直接写username而不用user. 呢?因为在parameterType中已经提供了属性所属的类,所以此时不再需要写对象名当keyProperty:代表要返回值的名称,order:取值为AFTER原创 2021-01-15 13:31:52 · 161 阅读 · 0 评论 -
java面试的一些深度问题?(5)
1、正向代理和反向代理的区别正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。反向代理正好相反。对于客户端来说,反向代理就好像目标服务器。并且客户端不需要进行任何设置。客户端向反向代理发送请求,接着反向代理判断请求走向何处,并将请求转交给客户端,使得这些内容就好似他自己一样,一次客户端并不会感知到反向原创 2020-07-02 15:07:41 · 182 阅读 · 0 评论