
java
文章平均质量分 78
好奇的mao
一鼓作气,再而衰,三而竭
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Java多线程——线程池的七大参数和四大拒绝策略
ThreadPoolExecutor类java.uitl.concurrent.ThreadPoolExecutor类是线程池中最核心的一个类,ThreadPoolExecutor类继承了AbstractExecutorService,提供了四个构造方法,另外三个都是调用第四个构造方法进行初始化的: public ThreadPoolExecutor(int corePoolSize, int maximumPoolSize,原创 2022-02-26 22:00:31 · 1915 阅读 · 1 评论 -
数据结构-线性表
线性表的基本概念线性表是最近本、最简单、也是最常用的一种数据结构,一个线性表是n个具有相同特性的数据元素的有限序列。线性表的特征:第一个数据元素没有前驱,这个元素被称为头结点;最后一个元素没有后驱,这个元素被称为尾结点;除了第一个和最后一个,其他数据元素有且仅有一个前驱和后驱。如果把线性表用数学语言来定义,则可以表示为 (a1, … , ai-1, ai, ai+1, … , an)。线性表中数据存储的方式可以是顺序存储,也可以是链式存储,按照存储方式不同,可以把线性表分为顺序表和链表。原创 2021-08-29 19:06:34 · 252 阅读 · 2 评论 -
快速排序算法
快排,顾名思义,就是很快的一种排序算法。核心就是:每次排序的时候,设置一个基准点,将小于等于基准点的放左边,大于等于基准点的放右边,跳跃式交换。基于“二分”的一种思想。但快排也有最坏情况,就是基准值选到最大或最小,导致数据跑到一边,最差时间复杂度是O(N2),平均时间复杂度为O(NlogN)。思路:选最左作为基准,用 j 从右往左遍历,如果比基准大,继续,比基准小,停,用 i 从左网游遍历,如果比基准小,继续,比基准大,停,然后交换 i 和 就 j 处的值,交换之后接着走,直到 i = j;原创 2021-08-14 20:47:08 · 253 阅读 · 0 评论 -
排序 之 桶数组-Java
桶数组排序,是一种空间换时间的算法。一维桶数组排序,要新建一个数组,其大小是待排序数字的最大值+1,原创 2021-08-12 19:04:20 · 1557 阅读 · 0 评论 -
Spring Boot整合JWT
参考b站视频整理:https://www.bilibili.com/video/BV1i54y1m7cP?p=1springboot整合jwt步骤:1、登录时,验证账号和密码成功后,生成jwt,返回给前端;2、前端接收后保存,再做其他操作,比如增删改查时,同时将jwt传给后端进行验证,如果jwt当做参数一起传给后端,那么每个操作都会有jwt,为了方便,把jwt放到请求头中,通过拦截器来验证。代码代码结构图如下,除了常规的controller、entity、mapper和service层,还有两.原创 2021-08-04 20:51:01 · 1485 阅读 · 12 评论 -
简单了解JWT
简单了解JWTJWT官方文档:https://jwt.io/introduction1 、JWT官方定义JWT(Json Web Token)翻译过来是:JSON网络令牌。它是一个开放标准 ( RFC 7519 ),它定义了一种紧凑且自包含的方式,用于在各方之间作为 JSON 对象安全地传输信息。该信息可以被验证和信任,因为它是经过数字签名的。JWT 可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。尽管 JWT 可以加密以在各方之间提供保密,但我们将重点关注签名原创 2021-07-31 19:01:57 · 459 阅读 · 1 评论 -
最基础的几个java面试问题你知道吗
java合法标识符标识符可以由数字,字母,_下划线,$组成,不能数字开头,不能有空格标识符严格区分大小写标识符不能是Java关键字和保留字标识符的命名最好反映出其作用java基本数据类型显示转换和隐式转换显式类型转换也叫强制类型转换。从存储范围大的类型到存储范围小的类型。具体规则为:double→float→long→int→short(char)→byte隐式转化有叫自动类型转换。由系统自动完成的类型转换.从存储范围小的类型到存储范围大的类型:byte ->short(c原创 2020-07-17 18:26:35 · 494 阅读 · 3 评论 -
生产者与消费者的虚假唤醒问题
什么是虚假唤醒?当一个条件满足时,唤醒了多个线程,其中部分线程不能被执行却执行了比如操作一个变量:number初始是0,线程A对number进行+1,线程B对number进行-1,现在没有问题。但是,再有线程C对number进行+1和线程D对number进行-1时,就会出现不只是0和1的结果了。明明加了锁,为什么还会产生负数情况?是因为wait等待放在了if判断里面。if判断只执行一次,然后就执行if()下边的了。而while会一直判断,直到满足条件才执行while()下边的代码代码原因原创 2020-05-08 17:37:05 · 562 阅读 · 0 评论 -
线程间的通信之生产者消费者问题
生产者消费者问题这是一个线程同步问题,生产者和消费者共享同一个资源,并且生产者和消费者之间相互依赖,互为条件.◆对于生产者,没有生产产品之前,要通知消费者等待.而生产了产品之后,又需要马上通知消费者消费◆对于消费者,在消费之后,要通知生产者已经结束消费,需要生产新的产品 以供消费◆在生产者消费者问题中,仅有synchronized是不够的synchronized 可阻止并发更新同一个...原创 2020-04-29 18:10:50 · 692 阅读 · 2 评论 -
多线程的synchronized锁和lock锁的认识
并发:同一个对象被多个线程同时操作比如,抢火车票,同时取钱线程同步:多个线程操作同一个资源◆由于同一进程的多个线程共享同一块存储空间,在带来方便的同时,也带来了访问冲突问题,为了保证数据在方法中被访问时的正确性,在访问时加入锁机制synchronized,当一个线程获得对象的排它锁,独占资源,其他线程必须等待,使用后释放锁即可.存在以下问题:◆一个线程持有锁会导致其他所有需要此锁的线...原创 2020-04-28 22:27:13 · 635 阅读 · 0 评论 -
多线程的基本概念和实现方法
1、基本概念程序:是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。进程:则是执行程序的一次执行过程,它是一个动态的概念。是系统资源分配的单位。通常一个进程中可以包含若干个线程。线程是CPU调度和执行的单位很多多线程是模拟出来的,真正的多线程是指有多个CPU,即多核,如服务器。如果是模拟出来的多线程,即在一个CPU的情况下,在同一个时间点,CPU只能执行一个代码,因为切...原创 2020-04-28 21:33:11 · 1069 阅读 · 3 评论 -
abstract关键字
一、介绍Abstract,即抽象。笼统的描述一类东西。打个比方:我们说车子都可以跑(run)。但有几个轮子,怎么跑,对于不同的车有不同的结果。自行车2个轮子需要人踩着跑,三轮车有3个轮子可以人踩、也能电动,汽车发动机推动跑等等,那么“车”的表达为抽象的。特点:abstract可以修饰类,也可以修饰方法;abstract修饰的类可以被继承和实现,但是这个类本身不能被实例化;抽象方法必须...转载 2020-07-10 11:34:04 · 2995 阅读 · 0 评论 -
Java编写的简易计算器
一般来说,刚开始学习Java比较适合做一些小的东西,比如计算器、图书管理系统什么的,这样会学的稍微快一些。而我这个计算器正适合新手参考,为什么?因为我也是新手。虽说代码比较烂,但是很…我先说下大致思路:第一步是先把界面写出来,第二步是对界面的各个按钮实现监听。实现等号这个功能复杂一些,不过还可以理解看一下效果图(我是在网上找一个图片,然后照着图片做的界面)源码链接: https://p...原创 2019-09-18 16:34:10 · 1816 阅读 · 6 评论 -
JDK配置环境变量
先找到位置右击 “我的电脑”’选择 “属性”点击左边的 “高级系统设置”点击下边的 “环境变量(N)”就出现了下面这个界面配置变量在下边的 系统变量(S) 框里修改1、在系统变量里新建“JAVA_HOME”变量,变量值为: E:\Progam\Java\jdk1.8.0_202 (注意:要改成自己的路径,这是我的!!!)2、在系统变量里新建“CLASSPATH”变量,变量值为...原创 2019-09-17 20:55:30 · 385 阅读 · 0 评论 -
第一个Java项目--小型图书管理系统的总结和感受
现在回头看看,这个图书管理系统做了将近有一个月了,真的是慢,庆幸的是给做了出来,没有半途而废,而且也熟悉了整个流程,例如数据库的连接和增删改查一些操作。下面是我在整个过程遇到的一些问题和个人解决办法1、连接数据库时时区警告和驱动不对?设置URL时要在数据库后边加上: ?serverTimezone=UTCJDBC 1.8加载驱动是:Class.forName(“com.mysql.c...原创 2019-08-04 09:44:58 · 5674 阅读 · 1 评论 -
Java小项目--小型图书管理系统(含完整代码及工具)
写在前面对于一个java项目来说,我理解的整个流程是这样的:(1)进行需求分析(2)设计数据库(重要)(3)编写java代码注:数据库设计非常重要,特别是数据类型的定义,表与表之间的关系,如果前期这些没整太好,在后期写java代码的时候会有些小麻烦,比如,修改数据类型,删除表,添加表中字段等等。不过还好有Navicat这种神器,让我们操作数据库更简单。这里给出它的安装包和破解软件;链接...原创 2019-10-19 15:48:47 · 70763 阅读 · 119 评论 -
java三大特性之继承--基础知识点的问与答
1:代码块是什么?代码块的分类和各自特点?答:(1)代码块是用{ }括起来的代码(2)分类:a:局部代码块用于限定变量的声明周期,及早释放,提高内存利用率b:构造代码块把多个构造方法中相同的代码可以放在这里,每个构造方法执行前,首先执行构造代码块c:静态代码块对类的数据进行初始化,仅仅执行一次(3)静态代码块,构造代码块,构造方法的执行顺序静态代码块>构造代码块>...原创 2019-06-13 12:55:02 · 470 阅读 · 0 评论