java
文章平均质量分 69
githubcurry
githubcurry
展开
-
SpringBoot如何获取当前运行环境,三种方式完美解决
SpringBoot如何获取当前运行环境,三种方式完美解决。原创 2024-01-28 19:43:15 · 2217 阅读 · 0 评论 -
如何理解JDK、JRE、JVM区别与联系
JDK是Java语言的软件开发工具包(SDK)。在JDK的安装目录下有一个jre目录,里面有两个文件夹bin和lib,在这里可以认为bin里的就是jvmlib中则是jvm工作所需要的类库,而jvm和 lib合起来就称为jre。原创 2023-12-23 21:54:06 · 402 阅读 · 0 评论 -
springboot中的各种下载文件的方式
注意第一种方式返回值必须为void。原创 2023-12-21 10:17:37 · 431 阅读 · 0 评论 -
springboot如何配置日志
默认情况下,springboot会使用logback来记录日志,并且使用INFO级别输出到控制台,在运行程序的时候,你应该看到过很多这样INFO级别的日志了。原创 2023-12-21 10:17:02 · 155 阅读 · 0 评论 -
java中各种类型用Stream流求最大值最小值
java中各种类型用Stream流求最大值最小值。原创 2023-12-20 11:35:50 · 2858 阅读 · 0 评论 -
SpringCloud实现Gateway鉴权
我们之前已经搭建过了网关,使用网关在网关系统中比较适合进行权限校验。那么我们可以采用JWT的方式来实现鉴权校验。原创 2023-12-20 11:30:55 · 1081 阅读 · 0 评论 -
狂神java学习笔记——网络编程
127.0.0.1。原创 2023-12-08 09:54:52 · 82 阅读 · 0 评论 -
SpringBoot项目打成jar包后,上传的静态资源(图片等)如何存储和访问
使用springboot开发一个项目,开发文件上传的时候,通常会将上传的文件存储到资源目录下的static里面,然后在本地测试上传文件功能没有问题,但是将项目打成jar包放到服务器上运行的时候就会报错,找不到对应目录。或者可以将上传文件存储到和jar包同级的目录下,但是无法通过http访问到文件。原创 2023-11-30 12:24:34 · 1368 阅读 · 1 评论 -
使用java,nodejs给图片加上水印
首先,涉及到文件就要用到文件操作我们首先需要一个容器来存放图片(图片原来在磁盘(File)-> 现在在内存(image))我们要在原来的图片上加水印,就相当于要在纸上画画,所以我们的画纸应该是原图的一的副本,我们我们需要得到副本并用容器包含这个副本。画画需要画笔,我们要得到画副本的笔,当然笔肯定有粗细,设置画笔的参数。现在就开始画了,首先找水印的位置,我们的图片就像桌面是二维图形,就用起始坐标,还是按部就班就从(0,0)开始。我们也可以斜着画水印,java有旋转画布的方法。开始画画了,转载 2022-03-14 09:39:35 · 717 阅读 · 1 评论 -
动态规划算法的正确理解
动态规划是计算机中解决最优化问题的一种方法首先给出一个问题:问一个无序数组,求解最长的递增的子序列的长度,数组为:num = [1,5,2,4,3]我们最容易想到的就是暴力枚举(暴力搜索),首先画出递归树从1开始找出所有的子序列,返回最长的子序列长度代码:def L(nums, i): if i == len(nums) - 1 return 1 max_len = 1 for j in range(i + 1, len(nums)): if nums[j] >.原创 2021-06-10 16:04:39 · 524 阅读 · 11 评论 -
Java23种设计模式
23种设计模式的由来设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。1995 年,GoF(Gang of Four,四人组/四人帮)合作出版了《设计模式:可复用面向对象软件的基础》一书,共收录了 23 种设计模式,从此树立了软件设计模式领域的里程碑,人称"GoF设计模式"。这 23 种设计模式的本质是面向对象设计原则的实际运用,是对类的封装性、继承性和多态性,.原创 2021-03-25 11:33:06 · 288 阅读 · 1 评论 -
进程、线程、协程
进程直观点说,就是保存在硬盘上的程序运行以后,会在内存空间里形成一个独立的内存体,这个内存体有自己独立的地址空间,有自己的堆,上级挂靠单位是操作系统。操作系统会以进程为单位,分配系统资源(CPU时间片、内存等资源),进程是资源分配的最小单位。由于进程比较重量,占据独立的内存,所以上下文进程间的切换开销(栈、寄存器、虚拟内存、文件句柄等)比较大,但相对比较稳定安全。线程线程,有时被称为轻量级进程(Lightweight Process,LWP),是操作系统调度(CPU调度)执行的最小单位。是指进程内.原创 2021-03-24 20:06:46 · 937 阅读 · 3 评论 -
我们为什么需要异常处理、抛出Error
通俗的理解1.为了良好的用户体验,程序会捕获这个异常 给用户一个良好的出错提示。2.出现异常不处理,程序会终止,程序终止了,系统不能正常运行。(因为程序的执行过程中总会遇到许多可预知或不可预知的错误事件,例如说,由于内存资源有限导致需要分配的内存失败了;或某个目录下本应存在的一个文件找不着了;或说不小心被零除了、内存越界了、数组越界了等等。这些错误事件存在非常大的隐患,因此程序员总需要在程序中不断加入if语句,来判断是否有异常出现,如果有,就必须要及时处理,否则可能带来意想不到的后果。但是这样一来,.原创 2021-03-23 21:50:57 · 4183 阅读 · 3 评论 -
java中的get方法和set方法细解
我们先来看看set和get这两个词的表面意思,set是设置的意思,而get是获取的意思,顾名思义,这两个方法是对数据进行设置和获取用的。而且,在类中使用set和get方法时,都是在set和get后面跟上一些特定的词来形成特定意思的方法名,比如setage()和getage(),表示设置年龄和获取年龄。然后我们来了解一下JAVA面向对象编程中的封闭性和安全性。封闭性即对类中的域变量进行封闭操作,即用private来修饰他们,如此一来其他类则不能对该变量访问。这样我们就将这些变量封闭在了类内部,这样就提高了.原创 2021-03-15 15:06:23 · 6903 阅读 · 2 评论 -
java中几种常见的数据结构
java中有几种常用的数据结构,主要分为Collection和map两个主要接口(接口只提供方法,并不提供实现),而程序中最终使用的数据结构是继承自这些接口的数据结构类。其主要的关系(继承关系)有以下这些,我们可以先看看每个接口的继承,下面有每个接口的详细解释。(当然还有枚举(Enumeration)、位集合(BieSet)、栈(stack)等,在此不会一一列举)Collection---->CollectionsMap----->SortedMap------>TreeMapCo.原创 2021-03-03 21:24:00 · 329 阅读 · 2 评论 -
装箱拆箱--java的自动装箱和拆箱
一、什么是自动装箱拆箱很简单,下面两句代码就可以看到装箱和拆箱过程1 //自动装箱2 Integer total = 99;3 4 //自动拆箱5 int totalprim = total;简单一点说,装箱就是自动将基本数据类型转换为包装器类型;拆箱就是自动将包装器类型转换为基本数据类型下面我们来看看需要装箱拆箱的类型有哪些:这个过程是自动执行的,那么我们需要看看它的执行过程:复制代码1 public class Main {2 public static voi.原创 2020-12-27 21:59:01 · 215 阅读 · 1 评论 -
高内聚,低耦合的实现方式
高内聚低耦合,是软件工程中的概念,是判断软件设计好坏的标准,主要用于程序的面向对象的设计,主要看类的内聚性是否高,耦合度是否低。目的是使程序模块的可重用性、移植性大大增强。通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。内聚是从功能角度来度量模块内的联系,一个好的内聚模块应当恰好做一件事,它描述的是模块内的功能联系;耦合是软件结构中各模块之间相互连接的一种度量,耦合强弱取决于模块间接口的复杂程度、进入或访问一个模块的点以及通过接口的数据。...原创 2020-12-27 14:51:52 · 2392 阅读 · 6 评论 -
正确的java学习顺序--刚入门的同学可以看这里
对于刚学习java的人来说,可能最大的问题是不知道学习方向,每天学了什么第二天就忘了,而课堂的讲解也是很片面的。今天我结合我的学习路线为大家讲解下最基础的学习路线,真心希望能帮到迷茫的小伙伴。(有很多人给你说过让你好好学习,但是没有人给你说应该怎么好好学习,这篇博客就是关于怎么好好学习的)1. H5+css3:这个阶段是必须要度过的,这个阶段可以快速的培养起来你的编程兴趣,因为它见效快,一天就可以学到好多东西并且做出来实例。参考:菜鸟教程2. JavaScript:html是控制页面的布局,css控制.原创 2020-11-30 00:02:14 · 11913 阅读 · 13 评论