![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
java基础
文章平均质量分 58
不凡而大米、
本人喜欢分享java相关的知识点、工作中遇到的难点和BUG。
展开
-
关于java实现腾讯cos上传下载的前端代码实现
用java实现腾讯cos上传下载的前端代码和部分后端代码。原创 2023-02-17 14:50:54 · 620 阅读 · 1 评论 -
【java实现腾讯cos上传、下载、删除对象】
java代码实现腾讯cos功能原创 2023-01-13 11:34:29 · 1120 阅读 · 0 评论 -
初识HashMap
HashMap原创 2022-07-27 18:11:07 · 73 阅读 · 0 评论 -
解决中文乱码问题--response.addHeader/setHeader
标题解决中文乱码问题–response.addHeaderjava后端 //中文乱码解决 resp.addHeader("filename", java.net.URLEncoder.encode(fileName, "UTF-8"));前端取值,并转为中文var fileName = xhr.getResponseHeader("filename");fileName = decodeURI(fileName );参考:Java设置response header中文乱码解决方案.原创 2022-03-10 11:17:08 · 2151 阅读 · 0 评论 -
浏览器下载文件
浏览器下载文件浏览器下载文件工具类package com.pitaya.jcb.checkplan;import java.io.File;import java.io.FileInputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;import java.util.Objects;import javax.servlet.http.HttpServle原创 2022-03-10 11:14:20 · 181 阅读 · 0 评论 -
java生成二维码并解决中文乱码问题,小程序扫码识别二维码
java生成二维码并解决中文乱码问题,小程序扫码识别二维码1.java生成二维码并解决中文乱码问题添加Zxing的依赖(maven工程为例) <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</artifactId> <version>3.3.0</version>原创 2022-03-04 10:17:30 · 2826 阅读 · 0 评论 -
java 定时器的使用--@Scheduled
程序中若需要在某个时间循环执行某项任务,就可以使用@Scheduled定时器@Scheduled(cron=“0 0 21 * * ?”) //每天晚上九点执行一次 21点@Scheduled(cron = “0 24 8,17,23 * * ?”) //每天8点,15点,23点59分执行一次@Scheduled(cron = “0 59 23 ? * MON,WED,SAT”) // 每周周1,周3和周六23点59分执行一次@Scheduled(cron = “0 59 23 1,10,L原创 2022-02-10 17:50:41 · 3122 阅读 · 0 评论 -
java实现手动分页
java实现手动分页原创 2021-12-06 09:02:33 · 1649 阅读 · 0 评论 -
JVM基础 + 垃圾回收算法入门
JVM基础根据《Java 虚拟机规范(Java SE 7 版)》规定,Java 虚拟机所管理的内存如下图所示。局部变量表:存放了编译期可知的各种基本类型(boolean、byte、char、short、int、float、long、double)、对象引用(reference 类型)和 returnAddress 类型(指向了一条字节码指令的地址)StackOverflowError:线程请求的栈深度大于虚拟机所允许的深度。OutOfMemoryError:如果虚拟机栈可以动态扩展,而原创 2021-10-25 17:02:58 · 77 阅读 · 0 评论 -
Spring Boot + JSP 实现文件上传功能
SpringBoot 编写首先用JSP,要引依赖 <!-- jsp依赖 --> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope>原创 2021-07-18 21:09:02 · 440 阅读 · 0 评论 -
日期出错---swagger输出与数据库不一致
本人在项目中发现,Debug得到的日期返回值和最后输出swagger的日期值不一致,万思不得其解,最后发现我用的是java.sql.Date,改为java.util.Date就OK了.日期出错先还原一下出错场景:import java.sql.Date;@ApiModel(value = "记录出参VO")@Datapublic class SurgeryNursingVO { @ApiModelProperty(value = "项目时间") @JsonFormat(pat原创 2021-06-21 11:09:10 · 641 阅读 · 0 评论 -
RBAC模式
RBAC基于角色的访问控制权限的基本模型定义RBAC(Role-Based Access Control),也就是所谓的**“基于角色的访问控制权限”**。优势在RBAC中,用户不再直接与权限相连,而是通过“角色”这一属性来间接的被赋予权限,用户通过成为适当的角色来的到这些角色固有的权限,这样处理就解耦了用户与权限的关系。这就极大地简化了权限的管理。在一个组织中,角色是为了完成各种工作而创造,用户则依据它的责任和资格来被指派相应的角色,用户可以很容易地从一个角色被指派到另一个角色。角色可依原创 2021-05-30 12:55:59 · 649 阅读 · 0 评论 -
LRU算法实现--最近最少使用
实现缓存要求:LinkedHashMapHashMap(保证查找操作为O(1))双向Link(保证排序、新增操作为O(1))LRU算法实现实现代码:使用HashMap和双向链表实现功能,增删操作时链表和Map的信息需要同步。先定义一个Node对象链表 public class Node{ public String key; public String value; //用双向链表储存 public Node pre; p原创 2021-05-29 17:46:41 · 224 阅读 · 0 评论 -
Exception的简介与事务的使用
Exception的简介与事务的使用一、Java的异常:Error与Exception1.异常机制的概述异常机制是指当程序出现错误后,程序如何处理。具体来说,异常机制提供了程序退出的安全通道。当出现错误后,程序执行的流程发生改变,程序的控制权转移到异常处理器。程序错误分为三种:1.编译错误编译错误是因为程序没有遵循语法规则,编译程序能够自己发现并且提示我们错误的原因和位置,这个也是大家在刚接触编程语言最常遇到的问题。2.运行时错误运行时错误是因为程序在执行时,运行环境发现了不能执行的操原创 2021-04-24 17:29:36 · 193 阅读 · 0 评论 -
Integer(null) 拆箱后与 int(0) 比较报空指针异常
Integer(null)拆箱后与int比较报空指针异常首先代码是这样的: Integer i = 0; Integer Obj = null; if(0 == Obj || null == Obj ){...}这样,当Obj 值为null 时,那个if语句会报错,为什么呢?当 Obj 为null时,证明 Obj是没有值,是未赋值状态;而 i 是有值,只是它的值是 0 。在Obj 取值的时候是null值,可是按说明来说基本类型和包装类型都是可以通过自动拆箱和自动装箱自由转换的,原创 2021-03-19 09:33:32 · 3808 阅读 · 0 评论 -
关于数据库表的列转行,合并多行数据的问题解决
问题描述原始SQL是这样的:SELECT i.f_info_id id, de.f_title title, de.f_meta_description decs, cu.f_key, cu.f_value FROM cms_info_detail de INNER JOIN cms_info i ON de.f_info_id = i.f_info_id INNER JOIN cms_node node ON node.f_node_id = i.f_node_id INNER J原创 2021-03-07 15:04:50 · 287 阅读 · 2 评论 -
使用nginx解决跨域问题---小实操
环境准备前端node+express访问html文件1.首先在需要操作的文件夹下安装express模块D:\vs code\File\hrml\mysqlweblod> npm install express2.先写第一个web服务创建app.js文件,如下let express = require('express')// 创建应用let app = express() // get请求app.get('/user/find',(req,res)=>{ re原创 2021-03-04 20:14:34 · 214 阅读 · 1 评论 -
按照日期 对List排序
List排序ArrayList sort() 方法arraylist.sort(Comparator c)看一下源码: default void sort(Comparator<? super E> c) { Object[] a = this.toArray(); Arrays.sort(a, (Comparator) c); ListIterator<E> i = this.listIterator(); f原创 2021-02-28 14:17:31 · 744 阅读 · 0 评论 -
将Date格式的数据按照规定格式输出
将Date格式的数据按照规定格式输出使用 SimpleDateFormat 类格式化当前日期并打印,日期格式为“xxxx 年 xx 月 xx 日星期 xxx 点 xx 分 xx 秒” public static void main(String[] args) { Date now = new Date(); // 创建一个Date对象,获取当前时间 // 指定格式化格式 SimpleDateFormat f = new SimpleDateFormat(原创 2021-02-28 13:35:05 · 1995 阅读 · 0 评论 -
SpringBoot项目用ShardingSphere实现自定义的数据脱敏功能
准备工作运行环境:SpringBoot、MyBatis Plus 、Maven、MySQLShardingSphere我用的是4.1.0版本的,导依赖: <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-core</artifactId> <vers原创 2021-01-17 15:24:37 · 1579 阅读 · 10 评论 -
关于ShardingSphere官网的坑-----java配置实现数据脱敏(或数据分片)
跟大家分享一下用ShardingSphere实现数据脱敏根据官网上的数据脱敏功能,添加依赖,我用的是4.1.0版本: <dependency> <groupId>org.apache.shardingsphere</groupId> <artifactId>sharding-jdbc-core</artifactId> <version>4.1.0</原创 2021-01-14 12:14:51 · 949 阅读 · 0 评论 -
List分组---Java将List按照指定列排序,转为Map分组---Collectors.groupingBy方法
先看个简单的例子public class Java8Example1 { public static void main(String[] args) { //3 apple, 2 banana, others 1 List<String> items = Arrays.asList("apple", "apple", "banana", "apple", "orange",原创 2020-12-24 16:18:37 · 849 阅读 · 0 评论 -
浅谈GET和POST的区别
GET和POST的区别“标准答案”:(本标准答案参考自w3schools)GET在浏览器回退时是无害的,而POST会再次提交请求。GET产生的URL地址可以被Bookmark,而POST不可以。GET请求会被浏览器主动cache,而POST不会,除非手动设置。GET请求只能进行url编码,而POST支持多种编码方式。GET请求参数会被完整保留在浏览器历史记录里,而POST中的参数不会被保留。GET请求在URL中传送的参数是有长度限制的,而POST么有。对参数的数据类型,GET只接受ASCI原创 2020-11-24 10:34:35 · 117 阅读 · 0 评论 -
Java之输入语句
Java之输入语句先简单说一下输出语句:=public class Main{ public static void main(String[] args){ System.out.println("hello world"); System.out.print("hello world11111"); System.out.print("hello world22222"); }}输出结果:System.out.print()用于直接输出;System.o原创 2020-08-07 22:07:42 · 954 阅读 · 0 评论 -
Java集合总结 V1.1
Java集合总结List , Set, Map都是接口,前两个继承至Collection接口,Map为独立接口。Set下有HashSet,LinkedHashSet,TreeSetList下有ArrayList,Vector,LinkedListMap下有Hashtable,LinkedHashMap,HashMap,TreeMap原创 2020-08-03 22:59:57 · 89 阅读 · 0 评论 -
浅谈Java泛型及泛型的使用
浅谈Java泛型当做一些集合的统一操作的时候,需要保证集合的类型是统一的,此时需要泛型来进行限制。泛型的优点:数据安全、获取数据时效率比较高。给集合中的元素设置相同的类型就是泛型的基本需求。泛型的本质是为了参数化类型(在不创建新的类型的情况下,通过泛型指定的不同类型来控制形参具体限制的类型)。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,这种参数类型可以用在类、接口和方法中,分别被称为:泛型类、泛型接口、泛型方法。泛型的高阶使用:1、泛型类在定义类的时候在类名的后面添加&原创 2020-07-30 01:46:11 · 161 阅读 · 0 评论 -
TreeSet和HashSet的不同之处-----如何确定元素的唯一性和TreeSet如何排序
TreeSet和HashSet的不同之处1、Set的元素是唯一的、无序的。2、HashSet:内部的数据结构是哈希表,底层是采用HashMap实现,是线程不安全的。查询速度较快。集合元素可以是null,但只能放入一个null。3、TreeSet:采用二叉树(红黑树)的存储结构,底层实现是TreeMap,是线程不安全的。查询速度较慢。可以对Set集合中的元素进行排序。TreeSet和HashSet如何确定元素的唯一性1、HashSet:通过元素的hashCode和equals方法。如果元素的Has原创 2020-07-27 22:20:07 · 254 阅读 · 0 评论 -
浅谈Vector和ArrayList的区别
浅谈Vector和ArrayList的区别联系Vector与ArrayList本质上都是一个Object[] 数组,ArrayList提供了size属性,Vector提供了elementCount属性,他们的作用是记录集合内有效元素的个数。与我们平常调用的arrayList.size()和vector.size()一样返回的集合内有效元素的个数。区别1、线程安全Vector是线程安全的集合类,效率较低。ArrayList不是线程安全的类,效率较高。2、扩容不同Vector与ArrayList原创 2020-07-25 22:11:22 · 392 阅读 · 0 评论 -
Interger取值不同不相等-----Integer自动装箱超出赋值范围
@Integer自动装箱超出赋值范围Integer自动装箱输出结果Integer源代码结论1、i1和i2的自动装箱在Integer的取值范围之内,符合if括号里面的条件,就return IntegerCache.cache[i + (-IntegerCache.low)];返回的都是cache数组里的对象。所以 i1==i2 的输出为true。2、i3和i4的取值为200,大于127,那么就不符合if 的条件,直接return new Integer(i);i3和i4就原创 2020-07-24 21:44:09 · 235 阅读 · 0 评论 -
String为什么不是基本类型和理解final关键字
@[String为什么不是基本类型和理解final关键字]八大基本类型int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。double:64位,数据范围在4.9e-原创 2020-07-23 20:13:03 · 700 阅读 · 0 评论